diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2013-04-25 06:25:37 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-25 15:34:37 -0700 |
commit | fbd3f0e53ca9b88709ceadea48d9383c7ffa9382 (patch) | |
tree | d6344c557729b44881c38d5c7ffbde0b238a7b7b | |
parent | remote-bzr: add utf-8 support for pushing (diff) | |
download | tgif-fbd3f0e53ca9b88709ceadea48d9383c7ffa9382.tar.xz |
remote-bzr: use proper push method
Do not just randomly synchronize the revisions with no checks at
all.
I don't have any evidence that there's anything wrong with the
current code, which Bazaar seems to use, but for different purposes.
Let's use the logic Bazaar UI uses to avoid surprises.
Also, add a non-ff check.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | contrib/remote-helpers/git-remote-bzr | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index fad4a48cdc..6fedc28afb 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -630,12 +630,12 @@ def do_export(parser): for ref, revid in parsed_refs.iteritems(): if ref == 'refs/heads/master': repo.generate_revision_history(revid, marks.get_tip('master')) - revno, revid = repo.last_revision_info() if peer: - if hasattr(peer, "import_last_revision_info_and_tags"): - peer.import_last_revision_info_and_tags(repo, revno, revid) - else: - peer.import_last_revision_info(repo.repository, revno, revid) + try: + repo.push(peer, stop_revision=revid) + except bzrlib.errors.DivergedBranches: + print "error %s non-fast forward" % ref + continue else: wt = repo.bzrdir.open_workingtree() wt.update() |