1
From time to time, we may add new directories. In that case, steps
2
described below will explain how to reduce output from the command:
6
WARNING: Be careful about doing this under centaur/. In particular,
7
the process below will probably mess things up for some folks (in
8
particular, Jared Davis) when applied to projects/milawa/ and some
9
other parts of centaur/. For such cases, simply update using a
10
command such as the following in a terminal:
12
svn propedit svn:ignore . --editor-cmd emacs
16
There are actually two ways to do this. In most cases, it will be
17
simplest simply to execute the following in the new directory,
18
replacing "unversioned-files.txt" by a path to unversioned-files.txt
19
in the top-level directory.
21
svn propset -R svn:ignore -F unversioned-files.txt .
23
Otherwise, first execute the following in the top-level directory:
25
svn propset -R svn:ignore -F unversioned-files.txt .
27
Then in each subdirectory with a file unversioned-files-extra.txt,
30
find . -name unversioned-files-extra.txt -print
32
execute the following command (replacing /projects/acl2/devel/books/
35
(cat /projects/acl2/devel/books/unversioned-files.txt unversioned-files-extra.txt > tmp) ; \
36
(svn propset svn:ignore -F tmp .) ; \
39
Here is an example of a file "tmp" I created in
40
/projects/acl2/devel/books/, so that I could just execute ./tmp in
47
clause-processors/SULFA/c-files \
48
clause-processors/SULFA/scripts \
49
clause-processors/SULFA/books/sat-tests \
50
clause-processors/SULFA/books/sat \
53
workshops/2003/kaufmann/support/input \
54
workshops/2003/kaufmann/support/rtl \
55
workshops/2003/greve-wilding-vanfleet/support \
56
workshops/2004/sumners-ray/support \
57
workshops/1999/multiplier \
62
(cat /projects/acl2/devel/books/unversioned-files.txt unversioned-files-extra.txt > tmp) ; \
63
(svn propset svn:ignore -F tmp .) ; \
70
For the record, here is what was done for the commit creating svn
73
(a) Added file ./unversioned-files.txt, which simply records the
76
svn propget svn:ignore
78
(Presumably previous work had been done to set the svn:ignore
79
property, but now we have the values recorded in
80
unversioned-files.txt.)
82
(b) Added files unversioned-files-extra.txt in a few directories, to
83
specify additional files to ignore, typically ones removed by
84
extensions of "make clean"in a given directory.
86
(c) For each such file unversioned-files-extra.txt, executed the above
87
command starting with "(cat ../unversioned-files.txt", but as above,
88
replacing "../" with an appropriate number of repetitions of that
89
sequence of three characters, to obtain a reference to file
90
unversioned-files.txt in the top-level directory.
92
============================================================
96
The following is probably only of use to ACL2 developers, but maybe
97
some of it will be useful to others.
99
How to make a release branch, as per Sol, 1/6/2011 (edited by Matt
100
K. from Sol's email, mostly to add -m arguments).
102
To create a branch from the trunk:
104
svn copy -m 'Make initial release branch for Version 6.5.' \
105
https://acl2-books.googlecode.com/svn/trunk \
106
https://acl2-books.googlecode.com/svn/branches/6.5
108
To create a tag is the same operation (note from Matt K.: Not sure we
109
ever need to create a tag); the only difference is the convention that
110
directories under branches are to be considered branches and
111
directories under tags are treated as write-once "markers" for a
114
svn copy -m 'Release branch corresponding to actual ACL2 6.5 release.' \
115
https://acl2-books.googlecode.com/svn/branches/6.5 \
116
https://acl2-books.googlecode.com/svn/tags/6.5
118
If ever you want to make a branch/tag from a specific revision (i.e.
119
not the latest), you can do something like (note the @660):
121
svn copy -m 'Release branch corresponding to actual ACL2 6.5 release.' \
122
https://acl2-books.googlecode.com/svn/branches/6.5@660 \
123
https://acl2-books.googlecode.com/svn/tags/6.5
126
For an ACL2 developer, the next step is to remember the current
127
version number for the books -- below, we assume it is 663.
129
cd /projects/acl2/devel/books/
130
svn switch https://acl2-books.googlecode.com/svn/branches/6.5
132
Now switch back to the trunk AFTER the release is complete,
133
substituting "663" below by the number saved above (where "663" is
136
cd /projects/acl2/devel/books/
137
# While still in 6.5:
138
svn commit -m "Updates made for release committed to 6.5 branch"
139
# Now switch over to trunk
140
svn switch https://acl2-books.googlecode.com/svn/trunk
142
svn merge -r 663:HEAD https://acl2-books.googlecode.com/svn/branches/6.5 .
143
svn commit -m "Updates made for release committed to trunk"
145
Then resolve any conflicts.
147
The "svn switch" command acts a lot like "svn update." Basically it
148
computes the diff between the revision on which the working copy is
149
based and the specified branch/revision, and applies that diff to the
150
working copy. So it tries to preserves your edits to the working
151
copy, and notifies you of conflicts where it can't.
153
Note to ACL2 developers: During the release process, while the books/
154
subdirectory is a branch instead of the trunk, be sure to use
155
--ignore-externals when doing svn stuff in the ACL2 sources
156
development directory. Details: The ACL2 sources repository contains
157
an "svn:externals" property that links the acl2/books subdirectory to
158
the trunk of the acl2-books repository. Unfortunately, this means
159
that if you do an "svn switch" within books/ from trunk to a branch,
160
then do an "svn update" in the acl2 sources directory, it will try and
161
switch your books back from the branch to the trunk. To avoid this,
162
use "svn update --ignore-externals" instead.
164
[Instructions already covered above, but left here in case they're
167
Finally, when you want to merge some changes from one branch into
168
another (say, from the release branch back into the trunk), first get
169
a working copy of the trunk. (You can check one out fresh or "svn
170
switch" one from the branch back to the trunk.) Then, from that
171
working copy directory, run the following command, with appropriately
172
chosen revision numbers:
174
svn merge -r 663:HEAD https://acl2-books.googlecode.com/svn/branches/6.5 .
176
This takes the diff between revisions 663 and HEAD of the 6.5 branch
177
and applies it to your current working copy (no change is committed to
178
the repository yet.) Again, it will notify you of conflicts if it
179
encounters any. Note to ACL2 developers: Resolve those, if any, and
180
then commit (to the trunk) whether there were conflicts or not.
184
Note that if desired, you can check out a working copy of the branch
187
svn checkout https://acl2-books.googlecode.com/svn/branches/6.5 my-new-books-dir
189
============================================================