schacon / hg-git

mercurial to git bridge, pushed to directly from the hg-git plugin in Hg
GNU General Public License v2.0
620 stars 72 forks source link

dulwich.errors.RefFormatError when refname includes one of chars in BAD_REF_CHARS #330

Open reynoldsnlp opened 5 years ago

reynoldsnlp commented 5 years ago

As discussed here, hg-git runs into a dulwich.errors.RefFormatError when the refname includes a character in BAD_REF_CHARS (refs.py).

The suggestion is to have hg-git mangle/replace BAD_REF_CHARS with other characters. This should be very simple with something like...

from string import maketrans
bad2good = maketrans(BAD_REF_CHARS, b'ABCDEFGH')  # or replace [A-H] with something more meaningful
refname = refname.translate(bad2good)

I would be happy to submit a pull request, but I need help to determine where this should be done.