You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@subversion.apache.org by "Ivan Zhakov (JIRA)" <ji...@apache.org> on 2015/10/17 15:26:05 UTC

[jira] [Updated] (SVN-4464) diff repo to wc diff against a copy with --show-copies-as-adds is busted

     [ https://issues.apache.org/jira/browse/SVN-4464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Zhakov updated SVN-4464:
-----------------------------
    Description: 
This happens on 1.8.x and trunk (1.7 has other issues which is how I ended up finding this)
{noformat}
svnadmin create repo
svn co file://$PWD/repo wc
cd wc
echo foo > foo
svn add foo
svn ci -mm
svn up
svn cp foo bar
svn diff ^/foo bar --show-copies-as-adds
{noformat}


Which produces:
{noformat}
Index: bar
===================================================================
--- bar	(file:///Users/breser/double-diff/2/repo/foo)	(revision 1)
+++ bar	(.../bar)	(working copy)
@@ -1 +0,0 @@
-foo
Index: bar
===================================================================
--- bar	(file:///Users/breser/double-diff/2/repo/foo)	(revision 0)
+++ bar	(.../bar)	(working copy)
@@ -0,0 +1 @@
+foo
{noformat}

Yes really two diffs for the same file.  Same behavior happens with directories.
{noformat}
svn mkdir a
echo b > a/b
svn add a/b
svn ci -mm
svn up
svn cp a aa
svn diff ^/a aa --show-copies-as-adds
{noformat}

{noformat}
Index: aa/b
===================================================================
--- aa/b	(file:///Users/breser/double-diff/2/repo/a)	(revision 2)
+++ aa/b	(.../aa)	(working copy)
@@ -1 +0,0 @@
-b
Index: aa/b
===================================================================
--- aa/b	(file:///Users/breser/double-diff/2/repo/a)	(revision 0)
+++ aa/b	(.../aa)	(working copy)
@@ -0,0 +1 @@
+b
{noformat}

Finally for some more fun you can actually segfault the client like so:
{noformat}
svn rm bar
svn ci -mm
svn cp foo bar
svn diff ^/foo bar
{noformat}

This might be related but I'm not sure yet.

Doing the a wc to wc diff e.g. {{svn diff foo bar --show-copies-as-adds}} works as expected in all the above cases so if someone has ran into this issue they can do that.


  was:
{noformat:nopanel=true}
This happens on 1.8.x and trunk (1.7 has other issues which is how I ended up
finding this)

[[[
svnadmin create repo
svn co file://$PWD/repo wc
cd wc
echo foo > foo
svn add foo
svn ci -mm
svn up
svn cp foo bar
svn diff ^/foo bar --show-copies-as-adds
]]]

Which produces:
[[[
Index: bar
===================================================================
--- bar	(file:///Users/breser/double-diff/2/repo/foo)	(revision 1)
+++ bar	(.../bar)	(working copy)
@@ -1 +0,0 @@
-foo
Index: bar
===================================================================
--- bar	(file:///Users/breser/double-diff/2/repo/foo)	(revision 0)
+++ bar	(.../bar)	(working copy)
@@ -0,0 +1 @@
+foo
]]]

Yes really two diffs for the same file.  Same behavior happens with directories.

[[[
svn mkdir a
echo b > a/b
svn add a/b
svn ci -mm
svn up
svn cp a aa
svn diff ^/a aa --show-copies-as-adds
]]]

[[[
Index: aa/b
===================================================================
--- aa/b	(file:///Users/breser/double-diff/2/repo/a)	(revision 2)
+++ aa/b	(.../aa)	(working copy)
@@ -1 +0,0 @@
-b
Index: aa/b
===================================================================
--- aa/b	(file:///Users/breser/double-diff/2/repo/a)	(revision 0)
+++ aa/b	(.../aa)	(working copy)
@@ -0,0 +1 @@
+b
]]]

Finally for some more fun you can actually segfault the client like so:
[[[
svn rm bar
svn ci -mm
svn cp foo bar
svn diff ^/foo bar
]]]

This might be related but I'm not sure yet.

Doing the a wc to wc diff e.g. `svn diff foo bar --show-copies-as-adds` works as
expected in all the above cases so if someone has ran into this issue they can
do that.
{noformat}


> diff repo to wc diff against a copy with --show-copies-as-adds is busted
> ------------------------------------------------------------------------
>
>                 Key: SVN-4464
>                 URL: https://issues.apache.org/jira/browse/SVN-4464
>             Project: Subversion
>          Issue Type: Bug
>          Components: libsvn_client
>    Affects Versions: 1.8.x
>            Reporter: Ben Reser
>            Assignee: Ben Reser
>             Fix For: ---
>
>
> This happens on 1.8.x and trunk (1.7 has other issues which is how I ended up finding this)
> {noformat}
> svnadmin create repo
> svn co file://$PWD/repo wc
> cd wc
> echo foo > foo
> svn add foo
> svn ci -mm
> svn up
> svn cp foo bar
> svn diff ^/foo bar --show-copies-as-adds
> {noformat}
> Which produces:
> {noformat}
> Index: bar
> ===================================================================
> --- bar	(file:///Users/breser/double-diff/2/repo/foo)	(revision 1)
> +++ bar	(.../bar)	(working copy)
> @@ -1 +0,0 @@
> -foo
> Index: bar
> ===================================================================
> --- bar	(file:///Users/breser/double-diff/2/repo/foo)	(revision 0)
> +++ bar	(.../bar)	(working copy)
> @@ -0,0 +1 @@
> +foo
> {noformat}
> Yes really two diffs for the same file.  Same behavior happens with directories.
> {noformat}
> svn mkdir a
> echo b > a/b
> svn add a/b
> svn ci -mm
> svn up
> svn cp a aa
> svn diff ^/a aa --show-copies-as-adds
> {noformat}
> {noformat}
> Index: aa/b
> ===================================================================
> --- aa/b	(file:///Users/breser/double-diff/2/repo/a)	(revision 2)
> +++ aa/b	(.../aa)	(working copy)
> @@ -1 +0,0 @@
> -b
> Index: aa/b
> ===================================================================
> --- aa/b	(file:///Users/breser/double-diff/2/repo/a)	(revision 0)
> +++ aa/b	(.../aa)	(working copy)
> @@ -0,0 +1 @@
> +b
> {noformat}
> Finally for some more fun you can actually segfault the client like so:
> {noformat}
> svn rm bar
> svn ci -mm
> svn cp foo bar
> svn diff ^/foo bar
> {noformat}
> This might be related but I'm not sure yet.
> Doing the a wc to wc diff e.g. {{svn diff foo bar --show-copies-as-adds}} works as expected in all the above cases so if someone has ran into this issue they can do that.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)