[Bug 6139] New: CVS import fails on CVS-log-like commit message

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Thu May 16 11:07:47 UTC 2019


https://bz.mercurial-scm.org/show_bug.cgi?id=6139

            Bug ID: 6139
           Summary: CVS import fails on CVS-log-like commit message
           Product: Mercurial
           Version: 5.0
          Hardware: PC
                OS: NetBSD
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: convert
          Assignee: bugzilla at mercurial-scm.org
          Reporter: ng0 at n0.is
                CC: durin42 at gmail.com, mercurial-devel at mercurial-scm.org

I have tested the hg convert command with 4.9.1 and 5.0 release on NetBSD's
pkgsrc CVS repository.
Invocation command with hg 5.0 release: hg convert /usr/pkgsrc pkgsrc
Where /usr/pkgsrc is my CVS checkout of pkgsrc.
[...]
468300 graphics/dcraw/Makefile
** unknown exception encountered, please report by visiting
** https://mercurial-scm.org/wiki/BugTracker
** Python 2.7.16 (default, May 11 2019, 14:23:25) [GCC 7.4.0]
** Mercurial Distributed SCM (version 5.0)
** Extensions loaded: rebase, convert, pager
Traceback (most recent call last):
  File "/usr/pkg/bin/hg", line 43, in <module>
    dispatch.run()
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 99,
in run
    status = dispatch(req)
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 225,
in dispatch
    ret = _runcatch(req) or 0
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 376,
in _runcatch
    return _callcatch(ui, _runcatchfunc)
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 384,
in _callcatch
    return scmutil.callcatch(ui, func)
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/scmutil.py", line 167,
in callcatch
    return func()
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 367,
in _runcatchfunc
    return _dispatch(req)
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 1021,
in _dispatch
    cmdpats, cmdoptions)
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 756,
in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/pkg/lib/python2.7/site-packages/hgext/pager.py", line 77, in
pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 1030,
in _runcommand
    return cmdfunc()
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/dispatch.py", line 1018,
in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/usr/pkg/lib/python2.7/site-packages/mercurial/util.py", line 1680, in
check
    return func(*args, **kwargs)
  File "/usr/pkg/lib/python2.7/site-packages/hgext/convert/__init__.py", line
450, in convert
    return convcmd.convert(ui, src, dest, revmapfile, **opts)
  File "/usr/pkg/lib/python2.7/site-packages/hgext/convert/convcmd.py", line
616, in convert
    c.convert(sortmode)
  File "/usr/pkg/lib/python2.7/site-packages/hgext/convert/convcmd.py", line
503, in convert
    heads = self.source.getheads()
  File "/usr/pkg/lib/python2.7/site-packages/hgext/convert/cvs.py", line 224,
in getheads
    self._parse()
  File "/usr/pkg/lib/python2.7/site-packages/hgext/convert/cvs.py", line 83, in
_parse
    db = cvsps.createlog(self.ui, cache=cache)
  File "/usr/pkg/lib/python2.7/site-packages/hgext/convert/cvsps.py", line 336,
in createlog
    assert match, _('revision must be followed by date line')
AssertionError: revision must be followed by date line


A bit of insight into why this happens:
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/graphics/dcraw/Makefile is "messed
up" in anything which tries to parse CVS to display it (including the NetBSD
bsdweb.cgi script).
The timeline goes from 1.21 -> 1.268 -> 1.22.
Furthermore what happened is that someone has committed a commit message that
looks exactly like a CVS log entry.
So in the cvs log output it will -look- like a commit of an out of order
revision is nested but it's actually a just the message.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list