Mercurial > evolve
changeset 300:3b1f326878e5
obsolete: suspended changeset with secret only children should be secret too
test-obsolete-push.t: exhibit outgoing bug with suspended changeset in this case
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sat, 23 Jun 2012 01:14:49 +0200 |
parents | eda6491ca269 |
children | b41ff69388a8 |
files | hgext/obsolete.py tests/test-obsolete-push.t |
diffstat | 2 files changed, 50 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/obsolete.py Fri Jun 22 18:04:43 2012 +0200 +++ b/hgext/obsolete.py Sat Jun 23 01:14:49 2012 +0200 @@ -853,7 +853,8 @@ self._clearobsoletecache() # this is mainly for safety purpose # both pull and push - expobs = [c.node() for c in repo.set('extinct() - secret()')] + query = '(obsolete() - obsolete()::(unstable() - secret())) - secret()' + expobs = [c.node() for c in repo.set(query)] phases.retractboundary(repo, 2, expobs) ### Disk IO
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-obsolete-push.t Sat Jun 23 01:14:49 2012 +0200 @@ -0,0 +1,48 @@ + $ cat >> $HGRCPATH <<EOF + > [defaults] + > amend=-d "0 0" + > [extensions] + > hgext.rebase= + > hgext.graphlog= + > EOF + $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH + $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH + + $ template='{rev}:{node|short}@{branch}({obsolete}/{phase}) {desc|firstline}\n' + $ glog() { + > hg glog --template "$template" "$@" + > } + +Test outgoing, common A is suspended, B unstable and C secret, remote +has A and B, neither A or C should be in outgoing. + + $ hg init source + $ cd source + $ echo a > a + $ hg ci -qAm A a + $ echo b > b + $ hg ci -qAm B b + $ hg up 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo c > c + $ hg ci -qAm C c + $ hg phase --secret --force . + $ hg kill 0 1 + 1 new unstables changesets + $ glog --hidden + @ 2:244232c2222a@default(unstable/secret) C + | + | o 1:6c81ed0049f8@default(extinct/secret) B + |/ + o 0:1994f17a630e@default(suspended/secret) A + + $ hg init ../clone + $ cat > ../clone/.hg/hgrc <<EOF + > [phases] + > publish = false + > EOF + $ hg outgoing ../clone --template "$template" + comparing with ../clone + searching for changes + no changes found (ignored 2 secret changesets) + [1]