tests/test-hgk.t
author Jun Wu <quark@fb.com>
Mon, 28 Nov 2016 05:45:22 +0000
changeset 30585 51e7c83e05ee
parent 23451 5fb1fc2e1281
permissions -rw-r--r--
rebase: calculate ancestors for --base separately (issue5420) Previously, the --base option only works with a single "branch" - if there is one changeset in the "--base" revset whose branching point(s) is/are different from another changeset in the "--base" revset, "rebase" will error out with: abort: source is ancestor of destination This happens if the user has multiple draft branches, and uses "hg rebase -b 'draft()' -d master", for example. The error message looks cryptic to users who don't know the implementation detail. This patch changes the logic to calculate the common ancestor for every "base" changeset separately so we won't (incorrectly) select "source" which is an ancestor of the destination. This patch should not change the behavior where all changesets specified by "--base" have the same branching point(s). A new situation is: some of the specified changesets could be rebased, while some couldn't (because they are descendants of the destination, or they do not share a common ancestor with the destination). The current behavior is to show "nothing to rebase" and exits with 1. This patch maintains the current behavior (show "nothing to rebase") even if part of the "--base" revset could be rebased. A clearer error message may be "cannot find branching point for X", or "X is a descendant of destination". The error message issue is tracked by issue5422 separately. A test is added with all kinds of tricky cases I could think of for now.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12431
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     1
Minimal hgk check
6800
cc7114d96548 hgk: ctx.parents() problem introduced by 2d54e7c1e69d
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
12431
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     3
  $ echo "[extensions]" >> $HGRCPATH
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     4
  $ echo "hgk=" >> $HGRCPATH
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     5
  $ hg init repo
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     6
  $ cd repo
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     7
  $ echo a > a
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     8
  $ hg ci -Am adda
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
     9
  adding a
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    10
  $ hg debug-cat-file commit 0
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    11
  tree a0c8bcbbb45c
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    12
  parent 000000000000
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    13
  author test 0 0
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    14
  revision 0
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    15
  branch default
18807
cf72fd8b3072 hgk: add support for phases
Andrew Shadura <bugzilla@tut.by>
parents: 17959
diff changeset
    16
  phase draft
12431
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    17
  
d911aa2b8570 tests: unify test-hgk
Matt Mackall <mpm@selenic.com>
parents: 6800
diff changeset
    18
  adda
23451
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    19
  $ echo b > b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    20
  $ hg ci -Am addb
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    21
  adding b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    22
  $ hg log -T '{node}\n'
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    23
  102a90ea7b4a3361e4082ed620918c261189a36a
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    24
  07f4944404050f47db2e5c5071e0e84e7a27bba9
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    25
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    26
  $ hg debug-diff-tree 07f494440405 102a90ea7b4a
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    27
  :000000 100664 000000000000 1e88685f5dde N	b	b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    28
  $ hg debug-diff-tree 07f494440405 102a90ea7b4a --patch
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    29
  diff --git a/b b/b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    30
  new file mode 100644
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    31
  --- /dev/null
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    32
  +++ b/b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    33
  @@ -0,0 +1,1 @@
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    34
  +b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    35
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    36
Ensure that diff-tree output isn't affected by diffopts
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    37
  $ hg --config diff.noprefix=True debug-diff-tree 07f494440405 102a90ea7b4a
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    38
  :000000 100664 000000000000 1e88685f5dde N	b	b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    39
  $ hg --config diff.noprefix=True debug-diff-tree --patch 07f494440405 102a90ea7b4a
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    40
  diff --git a/b b/b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    41
  new file mode 100644
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    42
  --- /dev/null
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    43
  +++ b/b
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    44
  @@ -0,0 +1,1 @@
5fb1fc2e1281 hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents: 18807
diff changeset
    45
  +b
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12431
diff changeset
    46
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12431
diff changeset
    47
  $ cd ..