Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
remote-hg: match hg merge behavior
author
Felipe Contreras
<felipe.contreras@gmail.com>
Sun, 4 Nov 2012 02:13:28 +0000
(
03:13
+0100)
committer
Jeff King
<peff@peff.net>
Sun, 4 Nov 2012 13:35:20 +0000
(08:35 -0500)
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
contrib/remote-helpers/git-remote-hg
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
ff247d9
)
diff --git
a/contrib/remote-helpers/git-remote-hg
b/contrib/remote-helpers/git-remote-hg
index 503a9fc324296c640c4a43c98ad41f5f0dd385e3..247b7cbfc9e027c6d4eea010cb132ce5a92dbb99 100755
(executable)
--- a/
contrib/remote-helpers/git-remote-hg
+++ b/
contrib/remote-helpers/git-remote-hg
@@
-427,6
+427,14
@@
def parse_blob(parser):
parser.next()
return
parser.next()
return
+def get_merge_files(repo, p1, p2, files):
+ for e in repo[p1].files():
+ if e not in files:
+ if e not in repo[p1].manifest():
+ continue
+ f = { 'ctx' : repo[p1][e] }
+ files[e] = f
+
def parse_commit(parser):
global marks, blob_marks, bmarks, parsed_refs
def parse_commit(parser):
global marks, blob_marks, bmarks, parsed_refs
@@
-470,6
+478,8
@@
def parse_commit(parser):
of = files[f]
if 'deleted' in of:
raise IOError
of = files[f]
if 'deleted' in of:
raise IOError
+ if 'ctx' in of:
+ return of['ctx']
is_exec = of['mode'] == 'x'
is_link = of['mode'] == 'l'
return context.memfilectx(f, of['data'], is_link, is_exec, None)
is_exec = of['mode'] == 'x'
is_link = of['mode'] == 'l'
return context.memfilectx(f, of['data'], is_link, is_exec, None)
@@
-492,6
+502,13
@@
def parse_commit(parser):
else:
p2 = '\0' * 20
else:
p2 = '\0' * 20
+ #
+ # If files changed from any of the parents, hg wants to know, but in git if
+ # nothing changed from the first parent, nothing changed.
+ #
+ if merge_mark:
+ get_merge_files(repo, p1, p2, files)
+
ctx = context.memctx(repo, (p1, p2), data,
files.keys(), getfilectx,
user, (date, tz), extra)
ctx = context.memctx(repo, (p1, p2), data,
files.keys(), getfilectx,
user, (date, tz), extra)