|
@@ -0,0 +1,50 @@
|
|
|
+#include "StdAfx.h"
|
|
|
+#include "SVNProc.h"
|
|
|
+
|
|
|
+CSVNProc::CSVNProc(void)
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+CSVNProc::~CSVNProc(void)
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+void CSVNProc::SVNProcess(std::string strSVNAddress, std::string strSavePath, DWORD dwSVNVersion, SVNTYPE type)
|
|
|
+{
|
|
|
+
|
|
|
+ TCHAR szCommand[MAX_PATH] = { 0 };
|
|
|
+ if ( type == SVN_EXPORT ) {
|
|
|
+ // 先删除要导出的路径;
|
|
|
+ _stprintf_s(szCommand, _T("/c rd /s /q %s"), strSavePath.c_str());
|
|
|
+ ShellExecute(NULL, _T("open"), _T("cmd"), szCommand, NULL, SW_HIDE);
|
|
|
+ // 再执行导出;
|
|
|
+ _stprintf_s(szCommand, _T("/c svn export -r %d %s %s &pause"), dwSVNVersion, strSVNAddress.c_str(), strSavePath.c_str());
|
|
|
+ }
|
|
|
+ else if ( type == SVN_CHECKOUT ) {
|
|
|
+ // 先删除要导出的路径;
|
|
|
+ _stprintf_s(szCommand, _T("/c rd /s /q %s"), strSavePath.c_str());
|
|
|
+ ShellExecute(NULL, _T("open"), _T("cmd"), szCommand, NULL, SW_HIDE);
|
|
|
+ // 再执行导出;
|
|
|
+ _stprintf_s(szCommand, _T("/c svn checkout -r %d %s %s &pause"), dwSVNVersion, strSVNAddress.c_str(), strSavePath.c_str());
|
|
|
+ }
|
|
|
+ else if ( type == SVN_ROLLBACK ) {
|
|
|
+ _stprintf_s(szCommand, _T("/c svn update -r %d %s &pause"), dwSVNVersion, strSavePath.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ ShellExecute(NULL, _T("open"), _T("cmd"), szCommand, NULL, SW_SHOW);
|
|
|
+}
|
|
|
+
|
|
|
+void CSVNProc::Export(std::string strSVNAddress, std::string strSavePath, DWORD dwSVNVersion)
|
|
|
+{
|
|
|
+ SVNProcess(strSVNAddress, strSavePath, dwSVNVersion, SVN_EXPORT);
|
|
|
+}
|
|
|
+
|
|
|
+void CSVNProc::Checkout(std::string strSVNAddress, std::string strSavePath, DWORD dwSVNVersion)
|
|
|
+{
|
|
|
+ SVNProcess(strSVNAddress, strSavePath, dwSVNVersion, SVN_CHECKOUT);
|
|
|
+}
|
|
|
+
|
|
|
+void CSVNProc::Rollback(std::string strSVNAddress, std::string strSavePath, DWORD dwSVNVersion)
|
|
|
+{
|
|
|
+ SVNProcess(strSVNAddress, strSavePath, dwSVNVersion, SVN_ROLLBACK);
|
|
|
+}
|