##// END OF EJS Templates
exchange: move disabling of rev-branch-cache bundle part out of narrow...
exchange: move disabling of rev-branch-cache bundle part out of narrow I'm attempting to refactor changegroup code in order to better support alternate storage backends. The narrow extension is performing a lot of monkeypatching to this code and it is making it difficult to reason about how everything works. I'm reasonably certain I would be unable to abstract storage without requiring extensive rework of narrow. I believe it is less effort to move narrow code into core so it can be accounted for when changegroup code is refactored. So I'll be doing that. The first part of this is integrating the disabling of the cache:rev-branch-cache bundle2 part into core. This doesn't seem like it is related to changegroup, but narrow's modifications to changegroup are invasive and also require taking its code for bundle generation and exchange into core in order for the changegroup code to work. Differential Revision: https://phab.mercurial-scm.org/D4007

File last commit:

r23172:e955549c default
r38813:ab765bc4 default
Show More
test-mq-merge.t
177 lines | 3.4 KiB | text/troff | Tads3Lexer
Martin Geisler
mq: forbid commit of merge involving mq patches
r13520 Setup extension:
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> mq =
> [mq]
> git = keep
> EOF
Martin Geisler
mq: forbid commit of merge involving mq patches
r13520
Test merge with mq changeset as the second parent:
$ hg init m
$ cd m
$ touch a b c
$ hg add a
$ hg commit -m a
$ hg add b
$ hg qnew -d "0 0" b
$ hg update 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg add c
$ hg commit -m c
created new head
$ hg merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m merge
abort: cannot commit over an applied mq patch
[255]
$ cd ..
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue529: mq aborts when merging patch deleting files
Adrian Buehlmann
tests: unify some of test-mq*
r12324
$ checkundo()
> {
> if [ -f .hg/store/undo ]; then
> echo ".hg/store/undo still exists"
> fi
> }
Commit two dummy files in "init" changeset:
$ hg init t
$ cd t
$ echo a > a
$ echo b > b
$ hg ci -Am init
adding a
adding b
$ hg tag -l init
Create a patch removing a:
$ hg qnew rm_a
$ hg rm a
$ hg qrefresh -m "rm a"
Save the patch queue so we can merge it later:
$ hg qsave -c -e
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 copy $TESTTMP/t/.hg/patches to $TESTTMP/t/.hg/patches.1
Adrian Buehlmann
tests: unify some of test-mq*
r12324 $ checkundo
Update b and commit in an "update" changeset:
$ hg up -C init
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b >> b
$ hg st
M b
$ hg ci -m update
created new head
# Here, qpush used to abort with :
# The system cannot find the file specified => a
$ hg manifest
a
b
$ hg qpush -a -m
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 merging with queue at: $TESTTMP/t/.hg/patches.1
Adrian Buehlmann
tests: unify some of test-mq*
r12324 applying rm_a
now at: rm_a
$ checkundo
$ hg manifest
b
Ensure status is correct after merge:
$ hg qpop -a
popping rm_a
popping .hg.patches.merge.marker
patch queue now empty
$ cd ..
Classic MQ merge sequence *with an explicit named queue*:
$ hg init t2
$ cd t2
$ echo '[diff]' > .hg/hgrc
$ echo 'nodates = 1' >> .hg/hgrc
$ echo a > a
$ hg ci -Am init
adding a
$ echo b > a
$ hg ci -m changea
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg cp a aa
$ echo c >> a
$ hg qnew --git -f -e patcha
$ echo d >> a
$ hg qnew -d '0 0' -f -e patcha2
Create the reference queue:
$ hg qsave -c -e -n refqueue
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 copy $TESTTMP/t2/.hg/patches to $TESTTMP/t2/.hg/refqueue
Adrian Buehlmann
tests: unify some of test-mq*
r12324 $ hg up -C 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Merge:
$ HGMERGE=internal:other hg qpush -a -m -n refqueue
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 merging with queue at: $TESTTMP/t2/.hg/refqueue
Adrian Buehlmann
tests: unify some of test-mq*
r12324 applying patcha
patching file a
Patrick Mezard
patch: fuzz more aggressively to match patch(1) behaviour...
r16124 Hunk #1 succeeded at 2 with fuzz 1 (offset 0 lines).
fuzz found when applying patch, stopping
Adrian Buehlmann
tests: unify some of test-mq*
r12324 patch didn't work out, merging patcha
Patrick Mezard
patch: fuzz more aggressively to match patch(1) behaviour...
r16124 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Adrian Buehlmann
tests: unify some of test-mq*
r12324 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
applying patcha2
now at: patcha2
Check patcha is still a git patch:
$ cat .hg/patches/patcha
# HG changeset patch
Mads Kiilerich
mq: write '# Parent ' lines with two spaces like export does (BC)...
r22521 # Parent d3873e73d99ef67873dac33fbcc66268d5d2b6f4
Adrian Buehlmann
tests: unify some of test-mq*
r12324
diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
-b
+a
+c
Mads Kiilerich
diff: search beyond ancestor when detecting renames...
r20294 diff --git a/a b/aa
copy from a
copy to aa
--- a/a
Adrian Buehlmann
tests: unify some of test-mq*
r12324 +++ b/aa
Mads Kiilerich
diff: search beyond ancestor when detecting renames...
r20294 @@ -1,1 +1,1 @@
-b
Adrian Buehlmann
tests: unify some of test-mq*
r12324 +a
Check patcha2 is still a regular patch:
$ cat .hg/patches/patcha2
# HG changeset patch
Mads Kiilerich
mq: write headers for new HG patches in the same order as export (BC)
r22520 # Date 0 0
Mads Kiilerich
mq: write '# Parent ' lines with two spaces like export does (BC)...
r22521 # Parent ???????????????????????????????????????? (glob)
Adrian Buehlmann
tests: unify some of test-mq*
r12324
Brodie Rao
tests: add glob matching for unified tests...
r12376 diff -r ???????????? -r ???????????? a (glob)
Adrian Buehlmann
tests: unify some of test-mq*
r12324 --- a/a
+++ b/a
@@ -1,2 +1,3 @@
a
c
+d
$ cd ..