Alien-SVN

 view release on metacpan or  search on metacpan

src/subversion/doc/user/cvs-crossover-guide.html  view on Meta::CPAN

<pre>
   $ svn log -v --stop-on-copy source-branch-URL
   &hellip;
</pre>

<p>This command will display every change ever made to the branch, but
<tt>--stop-on-copy</tt> option will cause the output to stop as soon
as detects a copy operation in the branch's history.  By definition,
then, the very last log entry printed will show the copy being made.
It will look something like:</p>

<pre>
r9189 | joe | 2004-03-22 10:10:47 -0600 (Mon, 22 Mar 2004) | 1 line
Changed paths:
   A /branches/mybranch (from /trunk:9188)
</pre>

<p>In this case, you would then know to compare revisions 9189 and
HEAD of the branch in order to perform the merge:</p>

<pre>
   $ svn merge -r9189:HEAD source-branch-URL target-branch-WC
   &hellip;
</pre>

</div>

<!-- ==================================================================== -->
<div class="h2">
<h2>Seeing all of a project's tags</h2>

<p>Assuming you've been following a consistent policy for creating
tag-copies, then this is just a matter of running <tt>svn ls</tt> on a
directory containing your tags.  Typically you would run it on the
<tt>/tags</tt> directory in your repository, although you're certainly
free to organize this directory in a more complex way, or invent a
different convention altogether.</p>

<p>As an example, you can see all of Subversion's tags by running:</p>

<pre>
   $ svn ls --verbose http://svn.apache.org/repos/asf/subversion/tags
     &hellip;
       7739 kfogel              Nov 13 22:05 0.33.0/
       7796 josander            Nov 18 12:15 0.33.1/
       7932 josander            Dec 03 17:54 0.34.0/
       8045 josander            Dec 19 15:13 0.35.0/
       8063 josander            Dec 20 11:20 0.35.1/
       8282 josander            Jan 13 14:15 0.36.0/
       8512 josander            Jan 24 17:31 0.37.0/
       8810 kfogel              Feb 23 03:44 1.0.0/
     &hellip;
</pre>

</div>

<!-- ==================================================================== -->
<div class="h2">
<h2>Seeing the differences between two tags</h2>

<p>Just use <tt>svn diff</tt> in its fully expanded form, which
compares any two URLs:</p>

<pre>
   $ svn diff tagURL1 tagURL2
   &hellip;
</pre>

</div>

<!-- ==================================================================== -->
<div class="h2">
<h2>Seeing logs between two tags</h2>

<p>This is a somewhat common practice in CVS, and is doable in Subversion,
but requires a little bit more work.  Assuming that you've made two
tags of <tt>/trunk</tt> at different points in time, the ultimate goal
here is to run </p>

<pre>
   $ svn log -rX:Y trunkURL
</pre>

<p>&hellip;where X and Y are the revisions from which the two tags were
copied.  To discover X and Y, you can use the same technique
described in the previous section ("finding the beginning of a
branch".)  Just use the <tt>--stop-on-copy</tt> option when logging the
history of each tag.  No commits happen on tag directories, so the
following commands should each produce exactly <em>one</em> log
entry:</p>

<pre>
   $ svn log -v --stop-on-copy tag1-URL

   r3520 | joe | 2004-03-12 15:28:43 -0600 (Fri, 12 Mar 2004) | 1 line
   &hellip;

   $ svn log -v --stop-on-copy tag2-URL
   a
   r4177 | joe | 2004-03-12 15:28:43 -0600 (Fri, 12 Mar 2004) | 1 line
   &hellip;
</pre>

<p>So in this example, the values of X and Y are 3520 and 4177.  Now
you can view all <tt>/trunk</tt> changes between those two points in time:</p>

<pre>
   $ svn log -r3520:4177 trunkURL
   &hellip;
</pre>

</div>

<!-- ==================================================================== -->
<div class="h2">
<h2>Fixing an incorrect tag</h2>

<p>If your tag is a bit off, you can "adjust" it just as people often
do in CVS.  Simply check out a working copy of the tag directory, make
any changes you wish, and commit.</p>



( run in 0.658 second using v1.01-cache-2.11-cpan-5b529ec07f3 )