tests/test-evolve-split.t
author Boris Feld <boris.feld@octobus.net>
Fri, 19 May 2017 18:43:21 +0200
changeset 2446 4b2f4da124a2
parent 1806 9f42f819267b
child 2776 4dd84054ebbb
permissions -rw-r--r--
effectflag: allow to save effect of change in obsmarkers Obsmarkers lack a precious information, what are the changes between the source and the destination. This could be several thing: - The description has changed, with a amend -e for example - The parent has changed, with a rebase for example - The content has changed, with a amend for example - The meta, like the user, has change, with a amend -u for example Or any combination of them. We hijack the createobsmarkers in order to compute the modification and store the effect flag which is basically a bitfield of the changes list above and we store it in the metadata for the moment. The advantage of computing the flag just before creating the obs marker is that all commands will immediately be compatible and we can start working on the UI display of the flag. As a future optimization, the commands will be able to pass the flag directly or data to help computing them, for example amend knows if the description has changed or rebase now if the parent has changed, virtually removing the overhead. To start simple, this patch add the detection and storage of the effect flag when the description has changed. And hide it behind an experimental flag disabled by default 'experimental.evolution.effect-flags'. More flag will follow.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     1
Check that evolve shows error while handling split commits
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     2
--------------------------------------
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     3
  $ cat >> $HGRCPATH <<EOF
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     4
  > [defaults]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     5
  > amend=-d "0 0"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     6
  > fold=-d "0 0"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     7
  > [web]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     8
  > push_ssl = false
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     9
  > allow_push = *
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    10
  > [phases]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    11
  > publish = False
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    12
  > [diff]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    13
  > git = 1
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    14
  > unified = 0
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    15
  > [ui]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    16
  > logtemplate = {rev}:{node|short}@{branch}({phase}) {desc|firstline}\n
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    17
  > [extensions]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    18
  > hgext.graphlog=
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    19
  > EOF
1806
9f42f819267b evolve: move the extensions to 'hgext3rd'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1481
diff changeset
    20
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    21
  $ mkcommit() {
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    22
  >    echo "$1" > "$1"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    23
  >    hg add "$1"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    24
  >    hg ci -m "add $1"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    25
  > }
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    26
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    27
  $ hg init split
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    28
  $ cd split
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    29
  $ mkcommit aa
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    30
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    31
Create a split commit
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    32
  $ printf "oo" > oo;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    33
  $ printf "pp" > pp;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    34
  $ hg add oo pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    35
  $ hg commit -m "oo+pp"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    36
  $ mkcommit uu
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    37
  $ hg up 0
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    38
  0 files updated, 0 files merged, 3 files removed, 0 files unresolved
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    39
  $ printf "oo" > oo;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    40
  $ hg add oo
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    41
  $ hg commit -m "_oo"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    42
  created new head
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    43
  $ printf "pp" > pp;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    44
  $ hg add pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    45
  $ hg commit -m "_pp"
1471
4140d680784e evolve: (issue4386) cleanup, split, fold and bijection in `hg prune`
Laurent Charignon <lcharignon@fb.com>
parents: 1428
diff changeset
    46
  $ hg prune --succ "desc(_oo) + desc(_pp)" -r "desc('oo+pp')" --split
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    47
  1 changesets pruned
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    48
  1 new unstable changesets
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    49
  $ hg log -G
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    50
  @  4:d0dcf24cddd3@default(draft) _pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    51
  |
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    52
  o  3:a7fdfda64c08@default(draft) _oo
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    53
  |
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    54
  | o  2:f52200b086ca@default(draft) add uu
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    55
  | |
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    56
  | x  1:d55647aaa0c6@default(draft) oo+pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    57
  |/
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    58
  o  0:58663bb03074@default(draft) add aa
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    59
  
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    60
  $ hg evolve --rev "0::"
1481
3c0aebe73482 evolve: handle split commit for instability
Laurent Charignon <lcharignon@fb.com>
parents: 1471
diff changeset
    61
  move:[2] add uu
3c0aebe73482 evolve: handle split commit for instability
Laurent Charignon <lcharignon@fb.com>
parents: 1471
diff changeset
    62
  atop:[4] _pp
3c0aebe73482 evolve: handle split commit for instability
Laurent Charignon <lcharignon@fb.com>
parents: 1471
diff changeset
    63
  working directory is now at 6f5bbe2e3df3