# HG changeset patch # User padraigob@netbeans.org # Date 1201699295 0 # Node ID 68540460eb28434bcf550dfc8c9eb790d4623449 # Parent 595402906bce1be1cdc3ad650d1a12dca3fe9bdb Issue 126062: Allow rename of directory to work even if it is does not contain managed files. diff -r 595402906bce -r 68540460eb28 mercurial/src/org/netbeans/modules/mercurial/MercurialInterceptor.java --- a/mercurial/src/org/netbeans/modules/mercurial/MercurialInterceptor.java Wed Jan 30 08:59:11 2008 +0000 +++ b/mercurial/src/org/netbeans/modules/mercurial/MercurialInterceptor.java Wed Jan 30 13:21:35 2008 +0000 @@ -235,6 +235,11 @@ public class MercurialInterceptor extend Runnable moveImpl = new Runnable() { public void run() { try { + if (srcFile.isDirectory()) { + srcFile.renameTo(dstFile); + HgCommand.doRenameAfter(root, srcFile, dstFile); + return; + } int status = hg.getFileStatusCache().getStatus(srcFile).getStatus(); if (status == FileInformation.STATUS_NOTVERSIONED_NEWLOCALLY) { srcFile.renameTo(dstFile); @@ -334,6 +339,7 @@ public class MercurialInterceptor extend HgProgressSupport supportCreate = new HgProgressSupport() { public void perform() { + Mercurial.LOG.log(Level.FINE, "fileChangedImpl(): File: {0}", file); // NOI18N cache.refresh(file, FileStatusCache.REPOSITORY_STATUS_UNKNOWN); } }; diff -r 595402906bce -r 68540460eb28 mercurial/src/org/netbeans/modules/mercurial/util/HgCommand.java --- a/mercurial/src/org/netbeans/modules/mercurial/util/HgCommand.java Wed Jan 30 08:59:11 2008 +0000 +++ b/mercurial/src/org/netbeans/modules/mercurial/util/HgCommand.java Wed Jan 30 13:21:35 2008 +0000 @@ -231,6 +231,7 @@ public class HgCommand { private static final String HG_CANNOT_RUN_ERR = "Cannot run program"; // NOI18N private static final String HG_ABORT_ERR = "abort: "; // NOI18N private static final String HG_ABORT_PUSH_ERR = "abort: push creates new remote branches!"; // NOI18N + private static final String HG_ABORT_NO_FILES_TO_COPY_ERR = "abort: no files to copy"; // NOI18N private static final String HG_NO_CHANGE_NEEDED_ERR = "no change needed"; // NOI18N private static final String HG_NO_ROLLBACK_ERR = "no rollback information available"; // NOI18N @@ -1281,7 +1282,9 @@ public class HgCommand { List list = exec(command); if (!list.isEmpty() && isErrorAbort(list.get(list.size() -1))) { - handleError(command, list, NbBundle.getMessage(HgCommand.class, "MSG_RENAME_FAILED")); + if (!bAfter || !isErrorAbortNoFilesToCopy(list.get(list.size() -1))) { + handleError(command, list, NbBundle.getMessage(HgCommand.class, "MSG_RENAME_FAILED")); + } } } @@ -2382,6 +2385,10 @@ public class HgCommand { return msg.indexOf(HG_ABORT_PUSH_ERR) > -1; // NOI18N } + public static boolean isErrorAbortNoFilesToCopy(String msg) { + return msg.indexOf(HG_ABORT_NO_FILES_TO_COPY_ERR) > -1; // NOI18N + } + private static boolean isErrorNoChangeNeeded(String msg) { return msg.indexOf(HG_NO_CHANGE_NEEDED_ERR) > -1; // NOI18N }