Mercurial > hg
annotate tests/test-mq-symlinks @ 10397:8cb81d75730c
mq: add parent node IDs to MQ patches on qrefresh/qnew
The goal of this patch is to add the IDs of the parents of applied MQ patches
into the patch file headers whenever qnew or qrefresh are run.
This will serve as a reminder of when the patches last applied cleanly and
will let us do more intelligent things in the future, such as:
* Resolve conflicts found when qpushing to a new location by merging
instead of simply showing rejects.
* Display better diffs of versioned MQ patches because we can tell how the
patched files have changed in the meantime.
Here are the new rules this patch introduces. They are checked in this order:
* If a patch currently has old, plain-style patch headers ("From:" and
"Date:") do not change the style or add any new headers.
* If the 'mq.plain' configuration setting is true, only plain-style
headers will be used for all MQ patches.
* qnew will initialize new patches with HG-style headers and fill in the
"# Parent" header with the appropriate parent node.
* qrefresh will refresh the "# Parent" header with the current parent of
the current patch.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Sun, 07 Feb 2010 10:47:54 -0500 |
parents | d08099e74b81 |
children | b0bb72460c44 |
rev | line source |
---|---|
5157
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
1 #!/bin/sh |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
2 |
6360
95413879bac9
test-mq-symlinks: skip if symlinks are not supported
Patrick Mezard <pmezard@gmail.com>
parents:
5683
diff
changeset
|
3 "$TESTDIR/hghave" symlink || exit 80 |
95413879bac9
test-mq-symlinks: skip if symlinks are not supported
Patrick Mezard <pmezard@gmail.com>
parents:
5683
diff
changeset
|
4 |
5157
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
5 echo "[extensions]" >> $HGRCPATH |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
6 echo "mq=" >> $HGRCPATH |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
7 |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
8 hg init |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
9 hg qinit |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
10 hg qnew base.patch |
9585
ea1935e2020a
patch: handle symlinks without symlinkhunk
Patrick Mezard <pmezard@gmail.com>
parents:
7517
diff
changeset
|
11 echo aaa > a |
ea1935e2020a
patch: handle symlinks without symlinkhunk
Patrick Mezard <pmezard@gmail.com>
parents:
7517
diff
changeset
|
12 echo bbb > b |
9586
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
13 echo ccc > c |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
14 hg add a b c |
5157
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
15 hg qrefresh |
5683
396c7010b0cd
Use common readlink.py instead of own implementations per test script.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
5157
diff
changeset
|
16 $TESTDIR/readlink.py a |
5157
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
17 |
9585
ea1935e2020a
patch: handle symlinks without symlinkhunk
Patrick Mezard <pmezard@gmail.com>
parents:
7517
diff
changeset
|
18 echo '% test replacing a file with a symlink' |
5157
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
19 hg qnew symlink.patch |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
20 rm a |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
21 ln -s b a |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
22 hg qrefresh --git |
5683
396c7010b0cd
Use common readlink.py instead of own implementations per test script.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
5157
diff
changeset
|
23 $TESTDIR/readlink.py a |
5157
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
24 |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
25 hg qpop |
f6c520fd70cf
mq: teach qpop about symlinks
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
26 hg qpush |
5683
396c7010b0cd
Use common readlink.py instead of own implementations per test script.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
5157
diff
changeset
|
27 $TESTDIR/readlink.py a |
7517
49f34b43cf90
patch: handle git patches that remove symlinks (issue1438)
Brendan Cully <brendan@kublai.com>
parents:
6360
diff
changeset
|
28 |
9586
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
29 echo '% test updating a symlink' |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
30 rm a |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
31 ln -s c a |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
32 hg qnew --git -f updatelink |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
33 $TESTDIR/readlink.py a |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
34 hg qpop |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
35 hg qpush --debug |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
36 $TESTDIR/readlink.py a |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
37 hg st |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
38 |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
39 echo '% test replacing a symlink with a file' |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
40 ln -s c s |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
41 hg add s |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
42 hg qnew --git -f addlink |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
43 rm s |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
44 echo sss > s |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
45 hg qnew --git -f replacelinkwithfile |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
46 hg qpop |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
47 hg qpush |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
48 cat s |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
49 hg st |
d08099e74b81
patch: handle symlink updates/replacements (issue1785)
Patrick Mezard <pmezard@gmail.com>
parents:
9585
diff
changeset
|
50 |
10397
8cb81d75730c
mq: add parent node IDs to MQ patches on qrefresh/qnew
Steve Losh <steve@stevelosh.com>
parents:
9586
diff
changeset
|
51 echo '% test symlink removal' |
7517
49f34b43cf90
patch: handle git patches that remove symlinks (issue1438)
Brendan Cully <brendan@kublai.com>
parents:
6360
diff
changeset
|
52 hg qnew removesl.patch |
49f34b43cf90
patch: handle git patches that remove symlinks (issue1438)
Brendan Cully <brendan@kublai.com>
parents:
6360
diff
changeset
|
53 hg rm a |
49f34b43cf90
patch: handle git patches that remove symlinks (issue1438)
Brendan Cully <brendan@kublai.com>
parents:
6360
diff
changeset
|
54 hg qrefresh --git |
49f34b43cf90
patch: handle git patches that remove symlinks (issue1438)
Brendan Cully <brendan@kublai.com>
parents:
6360
diff
changeset
|
55 hg qpop |
49f34b43cf90
patch: handle git patches that remove symlinks (issue1438)
Brendan Cully <brendan@kublai.com>
parents:
6360
diff
changeset
|
56 hg qpush |
49f34b43cf90
patch: handle git patches that remove symlinks (issue1438)
Brendan Cully <brendan@kublai.com>
parents:
6360
diff
changeset
|
57 hg st -c |