OSDN Git Service

Add Patch Import Command (git am)
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Commands / MergeCommand.cpp
index 8fdbd38..38bf467 100644 (file)
 //\r
 #include "StdAfx.h"\r
 #include "MergeCommand.h"\r
-\r
-#include "MergeWizard.h"\r
-#include "MergeWizardStart.h"\r
-#include "SVNProgressDlg.h"\r
+#include "git.h"\r
+#include "MergeDlg.h"\r
 #include "MessageBox.h"\r
 \r
 bool MergeCommand::Execute()\r
 {\r
-       DWORD nMergeWizardMode =\r
-               (DWORD)CRegDWORD(_T("Software\\TortoiseSVN\\MergeWizardMode"), 0);\r
-\r
-       if (parser.HasVal(_T("fromurl")))\r
-       {\r
-               // fromurl means merging a revision range\r
-               nMergeWizardMode = 2;\r
-       }\r
-       if (parser.HasVal(_T("fromurl2")))\r
+       CMergeDlg dlg;\r
+       if(dlg.DoModal()==IDOK)\r
        {\r
-               // fromurl2 means merging a tree\r
-               nMergeWizardMode = 1;\r
-       }\r
+               CString cmd;\r
+               CString noff;\r
+               CString squash;\r
 \r
-       CMergeWizard wizard(IDS_PROGRS_CMDINFO, NULL, nMergeWizardMode);\r
-       wizard.wcPath = cmdLinePath;\r
+               if(dlg.m_bNoFF)\r
+                       noff=_T("--no-ff");\r
 \r
-       if (parser.HasVal(_T("fromurl")))\r
-       {\r
-               wizard.URL1 = parser.GetVal(_T("fromurl"));\r
-               wizard.url = parser.GetVal(_T("fromurl"));\r
-               wizard.revRangeArray.FromListString(parser.GetVal(_T("revrange")));\r
-       }\r
-       if (parser.HasVal(_T("fromurl2")))\r
-       {\r
-               wizard.URL2 = parser.GetVal(_T("tourl"));\r
-               wizard.startRev = SVNRev(parser.GetVal(_T("fromrev")));\r
-               wizard.endRev = SVNRev(parser.GetVal(_T("torev")));\r
-       }\r
-       if (wizard.DoModal() == ID_WIZFINISH)\r
-       {\r
-               CSVNProgressDlg progDlg;\r
-               progDlg.SetCommand(CSVNProgressDlg::SVNProgress_Merge);\r
-               int options = wizard.m_bIgnoreAncestry ? ProgOptIgnoreAncestry : 0;\r
-               options |= wizard.m_bRecordOnly ? ProgOptRecordOnly : 0;\r
-               progDlg.SetOptions(options);\r
-               progDlg.SetPathList(CTSVNPathList(wizard.wcPath));\r
-               progDlg.SetUrl(wizard.URL1);\r
-               progDlg.SetSecondUrl(wizard.URL2);\r
-               switch (wizard.nRevRangeMerge)\r
-               {\r
-               case MERGEWIZARD_REVRANGE:\r
-                       {\r
-                               if (wizard.revRangeArray.GetCount())\r
-                               {\r
-                                       wizard.revRangeArray.AdjustForMerge(!!wizard.bReverseMerge);\r
-                                       progDlg.SetRevisionRanges(wizard.revRangeArray);\r
-                               }\r
-                               else\r
-                               {\r
-                                       SVNRevRangeArray tempRevArray;\r
-                                       tempRevArray.AddRevRange(1, SVNRev::REV_HEAD);\r
-                                       progDlg.SetRevisionRanges(tempRevArray);\r
-                               }\r
-                       }\r
-                       break;\r
-               case MERGEWIZARD_TREE:\r
-                       {\r
-                               progDlg.SetRevision(wizard.startRev);\r
-                               progDlg.SetRevisionEnd(wizard.endRev);\r
-                               if (wizard.URL1.Compare(wizard.URL2) == 0)\r
-                               {\r
-                                       SVNRevRangeArray tempRevArray;\r
-                                       tempRevArray.AdjustForMerge(!!wizard.bReverseMerge);\r
-                                       tempRevArray.AddRevRange(wizard.startRev, wizard.endRev);\r
-                                       progDlg.SetRevisionRanges(tempRevArray);\r
-                               }\r
-                       }\r
-                       break;\r
-               case MERGEWIZARD_REINTEGRATE:\r
-                       {\r
-                               progDlg.SetCommand(CSVNProgressDlg::SVNProgress_MergeReintegrate);\r
-                       }\r
-                       break;\r
-               }\r
-               progDlg.SetDepth(wizard.m_depth);\r
-               progDlg.SetDiffOptions(SVN::GetOptionsString(wizard.m_bIgnoreEOL, wizard.m_IgnoreSpaces));\r
-               progDlg.DoModal();\r
-               return !progDlg.DidErrorsOccur();\r
+               if(dlg.m_bSquash)\r
+                       squash=_T("--squash");\r
+\r
+               cmd.Format(_T("git.exe merge %s %s %s"),\r
+                       noff,\r
+                       squash,\r
+                       dlg.m_Base);\r
+\r
+               CString output;\r
+               g_Git.Run(cmd,&output);\r
+\r
+               CMessageBox::Show(NULL,output,_T("TortoiseGit"),MB_OK);\r
        }\r
        return false;\r
 }
\ No newline at end of file