Mercurial > evolve
changeset 2:166694e62daf
hide private changeset to inc and pull.
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Fri, 20 May 2011 19:51:09 +0200 |
parents | beabde937e36 |
children | b4932dff9bd8 |
files | states.py tests/test-state.t |
diffstat | 2 files changed, 59 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/states.py Fri May 20 19:14:19 2011 +0200 +++ b/states.py Fri May 20 19:51:09 2011 +0200 @@ -95,10 +95,16 @@ def uisetup(ui): - def filter_private(orig, repo, *args,**kwargs): + def filterprivateout(orig, repo, *args,**kwargs): common, heads = orig(repo, *args, **kwargs) - return common, repo._reducehead(heads, repo._publicheads) - extensions.wrapfunction(discovery, 'findcommonoutgoing', filter_private) + return common, repo._reducehead(heads) + def filterprivatein(orig, repo, remote, *args, **kwargs): + common, anyinc, heads = orig(repo, remote, *args, **kwargs) + heads = remote._reducehead(heads) + return common, anyinc, heads + + extensions.wrapfunction(discovery, 'findcommonoutgoing', filterprivateout) + extensions.wrapfunction(discovery, 'findcommonincoming', filterprivatein) def reposetup(ui, repo): @@ -164,12 +170,12 @@ if olds != heads: self._writestateshead() - def _reducehead(self, candidates, max): + def _reducehead(self, candidates): selected = set() for candidate in candidates: rev = self.changelog.rev(candidate) ok = True - for h in max: + for h in self._publicheads: revh = self.changelog.rev(h) if self.changelog.descendant(revh, rev): ok = False
--- a/tests/test-state.t Fri May 20 19:14:19 2011 +0200 +++ b/tests/test-state.t Fri May 20 19:51:09 2011 +0200 @@ -28,25 +28,31 @@ adding file changes added 2 changesets with 2 changes to 1 files $ hg setstate 0 1 # until we fix push - $ echo "cornelius" >> babar - $ hg ci -m "great old one" + $ echo "tree" >> savainna + $ hg add savanna + savanna: No such file or directory + [1] + $ hg ci -m "terrain" + nothing changed + [1] $ echo "flore" >> babar $ hg ci -m "children" $ hg log --template='{rev}:{node|short}: {state}\n' - 3:3f5e297fd1c6: 0 - 2:dc0a5281e2d9: 0 + 2:46356f7ddfb9: 0 1:710fe444b3b0: 0 0:5caa672bac26: 0 - $ cat >> $HGRCPATH <<EOF +turn private on (repo side) + $ cat > .hg/hgrc << EOF > [states] > private=yes > EOF $ hg log --template='{rev}:{node|short}: {state}\n' - 3:3f5e297fd1c6: 2 - 2:dc0a5281e2d9: 2 + 2:46356f7ddfb9: 2 1:710fe444b3b0: 0 0:5caa672bac26: 0 + +test outgoing and push $ hg out ../remote1 --template='{rev}:{node|short}\n' comparing with ../remote1 searching for changes @@ -70,6 +76,41 @@ 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 + $ hg log --template='{rev}:{node|short}: {state}\n' + 2:46356f7ddfb9: 0 + 1:710fe444b3b0: 0 + 0:5caa672bac26: 0 + $ hg out ../remote1 --template='{rev}:{node|short}\n' + comparing with ../remote1 + searching for changes + 2:46356f7ddfb9 + +turn private on again (repo side) + $ sed -i 's/^private=.*$/private=yes/' .hg/hgrc + +test incoming and pull + + $ hg init ../other1 + $ cd ../other1 + $ hg incoming ../local --template='{rev}:{node|short}\n' + comparing with ../local + 0:5caa672bac26 + 1:710fe444b3b0 + $ hg pull ../local + pulling from ../local + requesting all changes + adding changesets + adding manifests + adding file changes + added 2 changesets with 2 changes to 1 files + (run 'hg update' to get a working copy) + $ cd .. + $ hg clone local other2 + updating to branch default + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved +