annotate tests/fixtures/addspecial.sh @ 1229:46523cdfd3b0 stable 1.6.3

pushmod: prepend "link " to base text for links http://svn.apache.org/viewvc?view=revision&revision=1223036 exposes what is arguably a bug in hgsubversion push code. Specifically, when we are receiving text from the server in an editor, we prepend a "link " to the text of symlinks when opening a file and strip it when closing a file. We don't, however, prepend "link " to the base we use when sending text changes to the server. This was working before because prior to that revision, the first thing subversion did was to check whether the entirety of the before text or the entirety of the after text was less than 64 bytes. In that case, it just sent the entirety of the after text as a single insert operation. I'd expect most, but not all symlinks to fit under the 64 byte limit, including the leading "link " text on the subversion end. After the change, the first thing subversion does is check for a leading match that is more than 4 bytes long, or that is the full length of the after text. In this case, it sends a copy operation for the leading match, and then goes into the if < 64 bytes remaining send the whole thing behavior. It also looks for trailing matches of more than 4 bytes even in the <64 byte case, but that's not what breaks the tests. Incidentally, changing the destination of long symlinks was broken even before this subversion change. This diff includes test additions that cover that breakage.
author David Schleimer <dschleimer@gmail.com>
date Thu, 07 Aug 2014 19:30:26 -0700
parents b6b1365e3489
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
901
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
1 #!/bin/sh
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
2
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
3 mkdir temp
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
4 cd temp
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
5
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
6 svnadmin create repo
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
7 svn co file://`pwd`/repo wc
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
8 cd wc
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
9
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
10 mkdir -p trunk branches
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
11 svn add trunk branches
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
12 svn ci -m'initial structure'
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
13 cd trunk
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
14 echo a>a
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
15 svn add a
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
16 svn ci -mci1 a
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
17 cd ..
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
18 svn up
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
19 svn cp trunk branches/foo
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
20 svn ci -m'branch foo'
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
21 cd branches/foo
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
22 ln -s a fnord
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
23 svn add fnord
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
24 svn ci -msymlink fnord
904
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
25 mkdir 'spacy name'
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
26 echo a > 'spacy name/spacy file'
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
27 svn add 'spacy name'
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
28 svn ci -mspacy 'spacy name'
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
29 svn up
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
30 echo b > 'spacy name/surprise ~'
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
31 svn add 'spacy name/surprise ~'
b6b1365e3489 canonicalize svn paths even more awesomely
Bryan O'Sullivan <bryano@fb.com>
parents: 901
diff changeset
32 svn ci -mtilde 'spacy name'
901
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
33 svn up ../..
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
34 echo foo > exe
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
35 chmod +x exe
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
36 svn add exe
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
37 svn ci -mexecutable exe
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
38 svn up ../..
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
39 cd ../../trunk
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
40 svn merge ../branches/foo
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
41 svn ci -mmerge
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
42 svn up
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
43
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
44 pwd
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
45 cd ../../..
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
46 svnadmin dump temp/repo > addspecial.svndump
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
47 echo
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
48 echo 'Complete.'
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
49 echo 'You probably want to clean up temp now.'
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
50 echo 'Dump in addspecial.svndump'
bd12a4da0f35 replay: workaround svn not telling us about x/l flags (issue346)
Bryan O'Sullivan <bryano@fb.com>
parents:
diff changeset
51 exit 0