annotate hggit/git2hg.py @ 1115:8ed6c0cae9b8

cleanup: add some blank lines
author Sean Farley <sean@farley.io>
date Mon, 27 Nov 2017 18:46:07 -0500
parents f1c4e2ba8ff9
children bd1a01f98154
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
788
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
1 # git2hg.py - convert Git repositories and commits to Mercurial ones
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
2
795
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
3 import urllib
788
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
4 from dulwich.objects import Commit, Tag
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
5
1115
8ed6c0cae9b8 cleanup: add some blank lines
Sean Farley <sean@farley.io>
parents: 1111
diff changeset
6
788
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
7 def find_incoming(git_object_store, git_map, refs):
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
8 '''find what commits need to be imported
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
9
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
10 git_object_store is a dulwich object store.
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
11 git_map is a map with keys being Git commits that have already been imported
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
12 refs is a map of refs to SHAs that we're interested in.'''
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
13
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
14 done = set()
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
15 commit_cache = {}
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
16
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
17 # sort by commit date
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
18 def commitdate(sha):
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
19 obj = git_object_store[sha]
1111
f1c4e2ba8ff9 cleanup: fix whitespace around operators
Sean Farley <sean@farley.io>
parents: 1007
diff changeset
20 return obj.commit_time - obj.commit_timezone
788
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
21
793
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
22 # get a list of all the head shas
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
23 def get_heads(refs):
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
24 todo = []
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
25 seenheads = set()
1007
2cd253b6c8ab git2hg: protect incoming from looking up HEAD
Sean Farley <sean@farley.io>
parents: 845
diff changeset
26 for ref, sha in refs.iteritems():
793
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
27 # refs could contain refs on the server that we haven't pulled down
1007
2cd253b6c8ab git2hg: protect incoming from looking up HEAD
Sean Farley <sean@farley.io>
parents: 845
diff changeset
28 # the objects for; also make sure it's a sha and not a symref
2cd253b6c8ab git2hg: protect incoming from looking up HEAD
Sean Farley <sean@farley.io>
parents: 845
diff changeset
29 if ref != 'HEAD' and sha in git_object_store:
793
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
30 obj = git_object_store[sha]
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
31 while isinstance(obj, Tag):
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
32 obj_type, sha = obj.object
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
33 obj = git_object_store[sha]
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
34 if isinstance(obj, Commit) and sha not in seenheads:
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
35 seenheads.add(sha)
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
36 todo.append(sha)
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
37
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
38 todo.sort(key=commitdate, reverse=True)
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
39 return todo
388944fca782 git2hg.find_incoming: move head-finding code into a function
Siddharth Agarwal <sid0@fb.com>
parents: 792
diff changeset
40
794
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
41 def get_unseen_commits(todo):
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
42 '''get all unseen commits reachable from todo in topological order
788
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
43
794
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
44 'unseen' means not reachable from the done set and not in the git map.
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
45 Mutates todo and the done set in the process.'''
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
46 commits = []
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
47 while todo:
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
48 sha = todo[-1]
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
49 if sha in done or sha in git_map:
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
50 todo.pop()
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
51 continue
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
52 assert isinstance(sha, str)
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
53 if sha in commit_cache:
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
54 obj = commit_cache[sha]
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
55 else:
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
56 obj = git_object_store[sha]
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
57 commit_cache[sha] = obj
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
58 assert isinstance(obj, Commit)
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
59 for p in obj.parents:
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
60 if p not in done and p not in git_map:
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
61 todo.append(p)
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
62 # process parents of a commit before processing the
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
63 # commit itself, and come back to this commit later
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
64 break
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
65 else:
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
66 commits.append(sha)
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
67 done.add(sha)
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
68 todo.pop()
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
69
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
70 return commits
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
71
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
72 todo = get_heads(refs)
1350e43e662f git2hg.find_incoming: move graph traversal into a function
Siddharth Agarwal <sid0@fb.com>
parents: 793
diff changeset
73 commits = get_unseen_commits(todo)
788
e734d71cc558 git_handler: move get_git_incoming to a separate module
Siddharth Agarwal <sid0@fb.com>
parents:
diff changeset
74
789
77416ddca136 git2hg: return a struct from find_incoming
Siddharth Agarwal <sid0@fb.com>
parents: 788
diff changeset
75 return GitIncomingResult(commits, commit_cache)
77416ddca136 git2hg: return a struct from find_incoming
Siddharth Agarwal <sid0@fb.com>
parents: 788
diff changeset
76
1115
8ed6c0cae9b8 cleanup: add some blank lines
Sean Farley <sean@farley.io>
parents: 1111
diff changeset
77
789
77416ddca136 git2hg: return a struct from find_incoming
Siddharth Agarwal <sid0@fb.com>
parents: 788
diff changeset
78 class GitIncomingResult(object):
77416ddca136 git2hg: return a struct from find_incoming
Siddharth Agarwal <sid0@fb.com>
parents: 788
diff changeset
79 '''struct to store result from find_incoming'''
77416ddca136 git2hg: return a struct from find_incoming
Siddharth Agarwal <sid0@fb.com>
parents: 788
diff changeset
80 def __init__(self, commits, commit_cache):
77416ddca136 git2hg: return a struct from find_incoming
Siddharth Agarwal <sid0@fb.com>
parents: 788
diff changeset
81 self.commits = commits
77416ddca136 git2hg: return a struct from find_incoming
Siddharth Agarwal <sid0@fb.com>
parents: 788
diff changeset
82 self.commit_cache = commit_cache
795
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
83
1115
8ed6c0cae9b8 cleanup: add some blank lines
Sean Farley <sean@farley.io>
parents: 1111
diff changeset
84
795
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
85 def extract_hg_metadata(message, git_extra):
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
86 split = message.split("\n--HG--\n", 1)
835
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
87 # Renames are explicitly stored in Mercurial but inferred in Git. For
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
88 # commits that originated in Git we'd like to optionally infer rename
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
89 # information to store in Mercurial, but for commits that originated in
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
90 # Mercurial we'd like to disable this. How do we tell whether the commit
845
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
91 # originated in Mercurial or in Git? We rely on the presence of extra hg-git
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
92 # fields in the Git commit.
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
93 # - Commits exported by hg-git versions past 0.7.0 always store at least one
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
94 # hg-git field.
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
95 # - For commits exported by hg-git versions before 0.7.0, this becomes a
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
96 # heuristic: if the commit has any extra hg fields, it definitely originated
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
97 # in Mercurial. If the commit doesn't, we aren't really sure.
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
98 # If we think the commit originated in Mercurial, we set renames to a
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
99 # dict. If we don't, we set renames to None. Callers can then determine
4f0b86da5e72 git2hg: update comment now that presence of hg fields is no longer a heuristic
Siddharth Agarwal <sid0@fb.com>
parents: 835
diff changeset
100 # whether to infer rename information.
835
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
101 renames = None
795
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
102 extra = {}
799
7ff4913e72df git2hg.extract_hg_metadata: use None as default branch value
Siddharth Agarwal <sid0@fb.com>
parents: 795
diff changeset
103 branch = None
795
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
104 if len(split) == 2:
835
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
105 renames = {}
795
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
106 message, meta = split
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
107 lines = meta.split("\n")
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
108 for line in lines:
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
109 if line == '':
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
110 continue
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
111
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
112 if ' : ' not in line:
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
113 break
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
114 command, data = line.split(" : ", 1)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
115
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
116 if command == 'rename':
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
117 before, after = data.split(" => ", 1)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
118 renames[after] = before
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
119 if command == 'branch':
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
120 branch = data
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
121 if command == 'extra':
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
122 k, v = data.split(" : ", 1)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
123 extra[k] = urllib.unquote(v)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
124
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
125 git_fn = 0
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
126 for field, data in git_extra:
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
127 if field.startswith('HG:'):
835
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
128 if renames is None:
6c9c40d9e9c1 git2hg: while extracting metadata, detect which VCS commits were made in
Siddharth Agarwal <sid0@fb.com>
parents: 799
diff changeset
129 renames = {}
795
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
130 command = field[3:]
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
131 if command == 'rename':
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
132 before, after = data.split(':', 1)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
133 renames[urllib.unquote(after)] = urllib.unquote(before)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
134 elif command == 'extra':
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
135 k, v = data.split(':', 1)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
136 extra[urllib.unquote(k)] = urllib.unquote(v)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
137 else:
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
138 # preserve ordering in Git by using an incrementing integer for
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
139 # each field. Note that extra metadata in Git is an ordered list
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
140 # of pairs.
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
141 hg_field = 'GIT%d-%s' % (git_fn, field)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
142 git_fn += 1
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
143 extra[urllib.quote(hg_field)] = urllib.quote(data)
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
144
c19835c3c60d git_handler: move extract_hg_metadata into git2hg
Siddharth Agarwal <sid0@fb.com>
parents: 794
diff changeset
145 return (message, renames, branch, extra)