[PATCH 03 of 10] phases: write default phase data as soon as possible

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Mon Jan 30 10:49:37 CST 2012


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1327941189 -3600
# Branch stable
# Node ID b79eb733a568777e92b1291d267229ae6ff1832a
# Parent  087a920ef41a7dc3870af4a458cebd2f219f72f5
phases: write default phase data as soon as possible.

Marks phase data as dirty when computing default phase. Actual writing is done
when the lock is released. So, read only operation don't write phase data
because they don't lock the repo.

diff --git a/mercurial/phases.py b/mercurial/phases.py
--- a/mercurial/phases.py
+++ b/mercurial/phases.py
@@ -120,10 +120,11 @@ def readroots(repo):
     except IOError, inst:
         if inst.errno != errno.ENOENT:
             raise
         for f in repo._phasedefaults:
             roots = f(repo, roots)
+        repo._dirtyphases = True
     return roots
 
 def writeroots(repo):
     """Write phase roots from disk"""
     f = repo.sopener('phaseroots', 'w', atomictemp=True)
diff --git a/tests/test-inherit-mode.t b/tests/test-inherit-mode.t
--- a/tests/test-inherit-mode.t
+++ b/tests/test-inherit-mode.t
@@ -119,10 +119,11 @@ group can still write everything
   00770 ../push/.hg/store/data/
   00770 ../push/.hg/store/data/dir/
   00660 ../push/.hg/store/data/dir/bar.i
   00660 ../push/.hg/store/data/foo.i
   00660 ../push/.hg/store/fncache
+  00660 ../push/.hg/store/phaseroots
   00660 ../push/.hg/store/undo
   00660 ../push/.hg/store/undo.phaseroots
   00660 ../push/.hg/undo.bookmarks
   00660 ../push/.hg/undo.branch
   00660 ../push/.hg/undo.desc


More information about the Mercurial-devel mailing list