diff tests/test-evolve-noupdate.t @ 3774:4736d0bb81bf

evolve: add an `--update` flag to `hg evolve` command This patch adds a new `--update` flag which defaults to True. The update flag updates the working directory to the head of evolved revisions after `hg evolve` command. This flag can be used to not update your working directory after `hg evolve` which has been one of the biggest feature request from fig team at Google. To not update your working directory, the user can do `hg evolve --no-update`. If the working directory get obsoleted by evolve command, it will update to the successor. This patch also adds some basic tests for the flag introduced.
author Pulkit Goyal <7895pulkit@gmail.com>
date Thu, 24 May 2018 17:50:02 +0530
parents
children d00f0c369bc7 4eb3877540f1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-evolve-noupdate.t	Thu May 24 17:50:02 2018 +0530
@@ -0,0 +1,126 @@
+Testing the `--no-update` flag to `hg evolve` command
+=====================================================
+
+There is an `--update` flag to `hg evolve` command which defaults to True. The
+`--update` flag updates to the head of the evolved revisions. If you dont want
+to change your working directory or update your working directory to its
+sucessor after hg evolve, `hg evolve --no-update` is the thing for you.
+
+This patch tests that flag.
+
+Setup
+-----
+
+  $ cat >> $HGRCPATH <<EOF
+  > [alias]
+  > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
+  > [extensions]
+  > EOF
+  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
+
+  $ hg init stoprepo
+  $ cd stoprepo
+  $ echo ".*\.orig" > .hgignore
+  $ hg add .hgignore
+  $ hg ci -m "added hgignore"
+  $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
+
+  $ hg glog
+  @  4:c41c793e0ef1 added d
+  |   () draft
+  o  3:ca1b80f7960a added c
+  |   () draft
+  o  2:b1661037fa25 added b
+  |   () draft
+  o  1:c7586e2a9264 added a
+  |   () draft
+  o  0:8fa14d15e168 added hgignore
+      () draft
+
+Making sure we stay where we were is current wdir parent is not obsoleted
+--------------------------------------------------------------------------
+
+  $ hg up .^^
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ echo bar > b
+  $ hg amend
+  2 new orphan changesets
+  $ hg glog
+  @  5:7ed0642d644b added b
+  |   () draft
+  | *  4:c41c793e0ef1 added d
+  | |   () draft
+  | *  3:ca1b80f7960a added c
+  | |   () draft
+  | x  2:b1661037fa25 added b
+  |/    () draft
+  o  1:c7586e2a9264 added a
+  |   () draft
+  o  0:8fa14d15e168 added hgignore
+      () draft
+
+There is 'working directory is now at' message because it didnt changed
+  $ hg evolve --all --no-update
+  move:[3] added c
+  atop:[5] added b
+  move:[4] added d
+  atop:[6] added c
+
+  $ hg glog
+  o  7:b6b20b8eefdc added d
+  |   () draft
+  o  6:7c46f743e62f added c
+  |   () draft
+  @  5:7ed0642d644b added b
+  |   () draft
+  o  1:c7586e2a9264 added a
+  |   () draft
+  o  0:8fa14d15e168 added hgignore
+      () draft
+
+Updating to successor when working directory parent is obsoleted by evolution
+-----------------------------------------------------------------------------
+
+  $ hg prev
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  [1] added a
+  $ echo bar > a
+  $ hg amend
+  3 new orphan changesets
+  $ hg up 7ed0642d644b
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+  $ hg glog
+  o  8:3d41537b44ca added a
+  |   () draft
+  | *  7:b6b20b8eefdc added d
+  | |   () draft
+  | *  6:7c46f743e62f added c
+  | |   () draft
+  | @  5:7ed0642d644b added b
+  | |   () draft
+  | x  1:c7586e2a9264 added a
+  |/    () draft
+  o  0:8fa14d15e168 added hgignore
+      () draft
+
+  $ hg evolve --all --any --no-update
+  move:[5] added b
+  atop:[8] added a
+  move:[6] added c
+  atop:[9] added b
+  move:[7] added d
+  atop:[10] added c
+  working directory is now at 12c720cb3782
+
+  $ hg glog
+  o  11:a74d9f22ba3f added d
+  |   () draft
+  o  10:958f5155e8cd added c
+  |   () draft
+  @  9:12c720cb3782 added b
+  |   () draft
+  o  8:3d41537b44ca added a
+  |   () draft
+  o  0:8fa14d15e168 added hgignore
+      () draft