diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py --- a/mercurial/obsolete.py +++ b/mercurial/obsolete.py @@ -278,7 +278,7 @@ d = {} for l in data.split('\0'): if l: - key, value = l.split(':') + key, value = l.split(':', 1) d[key] = value return d diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -1631,189 +1631,9 @@ $ touch b.cpp $ hg add b.cpp $ hg commit -m 'Add b.cpp' - ** Unknown exception encountered with possibly-broken third-party extension testextension - ** which supports versions unknown of Mercurial. - ** Please disable testextension and try your action again. - ** If that fixes the bug please report it to the extension author. - ** Python 2.7.10 (default, Oct 6 2017, 22:29:07) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] - ** Mercurial Distributed SCM (version 4.7.2+1250-a72bf685f2dd+20181005) - ** Extensions loaded: testextension - Traceback (most recent call last): - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/bin/hg", line 43, in - dispatch.run() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 93, in run - status = dispatch(req) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 217, in dispatch - ret = _runcatch(req) or 0 - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 359, in _runcatch - return _callcatch(ui, _runcatchfunc) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 367, in _callcatch - return scmutil.callcatch(ui, func) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/scmutil.py", line 166, in callcatch - return func() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 350, in _runcatchfunc - return _dispatch(req) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 987, in _dispatch - cmdpats, cmdoptions) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 733, in runcommand - ret = _runcommand(ui, options, cmd, d) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 996, in _runcommand - return cmdfunc() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 984, in - d = lambda: util.checksignature(func)(ui, *args, **strcmdopt) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1644, in check - return func(*args, **kwargs) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/commands.py", line 1616, in commit - return _docommit(ui, repo, *pats, **opts) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/commands.py", line 1638, in _docommit - bheads = repo.branchheads(branch) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/localrepo.py", line 2679, in branchheads - branches = self.branchmap() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/localrepo.py", line 1478, in branchmap - branchmap.updatecache(self) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/branchmap.py", line 104, in updatecache - cl = repo.changelog - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 219, in changelog - revs = filterrevs(unfi, self.filtername, self._visibilityexceptions) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 158, in filterrevs - repo.filteredrevcache[filtername] = func(repo.unfiltered()) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 77, in computehidden - hidden = hideablerevs(repo) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 31, in hideablerevs - obsoletes = obsolete.getrevs(repo, 'obsolete') - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 846, in getrevs - repo.obsstore.caches[name] = cachefuncs[name](repo) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 876, in _computeobsoleteset - isobs = repo.obsstore.successors.__contains__ - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1528, in __get__ - result = self.func(obj) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 688, in successors - _addsuccessors(successors, self._all) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1528, in __get__ - result = self.func(obj) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 681, in _all - markers = list(markers) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 216, in _fm0readmarkers - metadata = _fm0decodemeta(metadata) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 281, in _fm0decodemeta - key, value = l.split(':') - ValueError: too many values to unpack - [1] $ echo 'Hello' > b.cpp $ hg amend -n 'Testing::Obsstore2' --config extensions.amend= - ** Unknown exception encountered with possibly-broken third-party extension testextension - ** which supports versions unknown of Mercurial. - ** Please disable testextension and try your action again. - ** If that fixes the bug please report it to the extension author. - ** Python 2.7.10 (default, Oct 6 2017, 22:29:07) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] - ** Mercurial Distributed SCM (version 4.7.2+1250-a72bf685f2dd+20181005) - ** Extensions loaded: testextension, amend - Traceback (most recent call last): - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/bin/hg", line 43, in - dispatch.run() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 93, in run - status = dispatch(req) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 217, in dispatch - ret = _runcatch(req) or 0 - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 359, in _runcatch - return _callcatch(ui, _runcatchfunc) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 367, in _callcatch - return scmutil.callcatch(ui, func) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/scmutil.py", line 166, in callcatch - return func() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 350, in _runcatchfunc - return _dispatch(req) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 987, in _dispatch - cmdpats, cmdoptions) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 733, in runcommand - ret = _runcommand(ui, options, cmd, d) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 996, in _runcommand - return cmdfunc() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 984, in - d = lambda: util.checksignature(func)(ui, *args, **strcmdopt) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1644, in check - return func(*args, **kwargs) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/hgext/amend.py", line 55, in amend - opts['message'] = opts.get('message') or repo['.'].description() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/context.py", line 448, in description - return self._changeset.description - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1528, in __get__ - result = self.func(obj) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/context.py", line 406, in _changeset - return self._repo.changelog.changelogrevision(self.rev()) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 219, in changelog - revs = filterrevs(unfi, self.filtername, self._visibilityexceptions) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 158, in filterrevs - repo.filteredrevcache[filtername] = func(repo.unfiltered()) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 77, in computehidden - hidden = hideablerevs(repo) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/repoview.py", line 31, in hideablerevs - obsoletes = obsolete.getrevs(repo, 'obsolete') - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 846, in getrevs - repo.obsstore.caches[name] = cachefuncs[name](repo) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 876, in _computeobsoleteset - isobs = repo.obsstore.successors.__contains__ - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1528, in __get__ - result = self.func(obj) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 688, in successors - _addsuccessors(successors, self._all) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1528, in __get__ - result = self.func(obj) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 681, in _all - markers = list(markers) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 216, in _fm0readmarkers - metadata = _fm0decodemeta(metadata) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 281, in _fm0decodemeta - key, value = l.split(':') - ValueError: too many values to unpack - [1] $ hg debugobsolete - ** Unknown exception encountered with possibly-broken third-party extension testextension - ** which supports versions unknown of Mercurial. - ** Please disable testextension and try your action again. - ** If that fixes the bug please report it to the extension author. - ** Python 2.7.10 (default, Oct 6 2017, 22:29:07) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] - ** Mercurial Distributed SCM (version 4.7.2+1250-a72bf685f2dd+20181005) - ** Extensions loaded: testextension - Traceback (most recent call last): - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/bin/hg", line 43, in - dispatch.run() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 93, in run - status = dispatch(req) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 217, in dispatch - ret = _runcatch(req) or 0 - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 359, in _runcatch - return _callcatch(ui, _runcatchfunc) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 367, in _callcatch - return scmutil.callcatch(ui, func) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/scmutil.py", line 166, in callcatch - return func() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 350, in _runcatchfunc - return _dispatch(req) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 987, in _dispatch - cmdpats, cmdoptions) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 733, in runcommand - ret = _runcommand(ui, options, cmd, d) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 996, in _runcommand - return cmdfunc() - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/dispatch.py", line 984, in - d = lambda: util.checksignature(func)(ui, *args, **strcmdopt) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1644, in check - return func(*args, **kwargs) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/debugcommands.py", line 1732, in debugobsolete - for i, m in enumerate(markerstoiter): - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsutil.py", line 110, in getmarkers - for markerdata in rawmarkers: - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 545, in __iter__ - return iter(self._all) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/util.py", line 1528, in __get__ - result = self.func(obj) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 681, in _all - markers = list(markers) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 216, in _fm0readmarkers - metadata = _fm0decodemeta(metadata) - File "/private/var/folders/ld/f_mwccsd3js73c9t0m8qv9bw0000gn/T/hgtests.btJKhe/install/lib/python/mercurial/obsolete.py", line 281, in _fm0decodemeta - key, value = l.split(':') - ValueError: too many values to unpack - [1] + d1b09fe3ad2b2a03e23a72f0c582e29a49570145 1a1a11184d2588af24e767e5335d5d9d07e8c550 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'Testing::Obsstore', 'operation': 'amend', 'user': 'test'} + 1bfd8e3868f641e048b6667cd672c68932f26d00 79959ca316d5b27ac6be1dd0cfd0843a5b5412eb 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'Testing::Obsstore2', 'operation': 'amend', 'user': 'test'} $ cd ..