~ubuntu-branches/ubuntu/wily/acl2/wily

« back to all changes in this revision

Viewing changes to books/README-svn

  • Committer: Package Import Robot
  • Author(s): Camm Maguire
  • Date: 2015-01-16 10:35:45 UTC
  • mfrom: (3.3.26 sid)
  • Revision ID: package-import@ubuntu.com-20150116103545-prehe9thgo79o8w8
Tags: 7.0-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
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:
3
 
 
4
 
  "svn status -u ."
5
 
 
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:
11
 
 
12
 
  svn propedit svn:ignore . --editor-cmd emacs
13
 
 
14
 
Otherwise....
15
 
 
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.
20
 
 
21
 
  svn propset -R svn:ignore -F unversioned-files.txt .
22
 
 
23
 
Otherwise, first execute the following in the top-level directory:
24
 
 
25
 
  svn propset -R svn:ignore -F unversioned-files.txt .
26
 
 
27
 
Then in each subdirectory with a file unversioned-files-extra.txt,
28
 
e.g. as determined by
29
 
 
30
 
  find . -name unversioned-files-extra.txt -print
31
 
 
32
 
execute the following command (replacing /projects/acl2/devel/books/
33
 
if not at UT CS):
34
 
 
35
 
  (cat /projects/acl2/devel/books/unversioned-files.txt unversioned-files-extra.txt > tmp) ; \
36
 
  (svn propset svn:ignore -F tmp .) ; \
37
 
  (rm tmp)
38
 
 
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
41
 
that directory.
42
 
 
43
 
#!/lusr/bin/bash
44
 
 
45
 
for dir in \
46
 
xdoc \
47
 
clause-processors/SULFA/c-files \
48
 
clause-processors/SULFA/scripts \
49
 
clause-processors/SULFA/books/sat-tests \
50
 
clause-processors/SULFA/books/sat \
51
 
cutil \
52
 
bdd \
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 \
58
 
centaur \
59
 
serialize ; \
60
 
do \
61
 
pushd $dir ; \
62
 
(cat /projects/acl2/devel/books/unversioned-files.txt unversioned-files-extra.txt > tmp) ; \
63
 
(svn propset svn:ignore -F tmp .) ; \
64
 
(rm tmp) ;
65
 
popd ;
66
 
done
67
 
 
68
 
.....
69
 
 
70
 
For the record, here is what was done for the commit creating svn
71
 
revision 598.
72
 
 
73
 
(a) Added file ./unversioned-files.txt, which simply records the
74
 
output of:
75
 
 
76
 
  svn propget svn:ignore
77
 
 
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.)
81
 
 
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.
85
 
 
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.
91
 
 
92
 
============================================================
93
 
 
94
 
For an ACL2 release:
95
 
 
96
 
The following is probably only of use to ACL2 developers, but maybe
97
 
some of it will be useful to others.
98
 
 
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).
101
 
 
102
 
To create a branch from the trunk:
103
 
 
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
107
 
 
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
112
 
certain revision.
113
 
 
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
117
 
 
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):
120
 
 
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
124
 
 
125
 
 
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.
128
 
 
129
 
cd /projects/acl2/devel/books/
130
 
svn switch https://acl2-books.googlecode.com/svn/branches/6.5
131
 
 
132
 
Now switch back to the trunk AFTER the release is complete,
133
 
substituting "663" below by the number saved above (where "663" is
134
 
mentioned):
135
 
 
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
141
 
svn update
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"
144
 
 
145
 
Then resolve any conflicts.
146
 
 
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.
152
 
 
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.
163
 
 
164
 
[Instructions already covered above, but left here in case they're
165
 
helpful sometime:
166
 
 
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:
173
 
 
174
 
  svn merge -r 663:HEAD https://acl2-books.googlecode.com/svn/branches/6.5 .
175
 
 
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.
181
 
 
182
 
]
183
 
 
184
 
Note that if desired, you can check out a working copy of the branch
185
 
in the usual way:
186
 
 
187
 
svn checkout https://acl2-books.googlecode.com/svn/branches/6.5 my-new-books-dir
188
 
 
189
 
============================================================