From: Frank Li Date: Sun, 31 May 2009 10:03:28 +0000 (+0800) Subject: Add bugtraq to support commit dialog bug track. X-Git-Url: http://git.sourceforge.jp/view?p=tortoisegit%2FTortoiseGitJp.git;a=commitdiff_plain;h=1384a33f3f4086402f49efb21774b388b50edb44;hp=5ec37275ec95b48cecba99079c312293e6749531 Add bugtraq to support commit dialog bug track. Signed-off-by: Frank Li --- diff --git a/src/TortoiseProc/CommitDlg.cpp b/src/TortoiseProc/CommitDlg.cpp index 45c8beb..fb5a5d0 100644 --- a/src/TortoiseProc/CommitDlg.cpp +++ b/src/TortoiseProc/CommitDlg.cpp @@ -462,6 +462,19 @@ void CCommitDlg::OnOK() // cmd.Format(_T("git.exe reset -- %s"),uncheckedfiles); // g_Git.Run(cmd,&out); //} + + m_sBugID.Trim(); + if (!m_sBugID.IsEmpty()) + { + m_sBugID.Replace(_T(", "), _T(",")); + m_sBugID.Replace(_T(" ,"), _T(",")); + CString sBugID = m_ProjectProperties.sMessage; + sBugID.Replace(_T("%BUGID%"), m_sBugID); + if (m_ProjectProperties.bAppend) + m_sLogMessage += _T("\n") + sBugID + _T("\n"); + else + m_sLogMessage = sBugID + _T("\n") + m_sLogMessage; + } BOOL bCloseCommitDlg=true; //if(checkedfiles.GetLength()>0) @@ -620,18 +633,7 @@ void CCommitDlg::OnOK() if (!GetDlgItem(IDC_KEEPLISTS)->IsWindowEnabled()) m_bKeepChangeList = FALSE; InterlockedExchange(&m_bBlock, FALSE); - m_sBugID.Trim(); - if (!m_sBugID.IsEmpty()) - { - m_sBugID.Replace(_T(", "), _T(",")); - m_sBugID.Replace(_T(" ,"), _T(",")); - CString sBugID = m_ProjectProperties.sMessage; - sBugID.Replace(_T("%BUGID%"), m_sBugID); - if (m_ProjectProperties.bAppend) - m_sLogMessage += _T("\n") + sBugID + _T("\n"); - else - m_sLogMessage = sBugID + _T("\n") + m_sLogMessage; - } + m_History.AddEntry(m_sLogMessage); m_History.Save(); diff --git a/src/TortoiseProc/ProjectProperties.cpp b/src/TortoiseProc/ProjectProperties.cpp index 4510fdf..75d6687 100644 --- a/src/TortoiseProc/ProjectProperties.cpp +++ b/src/TortoiseProc/ProjectProperties.cpp @@ -23,6 +23,7 @@ //#include "GitProperties.h" #include "TGitPath.h" #include +#include "git.h" using namespace std; @@ -56,8 +57,68 @@ BOOL ProjectProperties::ReadPropsPathList(const CTGitPathList& pathList) return FALSE; } +BOOL ProjectProperties::GetStringProps(CString &prop,TCHAR *key,bool bRemoveCR) +{ + CString cmd,output; + output.Empty(); + + cmd.Format(_T("git.exe config %s"),key); + int start = 0; + if(g_Git.Run(cmd,&output,CP_ACP)) + { + return FALSE; + } + if(bRemoveCR) + prop = output.Tokenize(_T("\n"),start); + else + prop = output; + + return TRUE; + +} + +BOOL ProjectProperties::GetBOOLProps(BOOL &b,TCHAR *key) +{ + CString str,low; + if(!GetStringProps(str,key)) + return FALSE; + + low=str.MakeLower(); + if(low == _T("true")) + b=true; + else + b=false; + + return true; + +} BOOL ProjectProperties::ReadProps(CTGitPath path) { + CString sPropVal; + + GetStringProps(this->sLabel,BUGTRAQPROPNAME_LABEL); + GetStringProps(this->sMessage,BUGTRAQPROPNAME_MESSAGE); + + GetBOOLProps(this->bWarnIfNoIssue,BUGTRAQPROPNAME_WARNIFNOISSUE); + GetBOOLProps(this->bNumber,BUGTRAQPROPNAME_NUMBER); + GetBOOLProps(this->bAppend,BUGTRAQPROPNAME_APPEND); + + GetStringProps(sPropVal,BUGTRAQPROPNAME_LOGREGEX,false); + + sCheckRe = sPropVal; + if (sCheckRe.Find('\n')>=0) + { + sBugIDRe = sCheckRe.Mid(sCheckRe.Find('\n')).Trim(); + sCheckRe = sCheckRe.Left(sCheckRe.Find('\n')).Trim(); + } + if (!sCheckRe.IsEmpty()) + { + sCheckRe = sCheckRe.Trim(); + } + return TRUE; + + +#if 0 BOOL bFoundBugtraqLabel = FALSE; BOOL bFoundBugtraqMessage = FALSE; BOOL bFoundBugtraqNumber = FALSE; @@ -80,7 +141,7 @@ BOOL ProjectProperties::ReadProps(CTGitPath path) if (!path.IsDirectory()) path = path.GetContainingDirectory(); -#if 0 + for (;;) { GitProperties props(path, GitRev::REV_WC, false); diff --git a/src/TortoiseProc/ProjectProperties.h b/src/TortoiseProc/ProjectProperties.h index 0f0bf95..31ebca8 100644 --- a/src/TortoiseProc/ProjectProperties.h +++ b/src/TortoiseProc/ProjectProperties.h @@ -22,27 +22,27 @@ #include "TGitPath.h" using namespace std; -#define BUGTRAQPROPNAME_LABEL _T("bugtraq:label") -#define BUGTRAQPROPNAME_MESSAGE _T("bugtraq:message") -#define BUGTRAQPROPNAME_NUMBER _T("bugtraq:number") -#define BUGTRAQPROPNAME_LOGREGEX _T("bugtraq:logregex") -#define BUGTRAQPROPNAME_URL _T("bugtraq:url") -#define BUGTRAQPROPNAME_WARNIFNOISSUE _T("bugtraq:warnifnoissue") -#define BUGTRAQPROPNAME_APPEND _T("bugtraq:append") - -#define PROJECTPROPNAME_LOGTEMPLATE _T("tsvn:logtemplate") -#define PROJECTPROPNAME_LOGWIDTHLINE _T("tsvn:logwidthmarker") -#define PROJECTPROPNAME_LOGMINSIZE _T("tsvn:logminsize") -#define PROJECTPROPNAME_LOCKMSGMINSIZE _T("tsvn:lockmsgminsize") -#define PROJECTPROPNAME_LOGFILELISTLANG _T("tsvn:logfilelistenglish") -#define PROJECTPROPNAME_LOGSUMMARY _T("tsvn:logsummary") -#define PROJECTPROPNAME_PROJECTLANGUAGE _T("tsvn:projectlanguage") -#define PROJECTPROPNAME_USERFILEPROPERTY _T("tsvn:userfileproperties") -#define PROJECTPROPNAME_USERDIRPROPERTY _T("tsvn:userdirproperties") -#define PROJECTPROPNAME_AUTOPROPS _T("tsvn:autoprops") - -#define PROJECTPROPNAME_WEBVIEWER_REV _T("webviewer:revision") -#define PROJECTPROPNAME_WEBVIEWER_PATHREV _T("webviewer:pathrevision") +#define BUGTRAQPROPNAME_LABEL _T("bugtraq.label") +#define BUGTRAQPROPNAME_MESSAGE _T("bugtraq.message") +#define BUGTRAQPROPNAME_NUMBER _T("bugtraq.number") +#define BUGTRAQPROPNAME_LOGREGEX _T("bugtraq.logregex") +#define BUGTRAQPROPNAME_URL _T("bugtraq.url") +#define BUGTRAQPROPNAME_WARNIFNOISSUE _T("bugtraq.warnifnoissue") +#define BUGTRAQPROPNAME_APPEND _T("bugtraq.append") + +#define PROJECTPROPNAME_LOGTEMPLATE _T("tsvn.logtemplate") +#define PROJECTPROPNAME_LOGWIDTHLINE _T("tsvn.logwidthmarker") +#define PROJECTPROPNAME_LOGMINSIZE _T("tsvn.logminsize") +#define PROJECTPROPNAME_LOCKMSGMINSIZE _T("tsvn.lockmsgminsize") +#define PROJECTPROPNAME_LOGFILELISTLANG _T("tsvn.logfilelistenglish") +#define PROJECTPROPNAME_LOGSUMMARY _T("tsvn.logsummary") +#define PROJECTPROPNAME_PROJECTLANGUAGE _T("tsvn.projectlanguage") +#define PROJECTPROPNAME_USERFILEPROPERTY _T("tsvn.userfileproperties") +#define PROJECTPROPNAME_USERDIRPROPERTY _T("tsvn.userdirproperties") +#define PROJECTPROPNAME_AUTOPROPS _T("tsvn.autoprops") + +#define PROJECTPROPNAME_WEBVIEWER_REV _T("webviewer.revision") +#define PROJECTPROPNAME_WEBVIEWER_PATHREV _T("webviewer.pathrevision") class CTSVNPathList; struct svn_config_t; @@ -65,6 +65,8 @@ public: * \param path path to a file or a folder */ BOOL ReadProps(CTGitPath path); + BOOL GetStringProps(CString &prop,TCHAR *key,bool bRemoveCR=true); + BOOL GetBOOLProps(BOOL &b, TCHAR*key); /** * Reads the properties from all paths found in a path list. * This method calls ReadProps() for each path .