OSDN Git Service

7a08704a6f85da6d240e786e21017933daf2d464
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Commands / SVNRebaseCommand.cpp
1 // TortoiseGit - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2007-2008 - TortoiseGit\r
4 \r
5 // This program is free software; you can redistribute it and/or\r
6 // modify it under the terms of the GNU General Public License\r
7 // as published by the Free Software Foundation; either version 2\r
8 // of the License, or (at your option) any later version.\r
9 \r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 \r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, write to the Free Software Foundation,\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
18 //\r
19 #include "StdAfx.h"\r
20 #include "SVNRebaseCommand.h"\r
21 \r
22 #include "SysProgressDlg.h"\r
23 #include "ProgressDlg.h"\r
24 #include "MessageBox.h"\r
25 #include "RenameDlg.h"\r
26 #include "Git.h"\r
27 #include "ShellUpdater.h"\r
28 #include "rebasedlg.h"\r
29 \r
30 bool SVNRebaseCommand::Execute()\r
31 {\r
32         bool bRet =false;\r
33         \r
34         if(!g_Git.CheckCleanWorkTree())\r
35         {\r
36                 if(CMessageBox::Show(NULL,      IDS_ERROR_NOCLEAN_STASH,IDS_APPNAME,MB_YESNO|MB_ICONINFORMATION)==IDYES)\r
37                 {\r
38                         CString cmd,out;\r
39                         cmd=_T("git.exe stash");\r
40                         if(g_Git.Run(cmd,&out,CP_ACP))\r
41                         {\r
42                                 CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK);\r
43                                 return false;\r
44                         }\r
45 \r
46                 }else\r
47                 {\r
48                         return false;\r
49                 }\r
50         }\r
51 \r
52         CRebaseDlg dlg;\r
53         \r
54         dlg.m_PreCmd=_T("git.exe svn fetch");\r
55 \r
56         CString cmd,out;\r
57         cmd = _T("git.exe config svn-remote.svn.fetch");\r
58 \r
59         if(!g_Git.Run(cmd,&out,CP_ACP))\r
60         {\r
61                 if(out.Left(5) == _T(":refs"))\r
62                         out=out.Mid(6);\r
63                 int start = 0;\r
64                 out=out.Tokenize(_T("\n"),start);\r
65         }\r
66 \r
67         dlg.m_Upstream=out;\r
68 \r
69         if(dlg.DoModal() == IDOK)\r
70         {\r
71                 bRet=true;\r
72         }\r
73         return bRet;\r
74 }\r