Mercurial > hg
annotate tests/test-update-issue1456.t @ 20275:2123d27ff75d
backout: avoid update on simple case.
Before the changeset the backout process was:
1) go to <target>
2) revert to <target> parent
3) update back to changeset we came from
The two update steps can takes a very long time to move back and forth unrelated
file change between <target> and current working directory.
The new process is just merging current working directory with the parent of
<target> using <target> as ancestor. This give the very same result but skip
the two updates. On big repo with a lot of files and changes that save a lots of
time (x20 for one week window).
The "merge" version (hg backout --merge) is still done with upgrades. We could
imagine using in memory commit to speed it up but this is another fish.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 08 Jan 2014 14:53:46 -0800 |
parents | 41abe2e3e3b7 |
children | 7a9cbb315d84 |
rev | line source |
---|---|
15442
db0340f4b507
tests: use 'hghave execbit' for tests that manipulate x bit in file system
Mads Kiilerich <mads@kiilerich.com>
parents:
12316
diff
changeset
|
1 $ "$TESTDIR/hghave" execbit || exit 80 |
db0340f4b507
tests: use 'hghave execbit' for tests that manipulate x bit in file system
Mads Kiilerich <mads@kiilerich.com>
parents:
12316
diff
changeset
|
2 |
12279 | 3 $ rm -rf a |
4 $ hg init a | |
5 $ cd a | |
7569
89207edf3973
correctly update dirstate after update+mode change (issue1456)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
6 |
12279 | 7 $ echo foo > foo |
8 $ hg ci -qAm0 | |
18895
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
9 $ echo toremove > toremove |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
10 $ echo todelete > todelete |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
11 $ chmod +x foo toremove todelete |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
12 $ hg ci -qAm1 |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
13 |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
14 Test that local removed/deleted, remote removed works with flags |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
15 $ hg rm toremove |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
16 $ rm todelete |
12279 | 17 $ hg co -q 0 |
18895
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
18 |
12279 | 19 $ echo dirty > foo |
20 $ hg up -c | |
19801
41abe2e3e3b7
update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com>
parents:
18895
diff
changeset
|
21 abort: uncommitted changes |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
22 [255] |
12279 | 23 $ hg up -q |
24 $ cat foo | |
25 dirty | |
26 $ hg st -A | |
27 M foo | |
18895
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
28 C todelete |
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
29 C toremove |
7569
89207edf3973
correctly update dirstate after update+mode change (issue1456)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
30 |
12279 | 31 Validate update of standalone execute bit change: |
32 | |
33 $ hg up -C 0 | |
18895
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
34 1 files updated, 0 files merged, 2 files removed, 0 files unresolved |
12279 | 35 $ chmod -x foo |
36 $ hg ci -m removeexec | |
37 nothing changed | |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
38 [1] |
12279 | 39 $ hg up -C 0 |
40 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
41 $ hg up | |
18895
ed676ed67a5c
manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents:
18334
diff
changeset
|
42 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
12279 | 43 $ hg st |
44 | |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15442
diff
changeset
|
45 $ cd .. |