From ca3dca4e98b5e2a9b24bb1a7ada657ad24a96d6e Mon Sep 17 00:00:00 2001 From: Yue Lin Ho Date: Thu, 26 Feb 2015 21:12:00 +0800 Subject: [PATCH] Fixed issue #2354: Use the current time for amending commit Signed-off-by: Yue Lin Ho Signed-off-by: Sven Strickroth --- Languages/Tortoise.pot | 4 ++++ src/Changelog.txt | 1 + src/Resources/TortoiseProcENG.rc | 5 ++++- src/TortoiseProc/CommitDlg.cpp | 29 +++++++++++++++++++++++++++-- src/TortoiseProc/CommitDlg.h | 2 ++ src/TortoiseProc/resource.h | 2 ++ 6 files changed, 40 insertions(+), 3 deletions(-) diff --git a/Languages/Tortoise.pot b/Languages/Tortoise.pot index 44356db77..b3b17f829 100644 --- a/Languages/Tortoise.pot +++ b/Languages/Tortoise.pot @@ -9994,6 +9994,10 @@ msgstr "" msgid "Use th&is text block" msgstr "" +#. Resource IDs: (98) +msgid "Use the current time by setting the author date to the commit date." +msgstr "" + #. Resource IDs: (314) #, c-format msgid "Use the found path.\nApply the patch to\n%s" diff --git a/src/Changelog.txt b/src/Changelog.txt index 1bc013478..f4758fdd6 100644 --- a/src/Changelog.txt +++ b/src/Changelog.txt @@ -9,6 +9,7 @@ Released: Unreleased * TGitCache: Improve reaction time for propagating changes to explorer * Fixed issue #2031: Missing option to disable displaying "FETCH_HEAD" in "Switch/Checkout" dialog box * Log, RepoBrowser, and Rebase Dialogs: Allow to compare arbitrary files across commits + * Fixed issue #2534: Use the current time for amending commit == Bug Fixes == * Fixed issue #2427: "Submodule of Project: " cannot be localized diff --git a/src/Resources/TortoiseProcENG.rc b/src/Resources/TortoiseProcENG.rc index bdb6f92c1..2d65787b2 100644 --- a/src/Resources/TortoiseProcENG.rc +++ b/src/Resources/TortoiseProcENG.rc @@ -251,7 +251,8 @@ BEGIN CONTROL "Show diff to last commit",IDC_COMMIT_AMENDDIFF,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,212,110,132,10 CONTROL "Set author &date",IDC_COMMIT_SETDATETIME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,125,102,10 CONTROL "",IDC_COMMIT_DATEPICKER,"SysDateTimePick32",DTS_RIGHTALIGN | NOT WS_VISIBLE | WS_TABSTOP,123,123,66,13,WS_EX_RIGHT - CONTROL "",IDC_COMMIT_TIMEPICKER,"SysDateTimePick32",DTS_RIGHTALIGN | DTS_UPDOWN | NOT WS_VISIBLE | WS_TABSTOP | 0x8,195,123,61,13 + CONTROL "",IDC_COMMIT_TIMEPICKER,"SysDateTimePick32",DTS_RIGHTALIGN | DTS_UPDOWN | NOT WS_VISIBLE | WS_TABSTOP | 0x8,193,123,61,13 + CONTROL "Reset",IDC_COMMIT_AS_COMMIT_DATE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,259,125,85,10 CONTROL "Set au&thor",IDC_COMMIT_SETAUTHOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,139,102,10 EDITTEXT IDC_COMMIT_AUTHORDATA,123,137,119,13,ES_AUTOHSCROLL | NOT WS_VISIBLE PUSHBUTTON "Add &Signed-off-by",IDC_SIGNOFF,258,137,86,13 @@ -3996,6 +3997,8 @@ BEGIN IDS_PROC_NEWNAMECOPY "Copy: New name for %s" IDS_PROC_NEWNAMEMOVE "Move: New name for %s" IDS_PROC_NEWNAMELABEL "New name:" + IDS_COMMIT_AS_COMMIT_DATE_TT + "Use the current time by setting the author date to the commit date." IDS_PROC_MULTIRENAME "TortoiseGit has detected similar filenames. Do you want the files:%s\nto be renamed too?" END diff --git a/src/TortoiseProc/CommitDlg.cpp b/src/TortoiseProc/CommitDlg.cpp index 90a2390b6..6c5f5547f 100644 --- a/src/TortoiseProc/CommitDlg.cpp +++ b/src/TortoiseProc/CommitDlg.cpp @@ -115,6 +115,7 @@ void CCommitDlg::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX,IDC_VIEW_PATCH,m_ctrlShowPatch); DDX_Control(pDX, IDC_COMMIT_DATEPICKER, m_CommitDate); DDX_Control(pDX, IDC_COMMIT_TIMEPICKER, m_CommitTime); + DDX_Control(pDX, IDC_COMMIT_AS_COMMIT_DATE, m_AsCommitDateCtrl); } BEGIN_MESSAGE_MAP(CCommitDlg, CResizableStandAloneDialog) @@ -150,6 +151,7 @@ BEGIN_MESSAGE_MAP(CCommitDlg, CResizableStandAloneDialog) ON_BN_CLICKED(IDC_COMMIT_AMENDDIFF, &CCommitDlg::OnBnClickedCommitAmenddiff) ON_BN_CLICKED(IDC_NOAUTOSELECTSUBMODULES, &CCommitDlg::OnBnClickedNoautoselectsubmodules) ON_BN_CLICKED(IDC_COMMIT_SETDATETIME, &CCommitDlg::OnBnClickedCommitSetDateTime) + ON_BN_CLICKED(IDC_COMMIT_AS_COMMIT_DATE, &CCommitDlg::OnBnClickedCommitAsCommitDate) ON_BN_CLICKED(IDC_CHECK_NEWBRANCH, &CCommitDlg::OnBnClickedCheckNewBranch) ON_BN_CLICKED(IDC_COMMIT_SETAUTHOR, &CCommitDlg::OnBnClickedCommitSetauthor) END_MESSAGE_MAP() @@ -258,7 +260,7 @@ BOOL CCommitDlg::OnInitDialog() m_tooltips.AddTool(IDC_COMMIT_AMEND,IDS_COMMIT_AMEND_TT); m_tooltips.AddTool(IDC_MERGEACTIVE, IDC_MERGEACTIVE_TT); m_tooltips.AddTool(IDC_COMMIT_MESSAGEONLY, IDS_COMMIT_MESSAGEONLY_TT); -// m_tooltips.AddTool(IDC_HISTORY, IDS_COMMITDLG_HISTORY_TT); + m_tooltips.AddTool(IDC_COMMIT_AS_COMMIT_DATE, IDS_COMMIT_AS_COMMIT_DATE_TT); CBugTraqAssociations bugtraq_associations; bugtraq_associations.Load(m_ProjectProperties.GetProviderUUID(), m_ProjectProperties.sProviderParams); @@ -328,6 +330,7 @@ BOOL CCommitDlg::OnInitDialog() AdjustControlSize(IDC_COMMIT_SETAUTHOR); AdjustControlSize(IDC_NOAUTOSELECTSUBMODULES); AdjustControlSize(IDC_KEEPLISTS); + AdjustControlSize(IDC_COMMIT_AS_COMMIT_DATE); m_linkControl.ConvertStaticToLink(m_hWnd, IDC_CHECKALL); m_linkControl.ConvertStaticToLink(m_hWnd, IDC_CHECKNONE); @@ -388,6 +391,7 @@ BOOL CCommitDlg::OnInitDialog() AddAnchor(IDC_COMMIT_SETDATETIME,TOP_LEFT); AddAnchor(IDC_COMMIT_DATEPICKER,TOP_LEFT); AddAnchor(IDC_COMMIT_TIMEPICKER,TOP_LEFT); + AddAnchor(IDC_COMMIT_AS_COMMIT_DATE, TOP_LEFT); AddAnchor(IDC_COMMIT_SETAUTHOR, TOP_LEFT); AddAnchor(IDC_COMMIT_AUTHORDATA, TOP_LEFT, TOP_RIGHT); @@ -961,7 +965,10 @@ void CCommitDlg::OnOK() CTime date, time; m_CommitDate.GetTime(date); m_CommitTime.GetTime(time); - dateTime.Format(_T("--date=%sT%s"), date.Format(_T("%Y-%m-%d")), time.Format(_T("%H:%M:%S"))); + if (m_bCommitAmend && m_AsCommitDateCtrl.GetCheck()) + dateTime = L"--date=\"\""; + else + dateTime.Format(_T("--date=%sT%s"), date.Format(_T("%Y-%m-%d")), time.Format(_T("%H:%M:%S"))); } CString author; if (m_bSetAuthor) @@ -2205,6 +2212,7 @@ void CCommitDlg::DoSize(int delta) RemoveAnchor(IDC_COMMIT_SETDATETIME); RemoveAnchor(IDC_COMMIT_DATEPICKER); RemoveAnchor(IDC_COMMIT_TIMEPICKER); + RemoveAnchor(IDC_COMMIT_AS_COMMIT_DATE); RemoveAnchor(IDC_COMMIT_SETAUTHOR); RemoveAnchor(IDC_COMMIT_AUTHORDATA); RemoveAnchor(IDC_LISTGROUP); @@ -2231,6 +2239,7 @@ void CCommitDlg::DoSize(int delta) CSplitterControl::ChangePos(GetDlgItem(IDC_COMMIT_SETDATETIME),0,delta); CSplitterControl::ChangePos(GetDlgItem(IDC_COMMIT_DATEPICKER),0,delta); CSplitterControl::ChangePos(GetDlgItem(IDC_COMMIT_TIMEPICKER),0,delta); + CSplitterControl::ChangePos(GetDlgItem(IDC_COMMIT_AS_COMMIT_DATE), 0, delta); CSplitterControl::ChangePos(GetDlgItem(IDC_COMMIT_SETAUTHOR), 0, delta); CSplitterControl::ChangePos(GetDlgItem(IDC_COMMIT_AUTHORDATA), 0, delta); CSplitterControl::ChangePos(GetDlgItem(IDC_TEXT_INFO),0,delta); @@ -2256,6 +2265,7 @@ void CCommitDlg::DoSize(int delta) AddAnchor(IDC_COMMIT_SETDATETIME,TOP_LEFT); AddAnchor(IDC_COMMIT_DATEPICKER,TOP_LEFT); AddAnchor(IDC_COMMIT_TIMEPICKER,TOP_LEFT); + AddAnchor(IDC_COMMIT_AS_COMMIT_DATE, TOP_LEFT); AddAnchor(IDC_COMMIT_SETAUTHOR, TOP_LEFT); AddAnchor(IDC_COMMIT_AUTHORDATA, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_TEXT_INFO,TOP_RIGHT); @@ -2338,12 +2348,17 @@ void CCommitDlg::OnBnClickedCommitAmend() this->m_NoAmendStr=this->m_cLogMessage.GetText(); m_cLogMessage.SetText(m_AmendStr); GetDlgItem(IDC_COMMIT_AMENDDIFF)->ShowWindow(SW_SHOW); + if (m_bSetCommitDateTime) + m_AsCommitDateCtrl.ShowWindow(SW_SHOW); } else { this->m_AmendStr=this->m_cLogMessage.GetText(); m_cLogMessage.SetText(m_NoAmendStr); GetDlgItem(IDC_COMMIT_AMENDDIFF)->ShowWindow(SW_HIDE); + m_AsCommitDateCtrl.ShowWindow(SW_HIDE); + m_AsCommitDateCtrl.SetCheck(FALSE); + OnBnClickedCommitAsCommitDate(); } OnBnClickedCommitSetDateTime(); // to update the commit date and time @@ -2546,6 +2561,7 @@ void CCommitDlg::OnBnClickedCommitSetDateTime() if (headRevision.GetCommit(_T("HEAD"))) MessageBox(headRevision.GetLastErr(), _T("TortoiseGit"), MB_ICONERROR); authordate = headRevision.GetAuthorDate(); + m_AsCommitDateCtrl.ShowWindow(SW_SHOW); } m_CommitDate.SetTime(&authordate); @@ -2558,9 +2574,18 @@ void CCommitDlg::OnBnClickedCommitSetDateTime() { GetDlgItem(IDC_COMMIT_DATEPICKER)->ShowWindow(SW_HIDE); GetDlgItem(IDC_COMMIT_TIMEPICKER)->ShowWindow(SW_HIDE); + m_AsCommitDateCtrl.ShowWindow(SW_HIDE); + m_AsCommitDateCtrl.SetCheck(FALSE); + OnBnClickedCommitAsCommitDate(); } } +void CCommitDlg::OnBnClickedCommitAsCommitDate() +{ + GetDlgItem(IDC_COMMIT_DATEPICKER)->EnableWindow(!m_AsCommitDateCtrl.GetCheck()); + GetDlgItem(IDC_COMMIT_TIMEPICKER)->EnableWindow(!m_AsCommitDateCtrl.GetCheck()); +} + void CCommitDlg::OnBnClickedCheckNewBranch() { UpdateData(); diff --git a/src/TortoiseProc/CommitDlg.h b/src/TortoiseProc/CommitDlg.h index 203ac1406..484307a71 100644 --- a/src/TortoiseProc/CommitDlg.h +++ b/src/TortoiseProc/CommitDlg.h @@ -199,6 +199,7 @@ private: BOOL m_bSetCommitDateTime; CDateTimeCtrl m_CommitDate; CDateTimeCtrl m_CommitTime; + CButton m_AsCommitDateCtrl; CLinkControl m_linkControl; CString m_sLogTemplate; @@ -219,6 +220,7 @@ protected: afx_msg void OnBnClickedCommitAmenddiff(); afx_msg void OnBnClickedNoautoselectsubmodules(); afx_msg void OnBnClickedCommitSetDateTime(); + afx_msg void OnBnClickedCommitAsCommitDate(); afx_msg void OnBnClickedCheckNewBranch(); afx_msg void OnBnClickedCommitSetauthor(); }; diff --git a/src/TortoiseProc/resource.h b/src/TortoiseProc/resource.h index dbc783b2a..e6e00c29b 100644 --- a/src/TortoiseProc/resource.h +++ b/src/TortoiseProc/resource.h @@ -1216,6 +1216,7 @@ #define IDS_PROC_NEWNAMELABEL 1554 #define IDC_GROUP_RESET_TYPE 1554 #define IDC_COMMIT_AMEND 1555 +#define IDS_COMMIT_AS_COMMIT_DATE_TT 1555 #define IDC_SOUNDS_TEXT 1556 #define IDC_COMMIT_AMENDDIFF 1556 #define IDC_REBASE_PROGRESS 1557 @@ -1224,6 +1225,7 @@ #define IDC_COMMIT_SETAUTHOR 1558 #define IDC_SPLITALLOPTIONS 1559 #define IDS_PROC_MULTIRENAME 1560 +#define IDC_COMMIT_AS_COMMIT_DATE 1561 #define IDC_REBASE_SPLIT 1562 #define IDC_STATUS_STATIC 1563 #define IDC_REBASE_CONTINUE 1564 -- 2.11.4.GIT