]> source.dussan.org Git - jgit.git/commit
Include filekey file attribute when comparing FileSnapshots 48/141748/12
authorMatthias Sohn <matthias.sohn@sap.com>
Tue, 7 May 2019 21:55:54 +0000 (23:55 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Wed, 22 May 2019 06:13:56 +0000 (08:13 +0200)
commit91101414ae1378cd6a0a6d2673e0e66f4a858828
tree7b08b7924c4fee9fe8a6c2cb5d603b5e0043507c
parentb513b7747713a505e19e237ac2e7f8d9c699bc4d
Include filekey file attribute when comparing FileSnapshots

Due to finite filesystem timestamp resolution the last modified
timestamp of files cannot detect file changes which happened in the
immediate past (less than one filesystem timer tick ago).

Some filesystems expose unique file identifiers, e.g. inodes in Posix
filesystems which are named filekeys in Java's BasicFileAttributes. Use
them as another means to detect file modifications based on stat
information.

Running git gc on a repository yields a new packfile with the same id as
a packfile which existed before the gc if these packfiles contain the
same set of objects. The content of the old and the new packfile might
differ if a different PackConfig was used when writing the packfile.
Considering filekeys in FileSnapshot may help to detect such packfile
modifications.

Bug: 546891
Change-Id: I711a80328c55e1a31171d540880b8e80ec1fe095
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java