Mercurial > hg > mutable-history
changeset 12:6312fc525a54
rename state related attributes
frozen is now published
public is now ready
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Wed, 25 May 2011 02:04:12 +0200 |
parents | 47ba990eff0e |
children | e95e8cf7988f |
files | states.py tests/test-draft.t tests/test-private.t |
diffstat | 2 files changed, 35 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/states.py +++ b/states.py @@ -78,11 +78,11 @@ else: return 'heads' -STDRAFT = state('draft', _NOSHARE | _MUTABLE) -STREADY = state('ready', _MUTABLE, next=STDRAFT) -STPUBLISHED = state('published', next=STREADY) +ST2 = state('draft', _NOSHARE | _MUTABLE) +ST1 = state('ready', _MUTABLE, next=ST2) +ST0 = state('published', next=ST1) -STATES = (STPUBLISHED, STREADY, STDRAFT) +STATES = (ST0, ST1, ST2) # util function ############################# @@ -116,8 +116,7 @@ ############################# def cmdsetstate(ui, repo, statename, *changesets): - """turn private changesets into public ones""" - #assert repo.ui.configbool('private', 'enable', False) + """change changeset state""" for state in STATES: # few states if state.name == statename: break @@ -154,7 +153,7 @@ # Write protocols #################### def heads(repo, proto): - h = repo._publicheads + h = repo._readyheads return wireproto.encodelist(h) + "\n" def _reducehead(wirerepo, heads): @@ -174,26 +173,27 @@ def nodestate(self, node): rev = self.changelog.rev(node) - for head in self._publicheads: + for head in self._readyheads: revhead = self.changelog.rev(head) if self.changelog.descendant(revhead, rev): return STATES[2] - for head in self._frozenheads: + for head in self._publishedheads: revhead = self.changelog.rev(head) if self.changelog.descendant(revhead, rev): return STATES[1] return STATES[0] + @property - def _publicheads(self): - if self.ui.configbool('states', 'private', False): - return self._statesheads[STREADY] + def _readyheads(self): + if self.ui.configbool('states', ST1.next.name, False): + return self._statesheads[ST1] return self.heads() @property - def _frozenheads(self): - if self.ui.configbool('states', 'liquid', False): - return self._statesheads[STPUBLISHED] + def _publishedheads(self): + if self.ui.configbool('states', ST0.next.name, False): + return self._statesheads[ST0] return self.heads() @util.propertycache @@ -214,8 +214,10 @@ return heads def _readstatesheads(self): statesheads = {} - statesheads[STPUBLISHED] = self._readheadsfile('frozenheads') - statesheads[STREADY] = self._readheadsfile('publicheads') + for state in STATES: + if state.trackheads: + filename = 'states/%s-heads' % state.name + statesheads[state] = self._readheadsfile(filename) return statesheads def _writeheadsfile(self, filename, heads): @@ -229,8 +231,10 @@ def _writestateshead(self): # transaction! - self._writeheadsfile('frozenheads', self._statesheads[STPUBLISHED]) - self._writeheadsfile('publicheads', self._statesheads[STREADY]) + for state in STATES: + if state.trackheads: + filename = 'states/%s-heads' % state.name + self._writeheadsfile(filename, self._statesheads[state]) def setstate(self, state, nodes): """freeze targets changeset and it's ancestors. @@ -254,7 +258,7 @@ for candidate in candidates: rev = self.changelog.rev(candidate) ok = True - for h in self._publicheads: + for h in self._readyheads: revh = self.changelog.rev(h) if self.changelog.descendant(revh, rev): ok = False @@ -264,7 +268,7 @@ return sorted(selected) def cancopy(self): - return o_cancopy() and (self._publicheads == self.heads()) + return o_cancopy() and (self._readyheads == self.heads()) repo.__class__ = statefulrepo
rename from tests/test-private.t rename to tests/test-draft.t --- a/tests/test-private.t +++ b/tests/test-draft.t @@ -42,10 +42,10 @@ 1:710fe444b3b0: published 0:5caa672bac26: published -turn private on (repo side) +turn draft on (repo side) $ cat > .hg/hgrc << EOF > [states] - > private=yes + > draft=yes > EOF $ hg log --template='{rev}:{node|short}: {state}\n' 3:73585b17392a: draft @@ -77,8 +77,8 @@ adding file changes added 2 changesets with 2 changes to 1 files -turn private off again (repo side) - $ sed -i 's/^private=.*$/private=no/' .hg/hgrc +turn draft off again (repo side) + $ sed -i 's/^draft=.*$/draft=no/' .hg/hgrc $ hg log --template='{rev}:{node|short}: {state}\n' 3:73585b17392a: published 2:3c8695235a32: published @@ -90,8 +90,8 @@ 2:3c8695235a32 3:73585b17392a -turn private on again (repo side) - $ sed -i 's/^private=.*$/private=yes/' .hg/hgrc +turn draft on again (repo side) + $ sed -i 's/^draft=.*$/draft=yes/' .hg/hgrc test incoming and pull @@ -164,10 +164,10 @@ no changes found [1] -turn private off again (repo side) +turn draft off again (repo side) $ cd .. $ "$TESTDIR/killdaemons.py" - $ sed -i 's/^private=.*$/private=off/' ./local/.hg/hgrc + $ sed -i 's/^draft=.*$/draft=off/' ./local/.hg/hgrc $ hg -R local serve -p $HGPORT -d --pid-file=local.pid $ cat local.pid >> "$DAEMON_PIDS" $ cd fromhttp2 @@ -188,8 +188,8 @@ $ cd .. $ "$TESTDIR/killdaemons.py" -turn private on again (repo side) - $ sed -i 's/^private=.*$/private=on/' local/.hg/hgrc +turn draft on again (repo side) + $ sed -i 's/^draft=.*$/draft=on/' local/.hg/hgrc $ hg init httpto $ hg -R httpto serve -p $HGPORT -d --pid-file=remote.pid $ cat remote.pid >> "$DAEMON_PIDS"