tests/test-merge-no-file-change.t
author Yuya Nishihara <yuya@tcha.org>
Sun, 12 Aug 2018 18:44:42 +0900
changeset 39110 f0c2653ca706
child 39111 46da52f4b820
permissions -rw-r--r--
merge: add tests for commit with no content change It isn't easy to say when to reuse the p1 manifest. Basically, that's only when wctx.files() is empty, but we need to know that wctx.files() is not the same as repo['.'].files() after the commit. This patch adds several examples of commits with empty ctx/wctx.files(). I don't think this is exhaustive, but it contains at least one failure mode in which a converted repo result in a different hash. I also note that the manifest revlog does NOT follow the DAG shape of the changelog since p1 manifest is reused if wctx.files() is empty even at merge. I don't know whether it is intentional or not, but it's the behavior since 2011, 301725c3df9a "localrepo: reuse parent manifest in commitctx if no files have changed."
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     1
  $ cat <<'EOF' >> "$HGRCPATH"
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     2
  > [extensions]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     3
  > convert =
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     4
  > [templates]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     5
  > l = '{rev}:{node|short} p={p1rev},{p2rev} m={manifest} f={files|json}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     6
  > EOF
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     7
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     8
  $ check_convert_identity () {
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     9
  >     hg convert -q "$1" "$1.converted"
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    10
  >     hg outgoing -q -R "$1.converted" "$1"
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    11
  >     if [ "$?" != 1 ]; then
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    12
  >         echo '*** BUG: hash changes on convert ***'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    13
  >         hg log -R "$1.converted" -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    14
  >     fi
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    15
  > }
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    16
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    17
Files added at both parents:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    18
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    19
  $ hg init added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    20
  $ cd added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    21
  $ touch a b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    22
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    23
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    24
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    25
  $ hg ci -qAm2 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    26
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    27
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    28
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    29
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    30
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    31
  committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    32
  b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    33
  committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    34
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    35
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    36
  committed changeset 3:7aa8a293f5d97377037afc21e871e036e718d659
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    37
  $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    38
  @    3:7aa8a293f5d9 p=2,1 m=3:8667461869a1 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    39
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    40
  | o  2:e0ea47086fce p=0,-1 m=2:b2e5b07f9374 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    41
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    42
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    43
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    44
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    45
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    46
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    47
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    48
  $ check_convert_identity added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    49
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    50
Files added at both parents, but the other removed at the merge:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    51
(In this case, ctx.files() after the commit contains the removed file "b", but
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    52
its manifest does not differ from p1.)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    53
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    54
  $ hg init added-both-removed-at-merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    55
  $ cd added-both-removed-at-merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    56
  $ touch a b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    57
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    58
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    59
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    60
  $ hg ci -qAm2 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    61
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    62
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    63
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    64
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    65
  $ hg rm -f b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    66
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    67
  committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    68
  committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    69
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    70
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    71
  committed changeset 3:915745f3ca3d9d699925269474c2d0a9526e8dfa
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    72
  $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    73
  @    3:915745f3ca3d p=2,1 m=3:8e9cf3456921 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    74
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    75
  | o  2:e0ea47086fce p=0,-1 m=2:b2e5b07f9374 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    76
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    77
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    78
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    79
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    80
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    81
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    82
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    83
  $ check_convert_identity added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    84
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    85
An identical file added at both parents:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    86
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    87
  $ hg init added-identical
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    88
  $ cd added-identical
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    89
  $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    90
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    91
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    92
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    93
  $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    94
  $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    95
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    96
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    97
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    98
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    99
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   100
  reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   101
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   102
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   103
  committed changeset 3:de26182cd210f0c3fb175ca7616704ab963d3024
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   104
  $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   105
  @    3:de26182cd210 p=2,1 m=1:686dbf0aeca4 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   106
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   107
  | o  2:f00991f11eca p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   108
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   109
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   110
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   111
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   112
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   113
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   114
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   115
  $ check_convert_identity added-identical
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   116
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   117
#if execbit
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   118
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   119
An identical file added at both parents, but the flag differs. Take local:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   120
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   121
  $ hg init flag-change-take-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   122
  $ cd flag-change-take-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   123
  $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   124
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   125
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   126
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   127
  $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   128
  $ chmod +x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   129
  $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   130
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   131
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   132
  warning: cannot merge flags for b without common ancestor - keeping local flags
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   133
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   134
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   135
  $ chmod +x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   136
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   137
  committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   138
  b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   139
  committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   140
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   141
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   142
  committed changeset 3:4bfaad7f925b7f17f60524dc5d4e605f7bfbba3f
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   143
  $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   144
  @    3:4bfaad7f925b p=2,1 m=3:a3a9fe23a5b8 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   145
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   146
  | o  2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   147
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   148
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   149
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   150
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   151
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   152
  $ hg files -vr3
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   153
           0   a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   154
           0 x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   155
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   156
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   157
  $ check_convert_identity flag-change-take-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   158
  3:c8d50407916e
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   159
  *** BUG: hash changes on convert ***
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   160
  o    3:c8d50407916e p=2,1 m=2:36b69ba4b24b f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   161
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   162
  | o  2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   163
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   164
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   165
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   166
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   167
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   168
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   169
An identical file added at both parents, but the flag differs. Take other:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   170
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   171
  $ hg init flag-change-take-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   172
  $ cd flag-change-take-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   173
  $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   174
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   175
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   176
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   177
  $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   178
  $ chmod +x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   179
  $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   180
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   181
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   182
  warning: cannot merge flags for b without common ancestor - keeping local flags
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   183
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   184
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   185
  $ chmod -x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   186
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   187
  committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   188
  b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   189
  committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   190
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   191
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   192
  committed changeset 3:06a62a687d87c7d8944743dee1ee9d8c66b3f6e3
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   193
  $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   194
  @    3:06a62a687d87 p=2,1 m=3:2a315ba1aa45 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   195
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   196
  | o  2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   197
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   198
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   199
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   200
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   201
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   202
  $ hg files -vr3
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   203
           0   a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   204
           0   b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   205
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   206
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   207
  $ check_convert_identity flag-change-take-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   208
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   209
#endif
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   210
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   211
An identical file added at both parents, one more file added at p2:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   212
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   213
  $ hg init added-some-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   214
  $ cd added-some-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   215
  $ touch a b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   216
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   217
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   218
  $ hg ci -qAm2 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   219
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   220
  $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   221
  $ hg ci -qAm3 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   222
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   223
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   224
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   225
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   226
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   227
  committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   228
  c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   229
  committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   230
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   231
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   232
  committed changeset 4:f7fbc4e4d9a8fde03ba475adad675578c8bf472d
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   233
  $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   234
  @    4:f7fbc4e4d9a8 p=3,2 m=3:92acd5bfd716 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   235
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   236
  | o  3:e9d9f3cc981f p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   237
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   238
  o |  2:93c5529a4ec7 p=1,-1 m=2:ae25a31b30b3 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   239
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   240
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   241
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   242
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   243
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   244
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   245
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   246
  $ check_convert_identity added-some-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   247
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   248
An identical file added at both parents, one more file added at p1:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   249
(In this case, p1 manifest is reused at the merge commit, which means the
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   250
manifest DAG does not have the same shape as the changelog.)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   251
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   252
  $ hg init added-some-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   253
  $ cd added-some-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   254
  $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   255
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   256
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   257
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   258
  $ touch b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   259
  $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   260
  $ hg ci -qAm3 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   261
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   262
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   263
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   264
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   265
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   266
  reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   267
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   268
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   269
  committed changeset 4:a9f0f589a913f5a149dc10dfbd5af726977c36c4
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   270
  $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   271
  @    4:a9f0f589a913 p=3,1 m=2:ae25a31b30b3 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   272
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   273
  | o  3:b8dc385241b5 p=2,-1 m=2:ae25a31b30b3 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   274
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   275
  | o  2:f00991f11eca p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   276
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   277
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   278
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   279
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   280
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   281
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   282
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   283
  $ check_convert_identity added-some-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   284
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   285
A file added at p2, a named branch created at p1:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   286
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   287
  $ hg init named-branch-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   288
  $ cd named-branch-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   289
  $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   290
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   291
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   292
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   293
  $ hg branch -q foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   294
  $ hg ci -m2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   295
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   296
  $ hg merge default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   297
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   298
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   299
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   300
  committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   301
  b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   302
  committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   303
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   304
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   305
  committed changeset 3:fb97d83b02fd072295cfc2171f21b7d38509bfd7
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   306
  $ hg log -GT'{l} branch={branch}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   307
  @    3:fb97d83b02fd p=2,1 m=2:9091c64f4ea1 f=[] branch=foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   308
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   309
  | o  2:a3a9fa6587e5 p=0,-1 m=0:8515d4bfda76 f=[] branch=foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   310
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   311
  o |  1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   312
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   313
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   314
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   315
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   316
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   317
  $ check_convert_identity named-branch-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   318
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   319
A file added at p1, a named branch created at p2:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   320
(In this case, p1 manifest is reused at the merge commit, which means the
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   321
manifest DAG does not have the same shape as the changelog.)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   322
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   323
  $ hg init named-branch-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   324
  $ cd named-branch-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   325
  $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   326
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   327
  $ hg branch -q foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   328
  $ hg ci -m1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   329
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   330
  $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   331
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   332
  $ hg merge foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   333
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   334
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   335
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   336
  reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   337
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   338
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   339
  committed changeset 3:036823e24692218324d4af43b07ff89f8a000096
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   340
  $ hg log -GT'{l} branch={branch}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   341
  @    3:036823e24692 p=2,1 m=1:686dbf0aeca4 f=[] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   342
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   343
  | o  2:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   344
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   345
  o |  1:da38c8e00727 p=0,-1 m=0:8515d4bfda76 f=[] branch=foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   346
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   347
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   348
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   349
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   350
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   351
  $ check_convert_identity named-branch-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   352
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   353
A file changed once at both parents, but amended to have identical content:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   354
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   355
  $ hg init amend-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   356
  $ cd amend-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   357
  $ touch a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   358
  $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   359
  $ echo foo > a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   360
  $ hg ci -m1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   361
  $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   362
  $ echo bar > a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   363
  $ hg ci -qm2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   364
  $ echo foo > a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   365
  $ hg ci -qm3 --amend
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   366
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   367
  $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   368
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   369
  (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   370
  $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   371
  reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   372
  committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   373
  updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   374
  committed changeset 3:314e5bc5adf5c58ea571efabe33eedba20a201aa
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   375
  $ hg log -GT'{l} branch={branch}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   376
  @    3:314e5bc5adf5 p=2,1 m=1:d33ea248bd73 f=[] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   377
  |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   378
  | o  2:de9c64f226a3 p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   379
  | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   380
  o |  1:6a74aec01b3c p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   381
  |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   382
  o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   383
  
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   384
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   385
  $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   386
  $ check_convert_identity amend-p1