53
53
only one project root, or it may contain a number of them.</p>
55
55
<p><em>Book reference:</em> <a
56
href="http://svnbook.red-bean.com/svnbook/ch05s04.html#svn-ch-5-sect-6.1">Choosing
56
href="http://svnbook.red-bean.com/nightly/en/svn.reposadmin.planning.html#svn.reposadmin.projects.chooselayout">Choosing
57
57
a Repository Layout</a>.</p>
70
70
it as an argument to <tt>svn merge</tt> should you want to undo the
71
71
change or port it to another branch.</p>
73
<p><em>Book reference:</em> "Subversion and Changesets" sidebar,
75
href="http://svnbook.red-bean.com/svnbook/ch04s03.html">chapter
73
<p><em>Book reference:</em> <a
74
href="http://svnbook.red-bean.com/nightly/en/svn.branchmerge.basicmerging.html#svn.branchmerge.changesets">Changesets</a>.</p>
78
76
<!-- =================================================== -->
92
90
<!-- =================================================== -->
92
<div style="color:grey">
94
93
<h2>Track merges manually</h2>
95
<p><em>### OBSOLETE RECOMMENDATION ###</em></p>
96
97
<p>When committing the result of a merge, be sure to write a
97
98
descriptive log message that explains what was merged, something
103
104
href="http://svnbook.red-bean.com/svnbook/ch04s03.html#svn-ch-4-sect-3.2">Tracking
104
105
merges manually</a>, and <a
105
106
href="http://svnbook.red-bean.com/svnbook/ch04s04.html#svn-ch-4-sect-4.1">Merging a whole branch to another</a>.</p>
107
109
<!-- =================================================== -->
136
138
<p><em>Book reference:</em> <a
137
href="http://svnbook.red-bean.com/svnbook/ch02s03.html#svn-ch-2-sect-3.4">The
138
limitation of mixed revisions</a>.</p>
139
href="http://svnbook.red-bean.com/nightly/en/svn.basic.in-action.html#svn.basic.in-action.mixedrevs">Mixed-revision working copies</a>.</p>
141
142
<!-- =================================================== -->
183
184
<!-- =================================================== -->
185
<h2>Work around commands that don't understand copies/renames</h2>
187
<p>When a file or directory is copied or renamed, the Subversion repository
188
tracks that history. Unfortunately in Subversion 1.0, the only client
189
subcommand which actually takes advantage of this feature is <tt>svn
190
log</tt>. A number of other commands (such as <tt>svn diff</tt> and
191
<tt>svn cat</tt>) ought to be automatically following rename-history,
192
but aren't doing so yet.</p>
194
<p>In all of these cases, a basic workaround is to use <tt>'svn log
195
-v'</tt> to discover the proper path within the older revision.</p>
197
<p>For example, suppose you copied <tt>/trunk</tt> to
198
<tt>/branches/mybranch</tt> in revision 200, and then committed some
199
changes to <tt>/branches/mybranch/foo.c</tt> in subsequent revisions.
200
Now you'd like to compare revisions 80 and 250 of the file.</p>
202
<p>If you have a working copy of the branch and run <tt>svn diff
203
-r80:250 foo.c</tt>, you'll see an error about
204
<tt>/branches/mybranch/foo.c</tt> not existing in revision 80. To
205
remedy, you would run <tt>svn log -v</tt> on your branch or file to
206
discover that it was named <tt>/trunk/foo.c</tt> prior to revision 200,
207
and then compare the two URLs directly:</p>
210
$ svn diff http://.../trunk/foo.c@80 \
211
http://.../branches/mybranch/foo.c@200
216
<!-- =================================================== -->
218
186
<h2>Know when to create branches</h2>
220
188
<p>This is a hotly debated question, and it really depends on the