]> source.dussan.org Git - jgit.git/commit
Fix status in index entries after checkout of paths 96/4296/3
authorChristian Halstrick <christian.halstrick@sap.com>
Tue, 27 Sep 2011 16:43:14 +0000 (18:43 +0200)
committerChristian Halstrick <christian.halstrick@sap.com>
Wed, 28 Sep 2011 10:34:32 +0000 (12:34 +0200)
commit1230d353d8583acfd0df5b3ecdd6aeb04817c692
tree0b17f00da633eefcbfe07703a2a8df388bf0cf33
parentd306c35cea5ee35e04f8cd5e27ed2b70490d8458
Fix status in index entries after checkout of paths

The checkout command was producing an inconsistent state of the index
which even confuses native git. The content sha1 of the touched index
entries was updated, but the length and the filemode was not updated.
Later in coding the index entries got automatically corrected (through
Dircache.checkoutEntry()) but the correction was after persisting the
index to disk. So, the correction was lost and we ended up with an index
where length and sha1 don't fit together.
A similar problem is fixed with "lastModified" of DircacheEntry. When
checking out a path without specifying an explicit commit (you want to
checkout what's in the index) the index was not updated regarding
lastModified. Readers of the index will think the checked-out
file is dirty because the file has a younger lastmodified then what's
in the index.

Change-Id: Ifc6d806fbf96f53c94d9ded0befcc932d943aa04
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
Signed-off-by: Jens Baumgart <jens.baumgart@sap.com>
Bug: 355205
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PathCheckoutCommandTest.java
org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java