annotate tests/fixtures/project_name_with_space.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 c421e6bf0d95
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
512
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
1 #!/bin/sh
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
2 mkdir temp
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
3 cd temp
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
4 svnadmin create repo
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
5 svn co file://`pwd`/repo wc
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
6 cd wc
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
7 mkdir 'project name'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
8 cd 'project name'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
9 mkdir branches trunk tags
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
10 cd ..
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
11 svn add *
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
12 svn ci -m 'btt'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
13
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
14 cd 'project name'/trunk
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
15 for a in alpha beta gamma delta ; do
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
16 echo $a > $a
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
17 svn add $a
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
18 done
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
19 svn ci -m 'Add files.'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
20
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
21 mkdir al
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
22 echo foo > al/foo
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
23 svn add al
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
24 svn ci -m 'add directory al'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
25
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
26 cd ..
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
27 svn up
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
28 svn cp trunk branches/dev_branch
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
29 svn ci -m 'branch'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
30
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
31 cd branches/dev_branch
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
32 svn rm delta
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
33 echo narf > alpha
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
34 echo iota > iota
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
35 svn add iota
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
36 svn ci -m 'branch changes'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
37
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
38 cd ../../../../..
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
39 svnadmin dump temp/repo > project_name_with_space.svndump
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
40
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
41 echo
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
42 echo 'Complete.'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
43 echo 'You probably want to clean up temp now.'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
44 echo 'Dump in project_name_with_space.svndump'
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
45
c421e6bf0d95 tests: test paths with spaces
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
46 exit 0