changeset 5865:e7127f669edb

transactions: don't show a backtrace when journal exists Now we simply print a message on how to recover.
author Matt Mackall <mpm@selenic.com>
date Wed, 16 Jan 2008 11:32:25 -0600
parents 88783c8b5660
children dc6ed2736c81 0d583ade5817
files mercurial/localrepo.py mercurial/transaction.py tests/test-journal-exists tests/test-journal-exists.out
diffstat 4 files changed, 24 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/localrepo.py	Wed Jan 16 11:14:51 2008 -0600
+++ b/mercurial/localrepo.py	Wed Jan 16 11:32:25 2008 -0600
@@ -519,6 +519,10 @@
         if self._transref and self._transref():
             return self._transref().nest()
 
+        # abort here if the journal already exists
+        if os.path.exists(self.sjoin("journal")):
+            raise repo.RepoError(_("journal already exists - run hg recover"))
+
         # save dirstate for rollback
         try:
             ds = self.opener("dirstate").read()
--- a/mercurial/transaction.py	Wed Jan 16 11:14:51 2008 -0600
+++ b/mercurial/transaction.py	Wed Jan 16 11:32:25 2008 -0600
@@ -18,10 +18,6 @@
     def __init__(self, report, opener, journal, after=None):
         self.journal = None
 
-        # abort here if the journal already exists
-        if os.path.exists(journal):
-            raise AssertionError(_("journal already exists - run hg recover"))
-
         self.count = 1
         self.report = report
         self.opener = opener
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-journal-exists	Wed Jan 16 11:32:25 2008 -0600
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+hg init
+echo a > a
+hg ci -Am0
+
+touch .hg/store/journal
+
+echo foo > a
+hg ci -Am0
+
+hg recover
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-journal-exists.out	Wed Jan 16 11:32:25 2008 -0600
@@ -0,0 +1,8 @@
+adding a
+abort: journal already exists - run hg recover!
+rolling back interrupted transaction
+checking changesets
+checking manifests
+crosschecking files in changesets and manifests
+checking files
+1 files, 1 changesets, 1 total revisions