bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
1 |
# Copyright (C) 2009 Scott Chacon <schacon@gmail.com>
|
0.358.2
by Jelmer Vernooij
Refresh copyright headers, add my email. |
2 |
# Copyright (C) 2009-2018 Jelmer Vernooij <jelmer@jelmer.uk>
|
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
3 |
|
4 |
# This program is free software; you can redistribute it and/or modify
|
|
5 |
# it under the terms of the GNU General Public License as published by
|
|
6 |
# the Free Software Foundation; either version 2 of the License, or
|
|
7 |
# (at your option) any later version.
|
|
8 |
#
|
|
9 |
# This program is distributed in the hope that it will be useful,
|
|
10 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12 |
# GNU General Public License for more details.
|
|
13 |
#
|
|
14 |
# You should have received a copy of the GNU General Public License
|
|
15 |
# along with this program; if not, write to the Free Software
|
|
0.358.1
by Jelmer Vernooij
Fix FSF address. |
16 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
17 |
|
0.200.772
by Jelmer Vernooij
Add docstring. |
18 |
"""Compatibility for hg-git."""
|
19 |
||
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
20 |
import urllib |
21 |
||
7143.15.2
by Jelmer Vernooij
Run autopep8. |
22 |
|
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
23 |
def format_hg_metadata(renames, branch, extra): |
24 |
"""Construct a tail with hg-git metadata. |
|
25 |
||
26 |
:param renames: List of (oldpath, newpath) tuples with file renames
|
|
27 |
:param branch: Branch name
|
|
28 |
:param extra: Dictionary with extra data
|
|
29 |
:return: Tail for commit message
|
|
30 |
"""
|
|
31 |
extra_message = '' |
|
32 |
if branch != 'default': |
|
33 |
extra_message += "branch : " + branch + "\n" |
|
34 |
||
35 |
if renames: |
|
36 |
for oldfile, newfile in renames: |
|
37 |
extra_message += "rename : " + oldfile + " => " + newfile + "\n" |
|
38 |
||
39 |
for key, value in extra.iteritems(): |
|
0.200.695
by Jelmer Vernooij
Clean up trailing whitespace. |
40 |
if key in ('author', 'committer', 'encoding', 'message', 'branch', |
41 |
'hg-git'): |
|
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
42 |
continue
|
43 |
else: |
|
7143.15.2
by Jelmer Vernooij
Run autopep8. |
44 |
extra_message += "extra : " + key + \ |
45 |
" : " + urllib.quote(value) + "\n" |
|
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
46 |
|
47 |
if extra_message: |
|
48 |
return "\n--HG--\n" + extra_message |
|
49 |
else: |
|
50 |
return "" |
|
51 |
||
52 |
||
53 |
def extract_hg_metadata(message): |
|
54 |
"""Extract Mercurial metadata from a commit message. |
|
55 |
||
56 |
:param message: Commit message to extract from
|
|
0.200.695
by Jelmer Vernooij
Clean up trailing whitespace. |
57 |
:return: Tuple with original commit message, renames, branch and
|
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
58 |
extra data.
|
59 |
"""
|
|
60 |
split = message.split("\n--HG--\n", 1) |
|
61 |
renames = {} |
|
62 |
extra = {} |
|
63 |
branch = None |
|
64 |
if len(split) == 2: |
|
65 |
message, meta = split |
|
66 |
lines = meta.split("\n") |
|
67 |
for line in lines: |
|
68 |
if line == '': |
|
69 |
continue
|
|
70 |
command, data = line.split(" : ", 1) |
|
71 |
if command == 'rename': |
|
72 |
before, after = data.split(" => ", 1) |
|
73 |
renames[after] = before |
|
0.200.641
by Jelmer Vernooij
Raise exception on unknown keys. |
74 |
elif command == 'branch': |
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
75 |
branch = data |
0.200.641
by Jelmer Vernooij
Raise exception on unknown keys. |
76 |
elif command == 'extra': |
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
77 |
before, after = data.split(" : ", 1) |
78 |
extra[before] = urllib.unquote(after) |
|
0.200.641
by Jelmer Vernooij
Raise exception on unknown keys. |
79 |
else: |
80 |
raise KeyError("unknown hg-git metadata command %s" % command) |
|
0.242.1
by Jelmer Vernooij
Add support for parsing hg-git metadata in the experimental mappings. |
81 |
return (message, renames, branch, extra) |