• R/O
  • HTTP
  • SSH
  • HTTPS

TortoiseGitJp: Commit

TortoiseGit日本語言語ファイル作成


Commit MetaInfo

Revisiónf27a2b7b04f549ab3ff336359a5098b1e8935706 (tree)
Tiempo2010-01-23 19:36:18
AutorFrank Li <lznuaa@gmai...>
CommiterFrank Li

Log Message

Basic File diff dialog is okay to show prediff command

Signed-off-by: Frank Li <lznuaa@gmail.com>

Cambiar Resumen

Diferencia incremental

--- a/src/Git/GitRev.cpp
+++ b/src/Git/GitRev.cpp
@@ -403,4 +403,34 @@ void GitRev::DbgPrint()
403403 TRACE(_T("Parent %i %s"),i, m_ParentHash[i].ToString());
404404 }
405405 TRACE(_T("\n"));
406+}
407+
408+int GitRev::GetCommitFromHash(CGitHash &hash)
409+{
410+ g_Git.CheckAndInitDll();
411+
412+ GIT_COMMIT commit;
413+ if(git_get_commit_from_hash( &commit, hash.m_hash))
414+ return -1;
415+
416+ this->ParserFromCommit(&commit);
417+ git_free_commit(&commit);
418+
419+ this->m_CommitHash=hash;
420+
421+ return 0;
422+
423+}
424+
425+int GitRev::GetCommit(CString &refname)
426+{
427+ g_Git.CheckAndInitDll();
428+ CStringA rev;
429+ rev= CUnicodeUtils::GetUTF8(refname);
430+ GIT_HASH sha;
431+
432+ if(git_get_sha1(rev.GetBuffer(),sha))
433+ return -1;
434+
435+ GetCommitFromHash(CGitHash((char*)sha));
406436 }
\ No newline at end of file
--- a/src/Git/GitRev.h
+++ b/src/Git/GitRev.h
@@ -77,6 +77,10 @@ public:
7777
7878 int ParserFromCommit(GIT_COMMIT *commit);
7979 int ParserParentFromCommit(GIT_COMMIT *commit);
80+
81+ int GetCommitFromHash(CGitHash &hash);
82+ int GetCommit(CString &Rev);
83+
8084 public:
8185 void DbgPrint();
8286 private:
Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ
--- a/src/TortoiseProc/Commands/DiffCommand.cpp
+++ b/src/TortoiseProc/Commands/DiffCommand.cpp
@@ -32,7 +32,7 @@ bool DiffCommand::Execute()
3232 // bool bBlame = !!parser.HasKey(_T("blame"));
3333 if (path2.IsEmpty())
3434 {
35- if (cmdLinePath.IsDirectory())
35+ if (this->orgCmdLinePath.IsDirectory())
3636 {
3737 CChangedDlg dlg;
3838 dlg.m_pathList = CTGitPathList(cmdLinePath);
--- a/src/TortoiseProc/Commands/PrevDiffCommand.cpp
+++ b/src/TortoiseProc/Commands/PrevDiffCommand.cpp
@@ -24,15 +24,20 @@
2424 #include "ChangedDlg.h"
2525 #include "LogDlgHelper.h"
2626 #include "CommonResource.h"
27+#include "FileDiffDlg.h"
2728
2829 bool PrevDiffCommand::Execute()
2930 {
3031 bool bRet = false;
3132 bool bAlternativeTool = !!parser.HasKey(_T("alternative"));
32- if (cmdLinePath.IsDirectory())
33+ if (this->orgCmdLinePath.IsDirectory())
3334 {
34- CChangedDlg dlg;
35- dlg.m_pathList = CTGitPathList(cmdLinePath);
35+ CFileDiffDlg dlg;
36+
37+ dlg.m_strRev1 = _T("HEAD") ;
38+ dlg.m_strRev2 = _T("HEAD~1");
39+
40+ //dlg.m_pathList = CTGitPathList(cmdLinePath);
3641 dlg.DoModal();
3742 bRet = true;
3843 }
--- a/src/TortoiseProc/FileDiffDlg.cpp
+++ b/src/TortoiseProc/FileDiffDlg.cpp
@@ -65,6 +65,8 @@ void CFileDiffDlg::DoDataExchange(CDataExchange* pDX)
6565 DDX_Control(pDX, IDC_REV1BTN, m_cRev1Btn);
6666 DDX_Control(pDX, IDC_REV2BTN, m_cRev2Btn);
6767 DDX_Control(pDX, IDC_FILTER, m_cFilter);
68+ DDX_Control(pDX, IDC_REV1EDIT, m_ctrRev1Edit);
69+ DDX_Control(pDX, IDC_REV2EDIT, m_ctrRev2Edit);
6870 }
6971
7072
@@ -83,6 +85,8 @@ BEGIN_MESSAGE_MAP(CFileDiffDlg, CResizableStandAloneDialog)
8385 ON_MESSAGE(WM_FILTEREDIT_CANCELCLICKED, OnClickedCancelFilter)
8486 ON_EN_CHANGE(IDC_FILTER, &CFileDiffDlg::OnEnChangeFilter)
8587 ON_WM_TIMER()
88+ ON_EN_CHANGE(IDC_REV1EDIT, &CFileDiffDlg::OnEnChangeRev1edit)
89+ ON_EN_CHANGE(IDC_REV2EDIT, &CFileDiffDlg::OnEnChangeRev2edit)
8690 END_MESSAGE_MAP()
8791
8892
@@ -199,16 +203,40 @@ BOOL CFileDiffDlg::OnInitDialog()
199203 AddAnchor(IDC_SWITCHLEFTRIGHT, TOP_RIGHT);
200204 AddAnchor(IDC_FIRSTURL, TOP_LEFT, TOP_RIGHT);
201205 AddAnchor(IDC_REV1BTN, TOP_RIGHT);
202- AddAnchor(IDC_DIFFSTATIC2, TOP_LEFT, TOP_RIGHT);
206+ //AddAnchor(IDC_DIFFSTATIC2, TOP_LEFT, TOP_RIGHT);
203207 AddAnchor(IDC_SECONDURL, TOP_LEFT, TOP_RIGHT);
204208 AddAnchor(IDC_REV2BTN, TOP_RIGHT);
205209 AddAnchor(IDC_FILTER, TOP_LEFT, TOP_RIGHT);
206210 AddAnchor(IDC_FILELIST, TOP_LEFT, BOTTOM_RIGHT);
211+ AddAnchor(IDC_REV1GROUP,TOP_LEFT,TOP_RIGHT);
212+ AddAnchor(IDC_REV2GROUP,TOP_LEFT,TOP_RIGHT);
213+ AddAnchor(IDC_REV1EDIT,TOP_LEFT);
214+ AddAnchor(IDC_REV2EDIT,TOP_LEFT);
207215
208- SetURLLabels();
209-
210216 EnableSaveRestore(_T("FileDiffDlg"));
211217
218+ if(this->m_strRev1.IsEmpty())
219+ this->m_ctrRev1Edit.SetWindowText(this->m_rev1.m_CommitHash.ToString());
220+ else
221+ {
222+ if(m_rev1.GetCommit(this->m_strRev1))
223+ this->m_FileListText+=this->m_strRev1 + _T(" is wrong");
224+
225+ this->m_ctrRev1Edit.SetWindowText(m_strRev1);
226+ }
227+
228+ if(this->m_strRev2.IsEmpty())
229+ this->m_ctrRev2Edit.SetWindowText(this->m_rev2.m_CommitHash.ToString());
230+ else
231+ {
232+ if(m_rev2.GetCommit(this->m_strRev2))
233+ this->m_FileListText+=this->m_strRev2 + _T(" is wrong");
234+
235+ this->m_ctrRev2Edit.SetWindowText(m_strRev2);
236+ }
237+
238+ SetURLLabels();
239+
212240 InterlockedExchange(&m_bThreadRunning, TRUE);
213241 if (AfxBeginThread(DiffThreadEntry, this)==NULL)
214242 {
@@ -216,6 +244,14 @@ BOOL CFileDiffDlg::OnInitDialog()
216244 CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);
217245 }
218246
247+ this->m_cRev1Btn.AddEntry(_T("RefBrowse"));
248+ this->m_cRev1Btn.AddEntry(_T("Log"));
249+ this->m_cRev1Btn.AddEntry(_T("RefLog"));
250+
251+ this->m_cRev2Btn.AddEntry(_T("RefBrowse"));
252+ this->m_cRev2Btn.AddEntry(_T("Log"));
253+ this->m_cRev2Btn.AddEntry(_T("RefLog"));
254+
219255 // Start with focus on file list
220256 GetDlgItem(IDC_FILELIST)->SetFocus();
221257
@@ -876,6 +912,14 @@ void CFileDiffDlg::OnBnClickedSwitchleftright()
876912 GitRev rev = m_rev1;
877913 m_rev1 = m_rev2;
878914 m_rev2 = rev;
915+
916+ CString str1,str2;
917+ this->m_ctrRev1Edit.GetWindowText(str1);
918+ this->m_ctrRev2Edit.GetWindowText(str2);
919+
920+ this->m_ctrRev1Edit.SetWindowText(str2);
921+ this->m_ctrRev2Edit.SetWindowText(str1);
922+
879923 SetURLLabels();
880924
881925 }
@@ -883,11 +927,11 @@ void CFileDiffDlg::OnBnClickedSwitchleftright()
883927 void CFileDiffDlg::SetURLLabels()
884928 {
885929
886- m_cRev1Btn.SetWindowText(m_rev1.m_CommitHash.ToString().Left(6));
887- m_cRev2Btn.SetWindowText(m_rev2.m_CommitHash.ToString().Left(6));
930+// m_cRev1Btn.SetWindowText(m_rev1.m_CommitHash.ToString().Left(6));
931+// m_cRev2Btn.SetWindowText(m_rev2.m_CommitHash.ToString().Left(6));
888932
889- SetDlgItemText(IDC_FIRSTURL, m_rev1.m_Subject+CString(_T("\r\n"))+m_rev1.m_CommitHash);
890- SetDlgItemText(IDC_SECONDURL,m_rev2.m_Subject+CString(_T("\r\n"))+m_rev2.m_CommitHash);
933+ SetDlgItemText(IDC_FIRSTURL, m_rev1.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev1.m_Subject);
934+ SetDlgItemText(IDC_SECONDURL,m_rev2.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev2.m_Subject);
891935
892936 m_tooltips.AddTool(IDC_FIRSTURL,
893937 CAppUtils::FormatDateAndTime( m_rev1.m_AuthorDate, DATE_SHORTDATE, false )+_T(" ")+m_rev1.m_AuthorName);
@@ -1159,3 +1203,23 @@ void CFileDiffDlg::CopySelectionToClipboard()
11591203 CStringUtils::WriteAsciiStringToClipboard(sTextForClipboard);
11601204 }
11611205
1206+
1207+void CFileDiffDlg::OnEnChangeRev1edit()
1208+{
1209+ // TODO: If this is a RICHEDIT control, the control will not
1210+ // send this notification unless you override the CResizableStandAloneDialog::OnInitDialog()
1211+ // function and call CRichEditCtrl().SetEventMask()
1212+ // with the ENM_CHANGE flag ORed into the mask.
1213+
1214+ // TODO: Add your control notification handler code here
1215+}
1216+
1217+void CFileDiffDlg::OnEnChangeRev2edit()
1218+{
1219+ // TODO: If this is a RICHEDIT control, the control will not
1220+ // send this notification unless you override the CResizableStandAloneDialog::OnInitDialog()
1221+ // function and call CRichEditCtrl().SetEventMask()
1222+ // with the ENM_CHANGE flag ORed into the mask.
1223+
1224+ // TODO: Add your control notification handler code here
1225+}
--- a/src/TortoiseProc/FileDiffDlg.h
+++ b/src/TortoiseProc/FileDiffDlg.h
@@ -29,7 +29,7 @@
2929 #include "FilterEdit.h"
3030 #include "Tooltip.h"
3131 #include "ProgressDlg.h"
32-
32+#include "MenuButton.h"
3333
3434 #define IDT_FILTER 101
3535
@@ -110,8 +110,8 @@ private:
110110
111111 CToolTips m_tooltips;
112112
113- CButton m_cRev1Btn;
114- CButton m_cRev2Btn;
113+ CMenuButton m_cRev1Btn;
114+ CMenuButton m_cRev2Btn;
115115 CFilterEdit m_cFilter;
116116
117117 CXPImageButton m_SwitchButton;
@@ -146,4 +146,16 @@ private:
146146
147147 static BOOL m_bAscending;
148148 static int m_nSortedColumn;
149+
150+ CEdit m_ctrRev1Edit;
151+ CEdit m_ctrRev2Edit;
152+
153+ CString m_FileListText;
154+public:
155+ CString m_strRev1;
156+ CString m_strRev2;
157+
158+public:
159+ afx_msg void OnEnChangeRev1edit();
160+ afx_msg void OnEnChangeRev2edit();
149161 };
Binary files a/src/TortoiseProc/resource.h and b/src/TortoiseProc/resource.h differ
Show on old repository browser