From 4ea2fa76b30ab0bfd3c1910973ff266c22f9d511 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Fri, 11 Apr 2014 18:05:01 -0500 Subject: [PATCH] Update to 'public' phase when pushing This is what Mercurial does. Reported-by: Nathan Palmer Signed-off-by: Felipe Contreras --- git-remote-hg | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/git-remote-hg b/git-remote-hg index 79514db..6580227 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -992,9 +992,17 @@ def push_unsafe(repo, remote, parsed_refs, p_revs): if unbundle: if force: remoteheads = ['force'] - return remote.unbundle(cg, remoteheads, 'push') + ret = remote.unbundle(cg, remoteheads, 'push') else: - return remote.addchangegroup(cg, 'push', repo.url()) + ret = remote.addchangegroup(cg, 'push', repo.url()) + + phases = remote.listkeys('phases') + if phases: + for head in p_revs: + # update to public + remote.pushkey('phases', hghex(head), '1', '0') + + return ret def push(repo, remote, parsed_refs, p_revs): if hasattr(remote, 'canpush') and not remote.canpush():