Browse Source

Merge "File.renameTo behaves differently on Unix and Windows"

stable-3.0
Matthias Sohn 12 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
edd47d10b9
  1. 16
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java

16
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java vendored

@ -1126,16 +1126,12 @@ public class DirCacheCheckout {
fs.setExecute(tmpFile, false); fs.setExecute(tmpFile, false);
} }
} }
if (!tmpFile.renameTo(f)) { try {
// tried to rename which failed. Let' delete the target file and try FileUtils.rename(tmpFile, f);
// again } catch (IOException e) {
FileUtils.delete(f, FileUtils.EMPTY_DIRECTORIES_ONLY throw new IOException(MessageFormat.format(
| FileUtils.RECURSIVE); JGitText.get().couldNotWriteFile, tmpFile.getPath(),
if (!tmpFile.renameTo(f)) { f.getPath()));
throw new IOException(MessageFormat.format(
JGitText.get().couldNotWriteFile, tmpFile.getPath(),
f.getPath()));
}
} }
entry.setLastModified(f.lastModified()); entry.setLastModified(f.lastModified());
if (opt.getAutoCRLF() != AutoCRLF.FALSE) if (opt.getAutoCRLF() != AutoCRLF.FALSE)

Loading…
Cancel
Save