Переглянути джерело

Merge pull request #11422 from vbatts/vbatts-overlay_dir_mtime_changes

pkg/archive: ignore mtime changes on directories
Jessie Frazelle 10 роки тому
батько
коміт
9d00d8137f
2 змінених файлів з 2 додано та 3 видалено
  1. 2 2
      pkg/archive/changes.go
  2. 0 1
      pkg/archive/changes_test.go

+ 2 - 2
pkg/archive/changes.go

@@ -220,8 +220,8 @@ func (info *FileInfo) addChanges(oldInfo *FileInfo, changes *[]Change) {
 				oldStat.Gid() != newStat.Gid() ||
 				oldStat.Gid() != newStat.Gid() ||
 				oldStat.Rdev() != newStat.Rdev() ||
 				oldStat.Rdev() != newStat.Rdev() ||
 				// Don't look at size for dirs, its not a good measure of change
 				// Don't look at size for dirs, its not a good measure of change
-				(oldStat.Size() != newStat.Size() && oldStat.Mode()&syscall.S_IFDIR != syscall.S_IFDIR) ||
-				!sameFsTimeSpec(oldStat.Mtim(), newStat.Mtim()) ||
+				(oldStat.Mode()&syscall.S_IFDIR != syscall.S_IFDIR &&
+					(!sameFsTimeSpec(oldStat.Mtim(), newStat.Mtim()) || (oldStat.Size() != newStat.Size()))) ||
 				bytes.Compare(oldChild.capability, newChild.capability) != 0 {
 				bytes.Compare(oldChild.capability, newChild.capability) != 0 {
 				change := Change{
 				change := Change{
 					Path: newChild.path(),
 					Path: newChild.path(),

+ 0 - 1
pkg/archive/changes_test.go

@@ -218,7 +218,6 @@ func TestChangesDirsMutated(t *testing.T) {
 	expectedChanges := []Change{
 	expectedChanges := []Change{
 		{"/dir1", ChangeDelete},
 		{"/dir1", ChangeDelete},
 		{"/dir2", ChangeModify},
 		{"/dir2", ChangeModify},
-		{"/dir3", ChangeModify},
 		{"/dirnew", ChangeAdd},
 		{"/dirnew", ChangeAdd},
 		{"/file1", ChangeDelete},
 		{"/file1", ChangeDelete},
 		{"/file2", ChangeModify},
 		{"/file2", ChangeModify},