浏览代码

Hard reset should not report conflict on untracked file

This problem surfaced since EGit Core ResetOperationTest is failing
since change I26806d21. JGit detected checkout conflict for untracked
files which never were tracked by the repository. 

"git reset --hard" in c git also doesn't remove such untracked files.

Change-Id: Icc8e1c548ecf6ed48bd2979c81eeb6f578d347bd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
tags/v0.11.1
Matthias Sohn 13 年前
父节点
当前提交
91af19de56

+ 5
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java 查看文件

@@ -128,11 +128,14 @@ public class DirCacheCheckoutTest extends ReadTreeTest {
RevCommit topic = git.commit().setMessage("topic-1").call();
assertIndex(mkmap("f", "f()\nside", "G/i", "i()"));

writeTrashFile("untracked", "untracked");

resetHard(master);
assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
resetHard(topic);
assertIndex(mkmap("f", "f()\nside", "G/i", "i()"));
assertWorkDir(mkmap("f", "f()\nside", "G/i", "i()"));
assertWorkDir(mkmap("f", "f()\nside", "G/i", "i()", "untracked",
"untracked"));

assertEquals(MergeStatus.CONFLICTING, git.merge().include(master)
.call().getMergeStatus());
@@ -143,7 +146,7 @@ public class DirCacheCheckoutTest extends ReadTreeTest {
resetHard(master);
assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
assertWorkDir(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h",
"h()"));
"h()", "untracked", "untracked"));
}

private DirCacheCheckout resetHard(RevCommit commit)

+ 2
- 6
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java 查看文件

@@ -351,12 +351,8 @@ public class DirCacheCheckout {
remove(i.getEntryPathString());
conflicts.remove(i.getEntryPathString());
} else {
// We are about to remove an untracked file. Check that
// it is ignored - otherwise that's an conflict
if (!f.isEntryIgnored())
conflicts.add(walk.getPathString());
else
remove(f.getEntryPathString());
// untracked file, neither contained in tree to merge
// nor in index
}
}
} else {

正在加载...
取消
保存