Mercurial > hg
annotate tests/test-mq-subrepo-svn.t @ 23603:d74eb8d477d5
memctx: calculate manifest more efficiently
Before this patch, "memctx._manifest" updates all entries in the
(parent) manifest. But this is inefficiency, because almost all files
may be clean in that context.
On the other hand, just updating entries for changed "files" specified
at construction causes unexpected abortion, when there is at least one
newly removed file (see issue4470 for detail).
To calculate manifest more efficiently, this patch replaces
"pman.iteritems()" for the loop by "self._status.modified" to avoid
updating entries for clean or removed files
Examination of removal is also omitted, because removed files aren't
treated in this loop (= "self[f]" returns not None always).
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Fri, 19 Dec 2014 00:11:56 +0900 |
parents | e955549cd045 |
children | 1ff35d76421c |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17033
diff
changeset
|
1 #require svn13 |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
2 |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22947
diff
changeset
|
3 $ cat <<EOF >> $HGRCPATH |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22947
diff
changeset
|
4 > [extensions] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22947
diff
changeset
|
5 > mq = |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22947
diff
changeset
|
6 > [diff] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22947
diff
changeset
|
7 > nodates = 1 |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22947
diff
changeset
|
8 > EOF |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
9 |
13326
535a891284da
test-subrepo-mq-svn.t: correct comment
Kevin Bullock <kbullock@ringworld.org>
parents:
13300
diff
changeset
|
10 fn to create new repository, and cd into it |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
11 $ mkrepo() { |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
12 > hg init $1 |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
13 > cd $1 |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
14 > hg qinit |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
15 > } |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
16 |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
17 |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
18 handle svn subrepos safely |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
19 |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
20 $ svnadmin create svn-repo-2499 |
17033
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
21 |
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
22 $ SVNREPOPATH=`pwd`/svn-repo-2499/project |
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
23 #if windows |
22947
c63a09b6b337
tests: use $PYTHON instead of hardcoding python
Augie Fackler <raf@durin42.com>
parents:
22046
diff
changeset
|
24 $ SVNREPOURL=file:///`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"` |
17033
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
25 #else |
22947
c63a09b6b337
tests: use $PYTHON instead of hardcoding python
Augie Fackler <raf@durin42.com>
parents:
22046
diff
changeset
|
26 $ SVNREPOURL=file://`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"` |
17033
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
27 #endif |
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
28 |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
29 $ mkdir -p svn-project-2499/trunk |
17033
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
30 $ svn import -m 'init project' svn-project-2499 "$SVNREPOURL" |
16894
f9b352b65180
test-mq-subrepo-svn: enable for Windows
Eduard-Cristian Stefan <alexandrul.ct@gmail.com>
parents:
16073
diff
changeset
|
31 Adding svn-project-2499/trunk (glob) |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
32 |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
33 Committed revision 1. |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
34 |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
35 qnew on repo w/svn subrepo |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
36 $ mkrepo repo-2499-svn-subrepo |
17033
0413f68da85c
tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
37 $ svn co "$SVNREPOURL"/trunk sub |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
38 Checked out revision 1. |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
39 $ echo 'sub = [svn]sub' >> .hgsub |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
40 $ hg add .hgsub |
13410
1f2b2c33d386
tests: fixes for svn 1.4.2
Matt Mackall <mpm@selenic.com>
parents:
13326
diff
changeset
|
41 $ hg status -S -X '**/format' |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
42 A .hgsub |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
43 $ hg qnew -m0 0.diff |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
44 $ cd sub |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
45 $ echo a > a |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
46 $ svn add a |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
47 A a |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
48 $ svn st |
13410
1f2b2c33d386
tests: fixes for svn 1.4.2
Matt Mackall <mpm@selenic.com>
parents:
13326
diff
changeset
|
49 A* a (glob) |
13300
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
50 $ cd .. |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
51 $ hg status -S # doesn't show status for svn subrepos (yet) |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
52 $ hg qnew -m1 1.diff |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
53 abort: uncommitted changes in subrepository sub |
23bbb5b888ea
subrepo: separate out mq+svn subrepo tests
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
54 [255] |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16894
diff
changeset
|
55 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16894
diff
changeset
|
56 $ cd .. |