diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2013-05-24 21:29:48 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-05-28 08:02:04 -0700 |
commit | d226945471d6c2d5ec6b42bdac78a4e6518c1be9 (patch) | |
tree | 5091809a94a117b22b05888dcb209f252af42876 /contrib/remote-helpers | |
parent | remote-hg: force remote bookmark push selectively (diff) | |
download | tgif-d226945471d6c2d5ec6b42bdac78a4e6518c1be9.tar.xz |
remote-hg: only update necessary revisions
We don't care about the rest, and in fact, we shouldn't try to push
everything, as there might be garbage from previous failed pushes.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/remote-helpers')
-rwxr-xr-x | contrib/remote-helpers/git-remote-hg | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 4d650b5f60..7added3b33 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -858,6 +858,7 @@ def do_export(parser): global parsed_refs, bmarks, peer p_bmarks = [] + p_revs = set() parser.next() @@ -882,6 +883,7 @@ def do_export(parser): if branch in branches and bnode in branches[branch]: # up to date continue + p_revs.add(bnode) print "ok %s" % ref elif ref.startswith('refs/heads/'): bmark = ref[len('refs/heads/'):] @@ -896,6 +898,7 @@ def do_export(parser): not (bmark == 'master' and bmark not in parser.repo._bookmarks): p_bmarks.append((ref, bmark, old, new)) + p_revs.add(bnode) elif ref.startswith('refs/tags/'): tag = ref[len('refs/tags/'):] tag = hgref(tag) @@ -903,18 +906,20 @@ def do_export(parser): if mode == 'git': if not msg: msg = 'Added tag %s for changeset %s' % (tag, node[:12]); - write_tag(parser.repo, tag, node, msg, author) + tagnode = write_tag(parser.repo, tag, node, msg, author) + p_revs.add(tagnode) else: fp = parser.repo.opener('localtags', 'a') fp.write('%s %s\n' % (node, tag)) fp.close() + p_revs.add(bnode) print "ok %s" % ref else: # transport-helper/fast-export bugs continue if peer: - parser.repo.push(peer, force=force_push, newbranch=True) + parser.repo.push(peer, force=force_push, newbranch=True, revs=list(p_revs)) # update remote bookmarks remote_bmarks = peer.listkeys('bookmarks') |