##// END OF EJS Templates
parsers.c: remove warning: 'size' may be used uninitialized in this function...
parsers.c: remove warning: 'size' may be used uninitialized in this function Some compilers / compiler options (such as gcc 4.7) would emit warnings: mercurial/parsers.c: In function 'pack_dirstate': mercurial/parsers.c:306:18: warning: 'size' may be used uninitialized in this function [-Wmaybe-uninitialized] mercurial/parsers.c:306:12: warning: 'mode' may be used uninitialized in this function [-Wmaybe-uninitialized] It is apparently not smart enough to figure out how the 'err' arithmetics makes sure that it can't happen. 'err' is now replaced with simple checks and goto. That might also help the optimizer when it is inlining getintat().

File last commit:

r16124:0e0060bf stable
r17165:249cc4ec default
Show More
test-mq-merge.t
173 lines | 3.5 KiB | text/troff | Tads3Lexer
Martin Geisler
mq: forbid commit of merge involving mq patches
r13520 Setup extension:
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq =" >> $HGRCPATH
$ echo "[mq]" >> $HGRCPATH
$ echo "git = keep" >> $HGRCPATH
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
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 copy $TESTTMP/t/.hg/patches to $TESTTMP/t/.hg/patches.1 (glob)
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
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 merging with queue at: $TESTTMP/t/.hg/patches.1 (glob)
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
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 copy $TESTTMP/t2/.hg/patches to $TESTTMP/t2/.hg/refqueue (glob)
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
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 merging with queue at: $TESTTMP/t2/.hg/refqueue (glob)
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
# Parent d3873e73d99ef67873dac33fbcc66268d5d2b6f4
diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
-b
+a
+c
Matt Mackall
copies: rewrite copy detection for non-merge users...
r15775 diff --git a/aa b/aa
new file mode 100644
--- /dev/null
Adrian Buehlmann
tests: unify some of test-mq*
r12324 +++ b/aa
Matt Mackall
copies: rewrite copy detection for non-merge users...
r15775 @@ -0,0 +1,1 @@
Adrian Buehlmann
tests: unify some of test-mq*
r12324 +a
Check patcha2 is still a regular patch:
$ cat .hg/patches/patcha2
# HG changeset patch
Brodie Rao
tests: add glob matching for unified tests...
r12376 # Parent ???????????????????????????????????????? (glob)
Adrian Buehlmann
tests: unify some of test-mq*
r12324 # Date 0 0
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 ..