On Sat, Aug 31, 2013 at 8:58 AM, Max Kirillov <[email protected]> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html