OSDN Git Service

Use unified Version Choose Code
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / GitDiff.cpp
1 #include "StdAfx.h"\r
2 #include "GitDiff.h"\r
3 #include "AppUtils.h"\r
4 \r
5 CGitDiff::CGitDiff(void)\r
6 {\r
7 }\r
8 \r
9 CGitDiff::~CGitDiff(void)\r
10 {\r
11 }\r
12 \r
13 int CGitDiff::Diff(CTGitPath * pPath, git_revnum_t & rev1, git_revnum_t & rev2, bool blame, bool unified)\r
14 {\r
15         CString temppath;\r
16         GetTempPath(temppath);\r
17         \r
18         CString file1;\r
19         CString cmd;\r
20         if(rev1 != GIT_REV_ZERO )\r
21         {\r
22                 file1.Format(_T("%s%s_%s%s"),\r
23                                 temppath,                                               \r
24                                 pPath->GetBaseFilename(),\r
25                                 rev1.Left(6),\r
26                                 pPath->GetFileExtension());\r
27                 cmd.Format(_T("git.cmd cat-file -p %s:%s"),rev1,pPath->GetGitPathString());\r
28                                 g_Git.RunLogFile(cmd,file1);\r
29         }else\r
30         {\r
31                 file1=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();\r
32         }\r
33 \r
34         CString file2;\r
35         if(rev2 != GIT_REV_ZERO)\r
36         {\r
37                 \r
38                 file2.Format(_T("%s\\%s_%s%s"),\r
39                                 temppath,                                               \r
40                                 pPath->GetBaseFilename(),\r
41                                 rev2.Left(6),\r
42                                 pPath->GetFileExtension());\r
43                 cmd.Format(_T("git.cmd cat-file -p %s:%s"),rev2,pPath->GetGitPathString());\r
44                 g_Git.RunLogFile(cmd,file2);\r
45         }else\r
46         {\r
47                 file2=g_Git.m_CurrentDir+_T("\\")+pPath->GetWinPathString();\r
48         }\r
49         \r
50         CAppUtils::DiffFlags flags;\r
51         CAppUtils::StartExtDiff(file1,file2,\r
52                                                         pPath->GetGitPathString()+_T(":")+rev1.Left(6),\r
53                                                         pPath->GetGitPathString()+_T(":")+rev2.Left(6)\r
54                                                         ,flags);\r
55 \r
56         return 0;\r
57 }\r