Procházet zdrojové kódy

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 před 13 roky
rodič
revize
91af19de56

+ 5
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java Zobrazit soubor

@@ -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 Zobrazit soubor

@@ -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 {

Načítá se…
Zrušit
Uložit