[
https://issues.apache.org/jira/browse/SVN-4662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15691028#comment-15691028
]
Stefan Sperling commented on SVN-4662:
--------------------------------------
The index lines are ignored by 'svn patch'. Many diff tools do not produce such
lines, and 'svn patch' is intended to be generally compatible with every
conceivable unidiff.
Git has defined custom extensions to express some kinds of tree changes. These
are optional and currently not well supported.
Both of these problems already have open issues filed for them:
https://issues.apache.org/jira/browse/SVN-1056
https://issues.apache.org/jira/browse/SVN-4648
We would appreciate if you would raise such concerns on our users@ mailing list
before filing an issue here. It is a lot easier to field questions about bugs
there.
Please read http://subversion.apache.org/reporting-issues.html if you have not
already. Thanks.
> svn diff-revert-patch breaks moved files and folders
> ----------------------------------------------------
>
> Key: SVN-4662
> URL: https://issues.apache.org/jira/browse/SVN-4662
> Project: Subversion
> Issue Type: Bug
> Affects Versions: 1.9.4
> Environment: windows 7 x64, tortoisesvn command line tools
> Reporter: Andrey
>
> Steps to reproduce:
> 1. Create empty repository on local drive, for example, "repo"
> 2. Checkout a working copy: repo_root
> 3. Add directory structure:
> trunk/dir1/file1.txt
> trunk/dir1/file2.txt
> trunk/dir1/file3.txt
> trunk/dir2/
> (actually, the structure can be anything, does not much matter)
> 4. switch current directory into the trunk/
> 5. make a local change with file: dir1/file1.txt
> 6. make a move (remove all other files/folders not need to be moved):
> >svn move dir1/file1.txt dir2/file1.txt
> A dir2\file1.txt
> D dir1\file1.txt
> >svn move dir1/file2.txt dir2/file2_.txt
> A dir2\file2_.txt
> D dir1\file2.txt
> >svn remove dir1
> D dir1
> D dir1\file3.txt
> 7. make a patch:
> >svn diff . > trunk.patch
> 8. revert all back:
> >svn revert . -R
> Reverted 'dir1'
> Reverted 'dir1\file1.txt'
> Reverted 'dir1\file2.txt'
> Reverted 'dir1\file3.txt'
> Reverted 'dir2\file1.txt'
> Reverted 'dir2\file2_.txt'
> 9. apply the patch:
> >svn patch trunk.patch .
> D dir1\file1.txt
> D dir1\file2.txt
> D dir1\file3.txt
> D dir1
> Skipped missing target: 'dir2\file1.txt'
> Summary of conflicts:
> Skipped paths: 1
> As you see, entire set of files + 1 change has lost. Commit of this will be
> definitely broken and the consequenced revert is immenent.
> In mine case it was the TortoiseSvn where the implementation of move semantic
> in the patch was a slightly different and at least has saved some files from
> loss.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)