[ https://issues.apache.org/jira/browse/SVN-4662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15691092#comment-15691092 ]
Stefan Sperling commented on SVN-4662: -------------------------------------- Andrey, in case it wasn't clear: I entirely agree that this is a problem and that 'svn patch' should be fixed to support tree changes. I am OK with requiring an option such as --git for this at least in the initial implementation, mostly because that approach is already implemented about half-way. But this is an implementation detail; the general problem stands and is, to the best of my knowledge, recognized as a problem by the community. > 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)