~ubuntu-branches/debian/sid/subversion/sid

« back to all changes in this revision

Viewing changes to doc/user/svn-best-practices.html

  • Committer: Package Import Robot
  • Author(s): James McCoy
  • Date: 2015-08-07 21:32:47 UTC
  • mfrom: (0.2.15) (4.1.7 experimental)
  • Revision ID: package-import@ubuntu.com-20150807213247-ozyewtmgsr6tkewl
Tags: 1.9.0-1
* Upload to unstable
* New upstream release.
  + Security fixes
    - CVE-2015-3184: Mixed anonymous/authenticated path-based authz with
      httpd 2.4
    - CVE-2015-3187: svn_repos_trace_node_locations() reveals paths hidden
      by authz
* Add >= 2.7 requirement for python-all-dev Build-Depends, needed to run
  tests.
* Remove Build-Conflicts against ruby-test-unit.  (Closes: #791844)
* Remove patches/apache_module_dependency in favor of expressing the
  dependencies in authz_svn.load/dav_svn.load.
* Build-Depend on apache2-dev (>= 2.4.16) to ensure ap_some_authn_required()
  is available when building mod_authz_svn and Depend on apache2-bin (>=
  2.4.16) for runtime support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
only one project root, or it may contain a number of them.</p>
54
54
 
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>
58
58
 
59
59
 
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>
72
72
 
73
 
<p><em>Book reference:</em> "Subversion and Changesets" sidebar,
74
 
        within <a
75
 
        href="http://svnbook.red-bean.com/svnbook/ch04s03.html">chapter
76
 
        4</a>.</p>
 
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>
77
75
 
78
76
<!-- =================================================== -->
79
77
 
91
89
 
92
90
<!-- =================================================== -->
93
91
 
 
92
<div style="color:grey">
94
93
<h2>Track merges manually</h2>
95
94
 
 
95
<p><em>### OBSOLETE RECOMMENDATION ###</em></p>
 
96
 
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
98
99
like:</p>
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
</div>
106
108
 
107
109
<!-- =================================================== -->
108
110
 
134
136
</ol>
135
137
 
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>
139
140
 
140
141
 
141
142
<!-- =================================================== -->
182
183
 
183
184
<!-- =================================================== -->
184
185
 
185
 
<h2>Work around commands that don't understand copies/renames</h2>
186
 
 
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>
193
 
 
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>
196
 
 
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>
201
 
 
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>
208
 
 
209
 
<pre>
210
 
   $ svn diff http://.../trunk/foo.c@80 \
211
 
              http://.../branches/mybranch/foo.c@200
212
 
</pre>
213
 
 
214
 
 
215
 
 
216
 
<!-- =================================================== -->
217
 
 
218
186
<h2>Know when to create branches</h2>
219
187
 
220
188
<p>This is a hotly debated question, and it really depends on the