]> source.dussan.org Git - jgit.git/commit
Make sure to overwrite files when "reset --hard" detects conflicts 99/57799/6
authorChristian Halstrick <christian.halstrick@sap.com>
Fri, 9 Oct 2015 14:14:10 +0000 (16:14 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Wed, 18 May 2016 11:29:02 +0000 (13:29 +0200)
commit0afd62efa868791895eb1f563bb08f6511fe9a79
tree9ff0745ce51c5e8d1e171cbae526a848d1e73e30
parente81592e07692284aab607e959096030027067695
Make sure to overwrite files when "reset --hard" detects conflicts

When performing a "reset --hard" a checkout is done. The pathes are
checked for potential checkout conflicts. But in the end for all
remaining conflicts these files are simply deleted from the working
tree. That's not the right strategy to handle checkout conflicts during
"reset --hard". Instead for every conflict we should simply checkout the
merge commit's content.

This is different from native gits behavior which reports errors when
during a "checkout --hard" a file shows up where a folder was expected.

  "warning: unable to unlink d/c.txt: Not a directory"

Why it is like that in native git was asked in
http://permalink.gmane.org/gmane.comp.version-control.git/279482. Unless
it is explained why native git why this error is reported JGit should
overwrite the files.

Bug: 474842
Change-Id: I08e23822a577aaf22120c5137eb169b6bd08447b
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java