OSDN Git Service

Git Blame Add context menu Action
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / GitDiff.cpp
index 8c18684..fdb9f2a 100644 (file)
@@ -27,6 +27,40 @@ int CGitDiff::Parser(git_revnum_t &rev)
        }\r
        return 0;\r
 }\r
+int CGitDiff::DiffNull(CTGitPath *pPath, git_revnum_t &rev1)\r
+{\r
+       CString temppath;\r
+       GetTempPath(temppath);\r
+       Parser(rev1);\r
+       CString file1;\r
+       CString nullfile;\r
+       CString cmd;\r
+       if(rev1 != GIT_REV_ZERO )\r
+       {\r
+               file1.Format(_T("%s%s_%s%s"),\r
+                               temppath,                                               \r
+                               pPath->GetBaseFilename(),\r
+                               rev1.Left(6),\r
+                               pPath->GetFileExtension());\r
+               cmd.Format(_T("git.exe cat-file -p %s:%s"),rev1,pPath->GetGitPathString());\r
+                               g_Git.RunLogFile(cmd,file1);\r
+       }else\r
+       {\r
+               file1=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();\r
+       }\r
+\r
+       CString tempfile=::GetTempFile();\r
+       CStdioFile file(tempfile,CFile::modeReadWrite|CFile::modeCreate );\r
+       //file.WriteString();\r
+       file.Close();\r
+       \r
+       CAppUtils::DiffFlags flags;\r
+       CAppUtils::StartExtDiff(tempfile,file1,\r
+                                                       _T("NULL"),\r
+                                                       pPath->GetGitPathString()+_T(":")+rev1.Left(6)\r
+                                                       ,flags);\r
+       return 0;\r
+}\r
 \r
 int CGitDiff::Diff(CTGitPath * pPath, git_revnum_t & rev1, git_revnum_t & rev2, bool blame, bool unified)\r
 {\r
@@ -67,7 +101,7 @@ int CGitDiff::Diff(CTGitPath * pPath, git_revnum_t & rev1, git_revnum_t & rev2,
        }\r
        \r
        CAppUtils::DiffFlags flags;\r
-       CAppUtils::StartExtDiff(file1,file2,\r
+       CAppUtils::StartExtDiff(file2,file1,\r
                                                        pPath->GetGitPathString()+_T(":")+rev2.Left(6),\r
                                                        pPath->GetGitPathString()+_T(":")+rev1.Left(6)\r
                                                        ,flags);\r