mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-96041 Subversion: on Undo unversioned file move to unversioned package file is deleted
(cherry-picked from c3f5c85)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user