diff options
author | Jevgeni Zelenkov <jevgeni.zelenkov@gmail.com> | 2012-08-06 08:59:28 +0200 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2012-08-06 08:59:28 +0200 |
commit | 803debd7be76a2f18624254409228433c9c329f2 (patch) | |
tree | d44f7c61e69fd73d7301c6c56cd751d448b6bfb8 /org.eclipse.jgit | |
parent | d08b35532a2403b0f1b2dbb68436cfa68d2b924a (diff) | |
download | jgit-803debd7be76a2f18624254409228433c9c329f2.tar.gz jgit-803debd7be76a2f18624254409228433c9c329f2.zip |
Ensure a directory exists before trying to create/merge a file into it.
Since git doesn't keep track of empty directories, they should be
created first. Test case included demonstrates that using
StashApplyCommand(). Bugfix is applied to the DirCacheCheckout class,
because StashApplyCommand() uses it internally to apply a stash.
Change-Id: Iac259229ef919f9e92e7e51a671d877172bb88a8
Signed-off-by: Jevgeni Zelenkov <jevgeni.zelenkov@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java index f46869e421..6e417b33b3 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java @@ -962,6 +962,7 @@ public class DirCacheCheckout { DirCacheEntry entry, ObjectReader or) throws IOException { ObjectLoader ol = or.open(entry.getObjectId()); File parentDir = f.getParentFile(); + parentDir.mkdirs(); File tmpFile = File.createTempFile("._" + f.getName(), null, parentDir); WorkingTreeOptions opt = repo.getConfig().get(WorkingTreeOptions.KEY); FileOutputStream rawChannel = new FileOutputStream(tmpFile); |