annotate tests/fixtures/addspecial.sh @ 937:fb6f6b7fa5a5

editor: implement file batons The concept of current.file is incorrect, svn_delta.h documents open file lifetime as: * 5. When the producer calls @c open_file or @c add_file, either: * * (a) The producer must follow with any changes to the file * (@c change_file_prop and/or @c apply_textdelta, as applicable), * followed by a @c close_file call, before issuing any other file * or directory calls, or * * (b) The producer must follow with a @c change_file_prop call if * it is applicable, before issuing any other file or directory * calls; later, after all directory batons including the root * have been closed, the producer must issue @c apply_textdelta * and @c close_file calls. So, an open file can be kept open until after the root directory is closed and have deltas applied afterwards. In the meantime, other files may have been opened and patched, overwriting the current.file variable. This patch fixes it by introducing file batons bound to file paths, and using them to deduce the correct target in apply_textdelta(). In theory, open files could be put in a staging area until they are closed and moved in the RevisionData. But the current code registers files copied during a directory copy as open files and these will not receive a close_file() event. This separation will be enforced later.
author Patrick Mezard <patrick@mezard.eu>
date Sun, 23 Sep 2012 19:52:48 +0200
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