Don't check lastModified, length on folders for submodules
The metadata comparison of submodules is not reliable because of the last modified timestamp and directory length. Bug: 498759 Change-Id: If5db69ef3868e475ac477d3e8a7750b268799b0c
This commit is contained in:
parent
b8260b5e79
commit
da9eef85e7
|
@ -268,7 +268,9 @@ public byte[] idBuffer() {
|
|||
DirCacheIterator.class);
|
||||
if (i != null) {
|
||||
DirCacheEntry ent = i.getDirCacheEntry();
|
||||
if (ent != null && compareMetadata(ent) == MetadataDiff.EQUAL) {
|
||||
if (ent != null && compareMetadata(ent) == MetadataDiff.EQUAL
|
||||
&& ((ent.getFileMode().getBits()
|
||||
& FileMode.TYPE_MASK) != FileMode.TYPE_GITLINK)) {
|
||||
contentIdOffset = i.idOffset();
|
||||
contentIdFromPtr = ptr;
|
||||
return contentId = i.idBuffer();
|
||||
|
@ -843,10 +845,15 @@ public MetadataDiff compareMetadata(DirCacheEntry entry) {
|
|||
if (entry.isUpdateNeeded())
|
||||
return MetadataDiff.DIFFER_BY_METADATA;
|
||||
|
||||
if (!entry.isSmudged() && entry.getLength() != (int) getEntryLength())
|
||||
if (isModeDifferent(entry.getRawMode()))
|
||||
return MetadataDiff.DIFFER_BY_METADATA;
|
||||
|
||||
if (isModeDifferent(entry.getRawMode()))
|
||||
// Don't check for length or lastmodified on folders
|
||||
int type = mode & FileMode.TYPE_MASK;
|
||||
if (type == FileMode.TYPE_TREE || type == FileMode.TYPE_GITLINK)
|
||||
return MetadataDiff.EQUAL;
|
||||
|
||||
if (!entry.isSmudged() && entry.getLength() != (int) getEntryLength())
|
||||
return MetadataDiff.DIFFER_BY_METADATA;
|
||||
|
||||
// Git under windows only stores seconds so we round the timestamp
|
||||
|
@ -915,6 +922,9 @@ public boolean isModified(DirCacheEntry entry, boolean forceContentCheck,
|
|||
// Lets do a content check
|
||||
return contentCheck(entry, reader);
|
||||
case EQUAL:
|
||||
if (mode == FileMode.SYMLINK.getBits()) {
|
||||
return contentCheck(entry, reader);
|
||||
}
|
||||
return false;
|
||||
case DIFFER_BY_METADATA:
|
||||
if (mode == FileMode.SYMLINK.getBits())
|
||||
|
|
Loading…
Reference in New Issue