X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=src%2FGit%2FTGitPath.cpp;h=b86b56b38d9c53af6a42d6434c23bedb765236d2;hb=a9f661ad9202d0c860a6cfd8f995bd96721a6b25;hp=af6a4ab52c5554fcc7ca8fb74bac8732c41e7c31;hpb=5c423fd2c3a69c9f6775fe321f747c2299764a19;p=tortoisegit%2FTortoiseGitJp.git diff --git a/src/Git/TGitPath.cpp b/src/Git/TGitPath.cpp index af6a4ab..b86b56b 100644 --- a/src/Git/TGitPath.cpp +++ b/src/Git/TGitPath.cpp @@ -102,6 +102,9 @@ int CTGitPath::ParserAction(BYTE action) m_Action|= LOGACTIONS_DELETED; if(action == 'H') m_Action|= LOGACTIONS_CACHE; + if(action == 'C' ) + m_Action|= LOGACTIONS_COPY; + return m_Action; } void CTGitPath::SetFromGit(const char* pPath) @@ -729,11 +732,28 @@ bool CTGitPath::HasAdminDir() const return m_bHasAdminDir; EnsureBackslashPathSet(); - m_bHasAdminDir = g_GitAdminDir.HasAdminDir(m_sBackslashPath, IsDirectory()); + m_bHasAdminDir = g_GitAdminDir.HasAdminDir(m_sBackslashPath, IsDirectory(), &m_sProjectRoot); m_bHasAdminDirKnown = true; return m_bHasAdminDir; } +bool CTGitPath::HasAdminDir(CString *ProjectTopDir) const +{ + if (m_bHasAdminDirKnown) + { + if (ProjectTopDir) + *ProjectTopDir = m_sProjectRoot; + return m_bHasAdminDir; + } + + EnsureBackslashPathSet(); + m_bHasAdminDir = g_GitAdminDir.HasAdminDir(m_sBackslashPath, IsDirectory(), &m_sProjectRoot); + m_bHasAdminDirKnown = true; + if (ProjectTopDir) + *ProjectTopDir = m_sProjectRoot; + return m_bHasAdminDir; +} + bool CTGitPath::IsAdminDir() const { if (m_bIsAdminDirKnown) @@ -908,6 +928,7 @@ int CTGitPathList::FillUnRev(int action,CTGitPathList *list) CString one; while( pos>=0 && pos