Merge "Untracked files should not be included in stash"

This commit is contained in:
Robin Rosenberg 2013-04-19 07:36:29 -04:00 committed by Gerrit Code Review @ Eclipse.org
commit f37e25e2c3
2 changed files with 12 additions and 3 deletions

View File

@ -88,6 +88,7 @@ public void setUp() throws Exception {
git.add().addFilepattern("file.txt").call();
head = git.commit().setMessage("add file").call();
assertNotNull(head);
writeTrashFile("untracked.txt", "content");
}
/**

View File

@ -241,6 +241,7 @@ public RevCommit call() throws GitAPIException {
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 RevCommit call() throws GitAPIException {
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 void apply(DirCacheEntry ent) {
}
});
}
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());