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
Received on 2008-09-22 21:10:16 CEST