diff options
author | Robin Rosenberg <robin.rosenberg@dewire.com> | 2013-04-18 23:19:15 +0200 |
---|---|---|
committer | Robin Rosenberg <robin.rosenberg@dewire.com> | 2013-04-18 23:19:15 +0200 |
commit | 7a42b7fb95ecd2c132b2588e5ede0f1251772b30 (patch) | |
tree | b9bacd100457cc6e97fbbce59ba86b383f1ed2e6 /org.eclipse.jgit | |
parent | eaa52b12f542e1d52c277989533a3c1bea3cc02e (diff) | |
download | jgit-7a42b7fb95ecd2c132b2588e5ede0f1251772b30.tar.gz jgit-7a42b7fb95ecd2c132b2588e5ede0f1251772b30.zip |
Untracked files should not be included in stash
The previous code stashed untracked files and left them
in the work tree.
Bug: 403282
Change-Id: I71727addb2b55fb8e409cae2b6af8138b1ff7ef1
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/StashCreateCommand.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/StashCreateCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/StashCreateCommand.java index ba56c1a712..fc21b919b6 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/StashCreateCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/StashCreateCommand.java @@ -241,6 +241,7 @@ public class StashCreateCommand extends GitCommand<RevCommit> { MutableObjectId id = new MutableObjectId(); List<PathEdit> wtEdits = new ArrayList<PathEdit>(); List<String> wtDeletes = new ArrayList<String>(); + boolean hasChanges = false; do { AbstractTreeIterator headIter = treeWalk.getTree(0, AbstractTreeIterator.class); @@ -254,9 +255,12 @@ public class StashCreateCommand extends GitCommand<RevCommit> { new UnmergedPathException( indexIter.getDirCacheEntry())); if (wtIter != null) { - if (indexIter != null && wtIter.idEqual(indexIter) - || headIter != null - && wtIter.idEqual(headIter)) + if (indexIter == null && headIter == null) + continue; + hasChanges = true; + if (indexIter != null && wtIter.idEqual(indexIter)) + continue; + if (headIter != null && wtIter.idEqual(headIter)) continue; treeWalk.getObjectId(id, 0); final DirCacheEntry entry = new DirCacheEntry( @@ -278,10 +282,14 @@ public class StashCreateCommand extends GitCommand<RevCommit> { } }); } + hasChanges = true; if (wtIter == null && headIter != null) wtDeletes.add(treeWalk.getPathString()); } while (treeWalk.next()); + if (!hasChanges) + return null; + String branch = Repository.shortenRefName(head.getTarget() .getName()); |