[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
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.