//\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