[PATCH 0 of 2] convert/gnuarch: followup of my previous fixes

Patrick Mézard pmezard at gmail.com
Mon Jan 5 07:39:22 CST 2009


Edouard Gomez a écrit :
> As promised:
> 
> Two more fixes to deal with cat-logs correctly:
>  - convert/gnuarch: recode cat-log parts to utf-8 to be hg.description friendly
>  - convert/gnuarch: add cat-log payload to commit description
> 
> There is only one 'bug' left in the current gnuarch backend. Explaination
> follows.
> 
> In the arch repo:
>  - add 'a' file
>  - commit
>  - rename 'a' to 'b'
>  - add a new 'a' file
>  - commit
> 
> During hg conversion:
>  - 'a' gets added
>  - commit
>  - 'a' is renamed to 'b'
>  - 'a' is added
> 
> An exception is thrown and probably says the file context is not ok
> hg wise. How can i deal with these case. Using hg cmdline, i add 'a'
> again and hg doesn't bail out.
> 
> The exception:
> ** unknown exception encountered, details follow
> ** report bug details to http://www.selenic.com/mercurial/bts
> ** or mercurial at selenic.com
> ** Mercurial Distributed SCM (version ea0ccc5d63e0)
> ** Extensions loaded: churn, convert, gpg, hgk, mq, patchbomb, zeroconf
> Traceback (most recent call last):
>   File "/home/ed/opt/mercurial/bin/hg", line 20, in <module>
>     mercurial.dispatch.run()
>   File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 20, in run
>     sys.exit(dispatch(sys.argv[1:]))
>   File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 29, in dispatch
>     return _runcatch(u, args)
>   File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 45, in _runcatch
>     return _dispatch(ui, args)
>   File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 367, in _dispatch
>     ret = _runcommand(ui, options, cmd, d)
>   File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 416, in _runcommand
>     return checkargs()
>   File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 376, in checkargs
>     return cmdfunc()
>   File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 361, in <lambda>
>     d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
>   File "/home/ed/opt/mercurial//lib/python/mercurial/util.py", line 715, in check
>     return func(*args, **kwargs)
>   File "/home/ed/opt/mercurial//lib/python/hgext/convert/__init__.py", line 182, in convert
>     return convcmd.convert(ui, src, dest, revmapfile, **opts)
>   File "/home/ed/opt/mercurial//lib/python/hgext/convert/convcmd.py", line 338, in convert
>     c.convert()
>   File "/home/ed/opt/mercurial//lib/python/hgext/convert/convcmd.py", line 280, in convert
>     self.copy(c)
>   File "/home/ed/opt/mercurial//lib/python/hgext/convert/convcmd.py", line 251, in copy
>     newnode = self.dest.putcommit(files, copies, parents, commit, self.source)
>   File "/home/ed/opt/mercurial//lib/python/hgext/convert/hg.py", line 146, in putcommit
>     a = self.repo.commitctx(ctx)
>   File "/home/ed/opt/mercurial//lib/python/mercurial/localrepo.py", line 810, in commitctx
>     update_dirstate=False)
>   File "/home/ed/opt/mercurial//lib/python/mercurial/localrepo.py", line 857, in _commitctx
>     new[f] = self.filecommit(fctx, m1, m2, linkrev, trp, changed)
>   File "/home/ed/opt/mercurial//lib/python/mercurial/localrepo.py", line 723, in filecommit
>     self.ui.debug(_(" %s: copy %s:%s\n") % (fn, cf, hex(cr)))
> TypeError: b2a_hex() argument 1 must be string or read-only buffer, not None

Should be fixed in crew-stable and crew, copy sources and destinations were recorded backward.

Thanks for reporting this.

--
Patrick Mézard


More information about the Mercurial-devel mailing list