Mercurial > hg
changeset 20524:28b8ff84db3f
journal: report parsing errors on recover/rollback (issue4172)
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 17 Feb 2014 14:49:56 -0600 |
parents | 0e2877f8605d |
children | aa73a6327df4 |
files | mercurial/transaction.py tests/test-rollback.t |
diffstat | 2 files changed, 16 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/transaction.py Sat Feb 15 22:09:32 2014 -0600 +++ b/mercurial/transaction.py Mon Feb 17 14:49:56 2014 -0600 @@ -174,7 +174,10 @@ lines = fp.readlines() fp.close() for l in lines: - f, o = l.split('\0') - entries.append((f, int(o), None)) + try: + f, o = l.split('\0') + entries.append((f, int(o), None)) + except ValueError: + report(_("couldn't read journal entry %r!\n") % l) _playback(file, report, opener, entries)
--- a/tests/test-rollback.t Sat Feb 15 22:09:32 2014 -0600 +++ b/tests/test-rollback.t Mon Feb 17 14:49:56 2014 -0600 @@ -184,4 +184,14 @@ $ cat a a - $ cd .. +corrupt journal test + $ echo "foo" > .hg/store/journal + $ hg recover + rolling back interrupted transaction + couldn't read journal entry 'foo\n'! + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + 1 files, 2 changesets, 2 total revisions +