On Sat, Aug 31, 2013 at 8:58 AM, Max Kirillov <max@xxxxxxxxxx> wrote: > Felipe Contreras <felipe.contreras <at> > gmail.com> writes: >> Which repository triggered this? > > Tha was some of the vim repositories, upstream > https://code.google.com/p/vim/ or debian > anonscm.debian.org/hg/pkg-vim/vim, or both. > They contain tags with ~ symbol. Thanks. > I don't have any experience with bazaar yet, so > cannot say much about it. That code is independent from bazaar. the ref_is_valid() method should return True or False depending on whether Git thinks it's a valid ref or not, it's independent from Bazaar or Mercurial, and all remote-helpers could share the same one. So this is what I have in mind: --- a/git-remote-hg.py +++ b/git-remote-hg.py @@ -617,6 +617,9 @@ def list_head(repo, cur): print "@refs/heads/%s HEAD" % head g_head = (head, node) +def ref_is_valid(name): + return not True in [c in name for c in '~^: \\'] + def do_list(parser): repo = parser.repo for bmark, node in bookmarks.listbookmarks(repo).iteritems(): @@ -635,15 +638,24 @@ def do_list(parser): if track_branches: for branch in branches: - print "? refs/heads/branches/%s" % gitref(branch) + branch = gitref(branch) + if not ref_is_valid(branch): + continue + print "? refs/heads/branches/%s" % branch for bmark in bmarks: - print "? refs/heads/%s" % gitref(bmark) + bmark = gitref(bmark) + if not ref_is_valid(bmark): + continue + print "? refs/heads/%s" % bmark for tag, node in repo.tagslist(): if tag == 'tip': continue - print "? refs/tags/%s" % gitref(tag) + tag = gitref(tag) + if not ref_is_valid(tag): + continue + print "? refs/tags/%s" % tag print -- Felipe Contreras -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html