OSDN Git Service

Fixed issue #179: Log dialog lacks information about changed files
authorFrank Li <lznuaa@gmail.com>
Sat, 24 Oct 2009 14:47:37 +0000 (22:47 +0800)
committerFrank Li <lznuaa@gmail.com>
Sat, 24 Oct 2009 14:47:37 +0000 (22:47 +0800)
Need add --full-diff option

Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Git/Git.cpp
src/Git/Git.h
src/Git/GitRev.cpp
src/TortoiseProc/GitLogListBase.cpp
src/TortoiseProc/gitlogcache.h

index 6e4355a..591878c 100644 (file)
@@ -523,6 +523,9 @@ int CGit::GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path, int count,
        if(mask& CGit::LOG_INFO_SHOW_MERGEDFILE)\r
                param += _T(" -c ");\r
 \r
+       if(mask& CGit::LOG_INFO_FULL_DIFF)\r
+               param += _T(" --full-diff ");\r
+\r
        if(from != NULL && to != NULL)\r
        {\r
                CString range;\r
index 0f9074d..afe98ac 100644 (file)
@@ -93,7 +93,8 @@ public:
                LOG_INFO_FIRST_PARENT = 0x200,\r
                LOG_INFO_NO_MERGE = 0x400,\r
                LOG_INFO_FOLLOW = 0x800,\r
-               LOG_INFO_SHOW_MERGEDFILE=0x1000\r
+               LOG_INFO_SHOW_MERGEDFILE=0x1000,\r
+               LOG_INFO_FULL_DIFF = 0x2000,\r
        }LOG_INFO_MASK;\r
 \r
        int GetRemoteList(STRING_VECTOR &list);\r
@@ -103,9 +104,9 @@ public:
        \r
        //hash is empty means all. -1 means all\r
 \r
-       int GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME|LOG_INFO_SHOW_MERGEDFILE,\r
+       int GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_FULL_DIFF|LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME|LOG_INFO_SHOW_MERGEDFILE,\r
                                                                CString *from=NULL,CString *to=NULL);\r
-       int GetLog(BYTE_VECTOR& logOut,CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME|LOG_INFO_SHOW_MERGEDFILE,\r
+       int GetLog(BYTE_VECTOR& logOut,CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_FULL_DIFF|LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME|LOG_INFO_SHOW_MERGEDFILE,\r
                                                                CString *from=NULL,CString *to=NULL);\r
 \r
        BOOL EnumFiles(const TCHAR *pszProjectPath, const TCHAR *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData);\r
index 2155942..f8e741b 100644 (file)
@@ -255,7 +255,7 @@ int GitRev::SafeFetchFullInfo(CGit *git)
                BYTE_VECTOR onelog;\r
                TCHAR oldmark=this->m_Mark;\r
        \r
-               git->GetLog(onelog,m_CommitHash,NULL,1,CGit::LOG_INFO_STAT|CGit::LOG_INFO_FILESTATE|CGit::LOG_INFO_DETECT_COPYRENAME|CGit::LOG_INFO_SHOW_MERGEDFILE);\r
+               git->GetLog(onelog,m_CommitHash,NULL,1,CGit::LOG_INFO_FULL_DIFF|CGit::LOG_INFO_STAT|CGit::LOG_INFO_FILESTATE|CGit::LOG_INFO_DETECT_COPYRENAME|CGit::LOG_INFO_SHOW_MERGEDFILE);\r
                CString oldhash=m_CommitHash;\r
                GIT_REV_LIST oldlist=this->m_ParentHash;\r
                ParserFromLog(onelog);\r
index af05f00..76e4ddd 100644 (file)
@@ -1963,6 +1963,7 @@ void CGitLogListBase::FetchFullLogInfo(CString &from, CString &to)
 {\r
        CGitCall_FetchFullLogInfo fetcher(this);\r
        int mask=\r
+               CGit::LOG_INFO_FULL_DIFF|\r
                CGit::LOG_INFO_STAT|\r
                CGit::LOG_INFO_FILESTATE|\r
                CGit::LOG_INFO_DETECT_COPYRENAME|\r
index a3f8289..84f055c 100644 (file)
@@ -8,7 +8,7 @@
 #define LOG_DATA_MAGIC         0x99aa00FF\r
 #define LOG_DATA_ITEM_MAGIC 0x0F8899CC\r
 #define LOG_DATA_FILE_MAGIC 0x19999FFF\r
-#define LOG_INDEX_VERSION   0x5 \r
+#define LOG_INDEX_VERSION   0x6 \r
 \r
 struct SLogCacheIndexHeader \r
 {\r