3 #include "AppUtils.h"
\r
6 CGitDiff::CGitDiff(void)
\r
10 CGitDiff::~CGitDiff(void)
\r
13 int CGitDiff::Parser(git_revnum_t &rev)
\r
15 if(rev == GIT_REV_ZERO)
\r
17 if(rev.GetLength() > 40)
\r
20 cmd.Format(_T("git.exe rev-parse %s"),rev);
\r
22 if(!g_Git.Run(cmd,&output))
\r
24 //int start=output.Find(_T('\n'));
\r
25 rev=output.Left(40);
\r
30 int CGitDiff::DiffNull(CTGitPath *pPath, git_revnum_t &rev1)
\r
33 GetTempPath(temppath);
\r
38 if(rev1 != GIT_REV_ZERO )
\r
40 file1.Format(_T("%s%s_%s%s"),
\r
42 pPath->GetBaseFilename(),
\r
44 pPath->GetFileExtension());
\r
45 cmd.Format(_T("git.exe cat-file -p %s:%s"),rev1,pPath->GetGitPathString());
\r
46 g_Git.RunLogFile(cmd,file1);
\r
49 file1=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();
\r
52 CString tempfile=::GetTempFile();
\r
53 CStdioFile file(tempfile,CFile::modeReadWrite|CFile::modeCreate );
\r
54 //file.WriteString();
\r
57 CAppUtils::DiffFlags flags;
\r
58 CAppUtils::StartExtDiff(tempfile,file1,
\r
60 pPath->GetGitPathString()+_T(":")+rev1.Left(6)
\r
65 int CGitDiff::Diff(CTGitPath * pPath, git_revnum_t & rev1, git_revnum_t & rev2, bool blame, bool unified)
\r
68 GetTempPath(temppath);
\r
73 if(rev1 != GIT_REV_ZERO )
\r
75 file1.Format(_T("%s%s_%s%s"),
\r
77 pPath->GetBaseFilename(),
\r
79 pPath->GetFileExtension());
\r
80 cmd.Format(_T("git.exe cat-file -p %s:%s"),rev1,pPath->GetGitPathString());
\r
81 g_Git.RunLogFile(cmd,file1);
\r
84 file1=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();
\r
88 if(rev2 != GIT_REV_ZERO)
\r
91 file2.Format(_T("%s\\%s_%s%s"),
\r
93 pPath->GetBaseFilename(),
\r
95 pPath->GetFileExtension());
\r
96 cmd.Format(_T("git.exe cat-file -p %s:%s"),rev2,pPath->GetGitPathString());
\r
97 g_Git.RunLogFile(cmd,file2);
\r
100 file2=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();
\r
103 CAppUtils::DiffFlags flags;
\r
104 CAppUtils::StartExtDiff(file2,file1,
\r
105 pPath->GetGitPathString()+_T(":")+rev2.Left(6),
\r
106 pPath->GetGitPathString()+_T(":")+rev1.Left(6)
\r