From f2d04dc72599b2a24ac955e8f823babdf0ad00cb Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Mon, 27 Aug 2012 14:52:33 +0200 Subject: [PATCH] TGitCache: Correctly mark parent as modified if a versioned subdirectory is deleted in filesystem Signed-off-by: Sven Strickroth --- src/TGitCache/CachedDirectory.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/TGitCache/CachedDirectory.cpp b/src/TGitCache/CachedDirectory.cpp index 0bd6556a3..8737b9bbb 100644 --- a/src/TGitCache/CachedDirectory.cpp +++ b/src/TGitCache/CachedDirectory.cpp @@ -449,6 +449,13 @@ int CCachedDirectory::EnumFiles(CTGitPath *path , bool IsFull) m_mostImportantFileStatus = git_wc_status_none; pStatus->EnumDirStatus(sProjectRoot, sSubPath, &status, IsFull, false, true, GetStatusCallback,this); + // folders must not be displayed as added or deleted only as modified + if (status == git_wc_status_deleted || status == git_wc_status_added) + status == git_wc_status_modified; + // this is necessary, even if the m_mostImportantFileStatus is set in GetStatusCallback, + // however, if it's missing, deleted subdirectories won't mark parents as modified + m_mostImportantFileStatus = GitStatus::GetMoreImportant(m_mostImportantFileStatus, status); + if (sSubPath.IsEmpty()) { // request a shell notification for working trees which have not been examined before -- 2.11.4.GIT