[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: diff --summarize lists incorrect URLs when comparing two tags

From: David Weintraub <qazwart_at_gmail.com>
Date: Thu, 25 Sep 2008 16:00:55 -0400

I followed your example and got the following:

$ svn diff file://$PWD/repos/tags/a file://$PWD/repos/tags/b
Index: two.txt
===================================================================
--- two.txt (.../a) (revision 0)
+++ two.txt (.../b) (revision 4)
@@ -0,0 +1 @@
+hi there

This is showing that file "two.txt" was not in tag "a", but is in tag "b".

If I am in the working copy and do this:

$ svn diff -r2:4 --summarize
A trunk/two.txt
A tags/b/one.txt
A tags/b/two.txt
A tags/b

That shows me the difference between revision #2 (when I created
tags/a) and revision #4 (when I created tags/b). That looks okay.

Then, when I do what you did:

$ svn diff --summarize file://$PWD/repos/tags/a file://$PWD/repos/tags/b
A file:///root/temp/repos/tags/a/two.txt

That does look weird. Maybe it's suppose to be showing you that you
have to add a/two.txt to get the directories to match?

Let's try reversing the position of the two parameters:

$ svn diff --summarize file://$PWD/repos/tags/b file://$PWD/repos/tags/a
D file:///root/temp/repos/tags/b/two.txt

I think this explains it! This show that you'd have to delete
b/two.txt to get two the tags to match.

As an experiment, I went in and changed the file tags/a/one.txt (yes,
you're not suppose to, but I am pure evil).

Now I get this:

$ svn diff --summarize file://$PWD/repos/tags/a file://$PWD/repos/tags/b
M file:///root/temp/repos/tags/a/one.txt
A file:///root/temp/repos/tags/a/two.txt

And this:

$ svn diff --summarize file://$PWD/repos/tags/b file://$PWD/repos/tags/a
D file:///root/temp/repos/tags/b/two.txt
M file:///root/temp/repos/tags/b/one.txt

So, the output is showing you the differences between the two, and
what has to be done to make the two URLS match.

--
David Weintraub
qazwart_at_gmail.com
On Thu, Sep 25, 2008 at 8:59 AM, JJ <eggsgloriouseggs_at_gmail.com> wrote:
> Can anyone reply to this?  Is this a bug as I suspect, or am I missing
> something?
> Thanks.
>
> On Mon, Sep 22, 2008 at 2:09 PM, JJ <eggsgloriouseggs_at_gmail.com> wrote:
>>
>> Below is a recipe for reproducing some odd behavior with diff --summarize.
>>
>> The "problem" I'm seeing is that when I diff two tags, paths are always
>> displayed using the URL to the oldest tag.  I'd expect the youngest tag to
>> be used in the returned paths, since that tag represents the final state of
>> those files after modifications.  In particular the output is incorrect when
>> a file is added between tag a and b, since the new file doesn't exist in the
>> previous tag.  See the script below as well as it's "incorrect" output.
>>
>> PWD=`pwd`
>> REPO=$PWD/repo
>> WC=$PWD/wc
>> svnadmin create $REPO
>> svn co file://$REPO $WC
>> svn mkdir $WC/trunk $WC/tags $WC/branches
>> echo "hello world" > $WC/trunk/one.txt
>> svn add $WC/trunk/one.txt
>> svn ci -m "Initial commit" $WC
>> svn up $WC
>> svn cp -m "create tag a" file://$REPO/trunk file://$REPO/tags/a
>> svn up $WC
>> echo "hi there" > $WC/trunk/two.txt
>> svn add $WC/trunk/two.txt
>> svn ci -m "Add two.txt" $WC
>> svn up $WC
>> svn cp -m "create tag b" file://$REPO/trunk file://$REPO/tags/b
>> svn up $WC
>> svn diff --summarize file://$REPO/tags/a file://$REPO/tags/b
>>
>> Checked out revision 0.
>> A         /home/svnadm/wc/trunk
>> A         /home/svnadm/wc/tags
>> A         /home/svnadm/wc/branches
>> A         /home/svnadm/wc/trunk/one.txt
>> Adding         wc/branches
>> Adding         wc/tags
>> Adding         wc/trunk
>> Adding         wc/trunk/one.txt
>> Transmitting file data .
>> Committed revision 1.
>> At revision 1.
>> Committed revision 2.
>> A    /home/svnadm/wc/tags/a
>> A    /home/svnadm/wc/tags/a/one.txt
>> Updated to revision 2.
>> A         /home/svnadm/wc/trunk/two.txt
>> Adding         wc/trunk/two.txt
>> Transmitting file data .
>> Committed revision 3.
>> At revision 3.
>> Committed revision 4.
>> A    /home/svnadm/wc/tags/b
>> A    /home/svnadm/wc/tags/b/one.txt
>> A    /home/svnadm/wc/tags/b/two.txt
>> Updated to revision 4.
>> A      file:///home/svnadm/repo/tags/a/two.txt
>>                                      ^
>>                                      ^
>>                                      This should be tag b, since two.txt
>> didn't even exist on tag a!
>>
>> Has this problem been reported yet?  Am I missing something?
>>
>> Thanks,
>> JJ
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-09-25 22:01:22 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.