3 #include "AppUtils.h"
\r
5 #include "resource.h"
\r
7 CGitDiff::CGitDiff(void)
\r
11 CGitDiff::~CGitDiff(void)
\r
14 int CGitDiff::Parser(git_revnum_t &rev)
\r
16 if(rev == GIT_REV_ZERO)
\r
18 if(rev.GetLength() > 40)
\r
21 cmd.Format(_T("git.exe rev-parse %s"),rev);
\r
23 if(!g_Git.Run(cmd,&output,CP_UTF8))
\r
25 //int start=output.Find(_T('\n'));
\r
26 rev=output.Left(40);
\r
31 int CGitDiff::DiffNull(CTGitPath *pPath, git_revnum_t &rev1,bool bIsAdd)
\r
34 GetTempPath(temppath);
\r
39 if(rev1 != GIT_REV_ZERO )
\r
41 file1.Format(_T("%s%s_%s%s"),
\r
43 pPath->GetBaseFilename(),
\r
45 pPath->GetFileExtension());
\r
46 cmd.Format(_T("git.exe cat-file -p %s:\"%s\""),rev1,pPath->GetGitPathString());
\r
47 g_Git.RunLogFile(cmd,file1);
\r
50 file1=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();
\r
53 CString tempfile=::GetTempFile();
\r
54 CStdioFile file(tempfile,CFile::modeReadWrite|CFile::modeCreate );
\r
55 //file.WriteString();
\r
58 CAppUtils::DiffFlags flags;
\r
61 CAppUtils::StartExtDiff(tempfile,file1,
\r
63 pPath->GetGitPathString()+_T(":")+rev1.Left(6)
\r
66 CAppUtils::StartExtDiff(file1,tempfile,
\r
67 pPath->GetGitPathString()+_T(":")+rev1.Left(6)
\r
73 int CGitDiff::Diff(CTGitPath * pPath,CTGitPath * pPath2, git_revnum_t & rev1, git_revnum_t & rev2, bool /*blame*/, bool /*unified*/)
\r
76 GetTempPath(temppath);
\r
82 if(rev1 != GIT_REV_ZERO )
\r
84 file1.Format(_T("%s%s_%s%s"),
\r
86 pPath->GetBaseFilename(),
\r
88 pPath->GetFileExtension());
\r
89 title1 = pPath->GetFileOrDirectoryName()+_T(":")+rev1.Left(6);
\r
90 cmd.Format(_T("git.exe cat-file -p %s:\"%s\""),rev1,pPath->GetGitPathString());
\r
91 g_Git.RunLogFile(cmd,file1);
\r
94 file1=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();
\r
95 title1.Format( IDS_DIFF_WCNAME, pPath->GetFileOrDirectoryName() );
\r
100 if(rev2 != GIT_REV_ZERO)
\r
103 file2.Format(_T("%s%s_%s%s"),
\r
105 pPath2->GetBaseFilename(),
\r
107 pPath2->GetFileExtension());
\r
108 title2 = pPath2->GetFileOrDirectoryName()+_T(":")+rev2.Left(6);
\r
109 cmd.Format(_T("git.exe cat-file -p %s:\"%s\""),rev2,pPath2->GetGitPathString());
\r
110 g_Git.RunLogFile(cmd,file2);
\r
113 file2=g_Git.m_CurrentDir+_T("\\")+pPath2->GetWinPathString();
\r
114 title2.Format( IDS_DIFF_WCNAME, pPath2->GetFileOrDirectoryName() );
\r
117 CAppUtils::DiffFlags flags;
\r
118 CAppUtils::StartExtDiff(file2,file1,
\r