Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
remote-bzr: improve tag handling
author
Felipe Contreras
<felipe.contreras@gmail.com>
Mon, 8 Apr 2013 18:36:39 +0000
(13:36 -0500)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 8 Apr 2013 21:17:07 +0000
(14:17 -0700)
revision_history() is deprecated and doesn't do what we want (revno
instead of dotted_revno?).
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/remote-helpers/git-remote-bzr
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
5ff4fc6
)
diff --git
a/contrib/remote-helpers/git-remote-bzr
b/contrib/remote-helpers/git-remote-bzr
index 55ebf195bebc18bc4afd98e17e6fb96af5510fab..bd25e082027f90e614f3f265b94b49979d96e49f 100755
(executable)
--- a/
contrib/remote-helpers/git-remote-bzr
+++ b/
contrib/remote-helpers/git-remote-bzr
@@
-25,6
+25,7
@@
bzrlib.plugin.load_plugins()
import bzrlib.generate_ids
import bzrlib.transport
import bzrlib.generate_ids
import bzrlib.transport
+import bzrlib.errors
import sys
import os
import sys
import os
@@
-335,12
+336,9
@@
def export_branch(branch, name):
def export_tag(repo, name):
global tags
def export_tag(repo, name):
global tags
- try:
- print "reset refs/tags/%s" % name
- print "from :%u" % rev_to_mark(tags[name])
- print
- except KeyError:
- warn("TODO: fetch tag '%s'" % name)
+ print "reset refs/tags/%s" % name
+ print "from :%u" % rev_to_mark(tags[name])
+ print
def do_import(parser):
global dirname
def do_import(parser):
global dirname
@@
-660,16
+658,25
@@
def do_capabilities(parser):
print
print
+def ref_is_valid(name):
+ return not True in [c in name for c in '~^: \\']
+
def do_list(parser):
global tags
print "? refs/heads/%s" % 'master'
def do_list(parser):
global tags
print "? refs/heads/%s" % 'master'
- history = parser.repo.revision_history()
- for tag, revid in parser.repo.tags.get_tag_dict().items():
- if revid not in history:
+ branch = parser.repo
+ branch.lock_read()
+ for tag, revid in branch.tags.get_tag_dict().items():
+ try:
+ branch.revision_id_to_dotted_revno(revid)
+ except bzrlib.errors.NoSuchRevision:
+ continue
+ if not ref_is_valid(tag):
continue
print "? refs/tags/%s" % tag
tags[tag] = revid
continue
print "? refs/tags/%s" % tag
tags[tag] = revid
+ branch.unlock()
print "@refs/heads/%s HEAD" % 'master'
print
print "@refs/heads/%s HEAD" % 'master'
print