view tests/test-obsolete-push.t @ 3527:7b4d1bfb6b7d

grab: gracefully handle the case when we try to grab parent of wdir Before this patch, we go all the way down to obsmarker creation logic and gets an error saying that changeset cannot obsolete itself. We should be more smart here and error out early saying we cannot grab that changeset.
author Pulkit Goyal <7895pulkit@gmail.com>
date Tue, 13 Mar 2018 20:44:51 +0530
parents 8feb2cae7eae
children ccfcacc5ee7c 2d9902f0ff17
line wrap: on
line source

  $ cat >> $HGRCPATH <<EOF
  > [defaults]
  > amend=-d "0 0"
  > [extensions]
  > EOF
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH

  $ template='{rev}:{node|short}@{branch}({separate("/", obsolete, phase)}) {desc|firstline}\n'
  $ glog() {
  >   hg log -G --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 prune 0 1
  2 changesets pruned
  1 new orphan changesets
  $ glog --hidden
  @  2:244232c2222a@default(secret) C
  |
  | x  1:6c81ed0049f8@default(obsolete/draft) B
  |/
  x  0:1994f17a630e@default(obsolete/draft) A
  
  $ hg init ../clone
  $ cat >  ../clone/.hg/hgrc <<EOF
  > [phases]
  > publish = false
  > EOF
  $ hg outgoing ../clone --template "$template"
  comparing with ../clone
  searching for changes
  0:1994f17a630e@default(obsolete/draft) A
  $ cd ..

Test options to prevent implicite publishing of changesets
----------------------------------------------------------


  $ hg clone source strict-publish-client --pull
  requesting all changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files
  2 new obsolescence markers
  new changesets 1994f17a630e
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ cd strict-publish-client
  $ echo c > c
  $ hg ci -qAm C c

abort behavior

  $ cat >> .hg/hgrc <<eof
  > [experimental]
  > auto-publish = abort
  > eof
  $ hg push -r .
  pushing to $TESTTMP/source
  abort: push would publish 1 changesets
  (behavior controlled by 'experimental.auto-publish' config)
  [255]
  $ hg push
  pushing to $TESTTMP/source
  abort: push would publish 1 changesets
  (behavior controlled by 'experimental.auto-publish' config)
  [255]

warning behavior

  $ echo 'auto-publish = warn' >> .hg/hgrc
  $ hg push
  pushing to $TESTTMP/source
  1 changesets about to be published
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 0 changesets with 0 changes to 1 files