IDEA-96041 Subversion: on Undo unversioned file move to unversioned package file is deleted

(cherry-picked from c3f5c85)
This commit is contained in:
irengrig
2012-12-13 15:07:30 +04:00
parent 83d63714d2
commit c5c6320a4d
2 changed files with 36 additions and 1 deletions
@@ -249,9 +249,16 @@ public class SvnFileSystemListener extends CommandAdapter implements LocalFileOp
SVNStatus srcStatus = getFileStatus(src);
final File toDir = dst.getParentFile();
SVNStatus dstStatus = getFileStatus(toDir);
if ((srcStatus == null || SvnVcs.svnStatusIsUnversioned(srcStatus)) && (dstStatus == null || SvnVcs.svnStatusIsUnversioned(dstStatus))) {
final boolean srcUnversioned = srcStatus == null || SvnVcs.svnStatusIsUnversioned(srcStatus);
if (srcUnversioned && (dstStatus == null || SvnVcs.svnStatusIsUnversioned(dstStatus))) {
return false;
}
if (srcUnversioned) {
SVNStatus dstWasStatus = getFileStatus(dst);
if (dstWasStatus == null || SvnVcs.svnStatusIsUnversioned(dstWasStatus)) {
return false;
}
}
if (for17move(vcs, src, dst, isUndo, srcStatus)) return false;
} else {
if (for16move(vcs, src, dst, isUndo)) return false;
@@ -398,6 +398,34 @@ public class SvnRenameTest extends Svn17TestCase {
verifySorted(runSvn("status"), "? unversioned");
}
@Test
public void testUndoMoveUnversionedToUnversioned() throws Exception {
enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD);
disableSilentOperation(VcsConfiguration.StandardConfirmation.ADD);
final VirtualFile file = createFileInCommand(myWorkingCopyDir, "a.txt", "A");
verifySorted(runSvn("status"), "? a.txt");
final VirtualFile unversioned = createDirInCommand(myWorkingCopyDir, "unversioned");
moveFileInCommand(file, unversioned);
verifySorted(runSvn("status"), "? unversioned");
undo();
verifySorted(runSvn("status"), "? a.txt", "? unversioned");
}
@Test
public void testUndoMoveAddedToUnversioned() throws Exception {
enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD);
final VirtualFile file = createFileInCommand(myWorkingCopyDir, "a.txt", "A");
verifySorted(runSvn("status"), "A a.txt");
disableSilentOperation(VcsConfiguration.StandardConfirmation.ADD);
final VirtualFile unversioned = createDirInCommand(myWorkingCopyDir, "unversioned");
moveFileInCommand(file, unversioned);
verifySorted(runSvn("status"), "? unversioned");
undo();
verifySorted(runSvn("status"), "? a.txt", "? unversioned");
}
@Test
public void testUndoMoveToUnversionedCommitted() throws Exception {
enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD);