OSDN Git Service

FormatPatch Finished
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Commands / Command.cpp
1 // TortoiseSVN - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2007-2008 - TortoiseSVN\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 "Command.h"\r
21 \r
22 #include "AboutCommand.h"\r
23 #include "CommitCommand.h"\r
24 #include "LogCommand.h"\r
25 \r
26 #include "CreateRepositoryCommand.h"\r
27 #include "CloneCommand.h"\r
28 #include "PrevDiffCommand.h"\r
29 #include "DiffCommand.h"\r
30 \r
31 #include "RenameCommand.h"\r
32 #include "RepoStatusCommand.h"\r
33 \r
34 #include "RevertCommand.h"\r
35 #include "RemoveCommand.h"\r
36 #include "PullCommand.h"\r
37 #include "FetchCommand.h"\r
38 #include "PushCommand.h"\r
39 #include "BranchCommand.h"\r
40 #include "TagCommand.h"\r
41 #include "MergeCommand.h"\r
42 #include "SwitchCommand.h"\r
43 #include "ExportCommand.h"\r
44 #include "AddCommand.h"\r
45 #include "IgnoreCommand.h"\r
46 #include "FormatPatchCommand.h"\r
47 \r
48 #if 0\r
49 \r
50 #include "BlameCommand.h"\r
51 #include "CatCommand.h"\r
52 #include "CheckoutCommand.h"\r
53 #include "CleanupCommand.h"\r
54 \r
55 #include "ConflictEditorCommand.h"\r
56 #include "CopyCommand.h"\r
57 #include "CrashCommand.h"\r
58 #include "CreatePatchCommand.h"\r
59 \r
60 #include "DelUnversionedCommand.h"\r
61 \r
62 #include "DropCopyAddCommand.h"\r
63 #include "DropCopyCommand.h"\r
64 #include "DropExportCommand.h"\r
65 #include "DropMoveCommand.h"\r
66 \r
67 #include "HelpCommand.h"\r
68 \r
69 #include "ImportCommand.h"\r
70 #include "LockCommand.h"\r
71 \r
72 \r
73 #include "MergeAllCommand.h"\r
74 #include "PasteCopyCommand.h"\r
75 #include "PasteMoveCommand.h"\r
76 \r
77 #include "PropertiesCommand.h"\r
78 #include "RebuildIconCacheCommand.h"\r
79 #include "RelocateCommand.h"\r
80 #include "RemoveCommand.h"\r
81 \r
82 #include "RepositoryBrowserCommand.h"\r
83 \r
84 #include "ResolveCommand.h"\r
85 #include "RevertCommand.h"\r
86 #include "RevisiongraphCommand.h"\r
87 #include "RTFMCommand.h"\r
88 #include "SettingsCommand.h"\r
89 #include "ShowCompareCommand.h"\r
90 \r
91 #include "UnIgnoreCommand.h"\r
92 #include "UnLockCommand.h"\r
93 #include "UpdateCheckCommand.h"\r
94 #include "UpdateCommand.h"\r
95 #include "UrlDiffCommand.h"\r
96 #endif\r
97 typedef enum\r
98 {\r
99         cmdAbout,\r
100         cmdAdd,\r
101         cmdBlame,\r
102         cmdBranch,\r
103         cmdCat,\r
104         cmdCheckout,\r
105         cmdCleanup,\r
106         cmdClone,\r
107         cmdCommit,\r
108         cmdConflictEditor,\r
109         cmdCopy,\r
110         cmdCrash,\r
111         cmdCreatePatch,\r
112         cmdDelUnversioned,\r
113         cmdDiff,\r
114         cmdDropCopy,\r
115         cmdDropCopyAdd,\r
116         cmdDropExport,\r
117         cmdDropMove,\r
118         cmdFetch,\r
119         cmdFormatPatch,\r
120         cmdExport,\r
121         cmdHelp,\r
122         cmdIgnore,\r
123         cmdImport,\r
124         cmdLock,\r
125         cmdLog,\r
126         cmdMerge,\r
127         cmdMergeAll,\r
128         cmdPasteCopy,\r
129         cmdPasteMove,\r
130         cmdPrevDiff,\r
131         cmdProperties,\r
132         cmdPull,\r
133         cmdPush,\r
134         cmdRTFM,\r
135         cmdRebuildIconCache,\r
136         cmdRelocate,\r
137         cmdRemove,\r
138         cmdRename,\r
139         cmdRepoBrowser,\r
140         cmdRepoCreate,\r
141         cmdRepoStatus,\r
142         cmdResolve,\r
143         cmdRevert,\r
144         cmdRevisionGraph,\r
145         cmdSettings,\r
146         cmdShowCompare,\r
147         cmdSwitch,\r
148         cmdTag,\r
149         cmdUnIgnore,\r
150         cmdUnlock,\r
151         cmdUpdate,\r
152         cmdUpdateCheck,\r
153         cmdUrlDiff,\r
154         \r
155 } TGitCommand;\r
156 \r
157 static const struct CommandInfo\r
158 {\r
159         TGitCommand command;\r
160         LPCTSTR pCommandName;\r
161 } commandInfo[] = \r
162 {\r
163         {       cmdAbout,                       _T("about")                             },\r
164         {       cmdAdd,                         _T("add")                               },\r
165         {       cmdBlame,                       _T("blame")                             },\r
166         {       cmdBranch,                      _T("branch")                    },\r
167         {       cmdCat,                         _T("cat")                               },\r
168         {       cmdCheckout,            _T("checkout")                  },\r
169         {       cmdCleanup,                     _T("cleanup")                   },\r
170         {       cmdClone,                       _T("clone")                             },\r
171         {       cmdCommit,                      _T("commit")                    },\r
172         {       cmdConflictEditor,      _T("conflicteditor")    },\r
173         {       cmdCopy,                        _T("copy")                              },\r
174         {       cmdCrash,                       _T("crash")                             },\r
175         {       cmdCreatePatch,         _T("createpatch")               },\r
176         {       cmdDelUnversioned,      _T("delunversioned")    },\r
177         {       cmdDiff,                        _T("diff")                              },\r
178         {       cmdDropCopy,            _T("dropcopy")                  },\r
179         {       cmdDropCopyAdd,         _T("dropcopyadd")               },\r
180         {       cmdDropExport,          _T("dropexport")                },\r
181         {       cmdDropMove,            _T("dropmove")                  },\r
182         {       cmdFetch,                       _T("fetch")                             },\r
183         {       cmdFormatPatch,         _T("formatpatch")               },\r
184         {       cmdExport,                      _T("export")                    },\r
185         {       cmdHelp,                        _T("help")                              },\r
186         {       cmdIgnore,                      _T("ignore")                    },\r
187         {       cmdImport,                      _T("import")                    },\r
188         {       cmdLock,                        _T("lock")                              },\r
189         {       cmdLog,                         _T("log")                               },\r
190         {       cmdMerge,                       _T("merge")                             },\r
191         {       cmdMergeAll,            _T("mergeall")                  },\r
192         {       cmdPasteCopy,           _T("pastecopy")                 },\r
193         {       cmdPasteMove,           _T("pastemove")                 },\r
194         {       cmdPrevDiff,            _T("prevdiff")                  },\r
195         {       cmdProperties,          _T("properties")                },\r
196         {       cmdPull,                        _T("pull")                              },\r
197         {       cmdPush,                        _T("push")                              },\r
198         {       cmdRTFM,                        _T("rtfm")                              },\r
199         {       cmdRebuildIconCache,_T("rebuildiconcache")      },\r
200         {       cmdRelocate,            _T("relocate")                  },\r
201         {       cmdRemove,                      _T("remove")                    },\r
202         {       cmdRename,                      _T("rename")                    },\r
203         {       cmdRepoBrowser,         _T("repobrowser")               },\r
204         {       cmdRepoCreate,          _T("repocreate")                },\r
205         {       cmdRepoStatus,          _T("repostatus")                },\r
206         {       cmdResolve,                     _T("resolve")                   },\r
207         {       cmdRevert,                      _T("revert")                    },\r
208         {       cmdRevisionGraph,       _T("revisiongraph")             },\r
209         {       cmdSettings,            _T("settings")                  },\r
210         {       cmdShowCompare,         _T("showcompare")               },\r
211         {       cmdSwitch,                      _T("switch")                    },\r
212         {       cmdTag,                         _T("tag")                               },\r
213         {       cmdUnIgnore,            _T("unignore")                  },\r
214         {       cmdUnlock,                      _T("unlock")                    },\r
215         {       cmdUpdate,                      _T("update")                    },\r
216         {       cmdUpdateCheck,         _T("updatecheck")               },\r
217         {       cmdUrlDiff,                     _T("urldiff")                   },\r
218 };\r
219 \r
220 \r
221 \r
222 \r
223 Command * CommandServer::GetCommand(const CString& sCmd)\r
224 {\r
225         // Look up the command\r
226         TGitCommand command = cmdAbout;         // Something harmless as a default\r
227         for (int nCommand = 0; nCommand < (sizeof(commandInfo)/sizeof(commandInfo[0])); nCommand++)\r
228         {\r
229                 if (sCmd.Compare(commandInfo[nCommand].pCommandName) == 0)\r
230                 {\r
231                         // We've found the command\r
232                         command = commandInfo[nCommand].command;\r
233                         // If this fires, you've let the enum get out of sync with the commandInfo array\r
234                         ASSERT((int)command == nCommand);\r
235                         break;\r
236                 }\r
237         }\r
238 \r
239 \r
240 \r
241         switch (command)\r
242         {\r
243         case cmdAbout:\r
244                 return new AboutCommand;        \r
245         case cmdCommit:\r
246                 return new CommitCommand;\r
247         case cmdLog:\r
248                 return new LogCommand;\r
249         case cmdRepoCreate:\r
250                 return new CreateRepositoryCommand;\r
251         case cmdClone:\r
252                 return new CloneCommand;\r
253         case cmdPrevDiff:\r
254                 return new PrevDiffCommand;\r
255         case cmdDiff:\r
256                 return new DiffCommand;\r
257         case cmdRename:\r
258                 return new RenameCommand;\r
259         case cmdRepoStatus:\r
260                 return new RepoStatusCommand;\r
261         case cmdRemove:\r
262                 return new RemoveCommand;\r
263         case cmdRevert:\r
264                 return new RevertCommand;\r
265         case cmdPull:\r
266                 return new PullCommand;\r
267         case cmdFetch:\r
268                 return new FetchCommand;\r
269         case cmdPush:\r
270                 return new PushCommand;\r
271         case cmdBranch:\r
272                 return new BranchCommand;\r
273         case cmdTag:\r
274                 return new TagCommand;\r
275         case cmdMerge:\r
276                 return new MergeCommand;\r
277         case cmdSwitch:\r
278                 return new SwitchCommand;\r
279         case cmdExport:\r
280                 return new ExportCommand;\r
281         case cmdAdd:\r
282                 return new AddCommand;\r
283         case cmdIgnore:\r
284                 return new IgnoreCommand;\r
285         case cmdFormatPatch:\r
286                 return new FormatPatchCommand;\r
287 \r
288 #if 0\r
289 \r
290         case cmdBlame:\r
291                 return new BlameCommand;\r
292         case cmdCat:\r
293                 return new CatCommand;\r
294         case cmdCheckout:\r
295                 return new CheckoutCommand;\r
296         case cmdCleanup:\r
297                 return new CleanupCommand;\r
298 \r
299         case cmdConflictEditor:\r
300                 return new ConflictEditorCommand;\r
301         case cmdCopy:\r
302                 return new CopyCommand;\r
303         case cmdCrash:\r
304                 return new CrashCommand;\r
305         case cmdCreatePatch:\r
306                 return new CreatePatchCommand;\r
307         case cmdDelUnversioned:\r
308                 return new DelUnversionedCommand;\r
309 \r
310         case cmdDropCopy:\r
311                 return new DropCopyCommand;\r
312         case cmdDropCopyAdd:\r
313                 return new DropCopyAddCommand;\r
314         case cmdDropExport:\r
315                 return new DropExportCommand;\r
316         case cmdDropMove:\r
317                 return new DropMoveCommand;\r
318 \r
319         case cmdHelp:\r
320                 return new HelpCommand;\r
321 \r
322         case cmdImport:\r
323                 return new ImportCommand;\r
324         case cmdLock:\r
325                 return new LockCommand;\r
326 \r
327         case cmdMerge:\r
328                 return new MergeCommand;\r
329         case cmdMergeAll:\r
330                 return new MergeAllCommand;\r
331         case cmdPasteCopy:\r
332                 return new PasteCopyCommand;\r
333         case cmdPasteMove:\r
334                 return new PasteMoveCommand;\r
335         case cmdPrevDiff:\r
336                 return new PrevDiffCommand;\r
337         case cmdProperties:\r
338                 return new PropertiesCommand;\r
339         case cmdRTFM:\r
340                 return new RTFMCommand;\r
341         case cmdRebuildIconCache:\r
342                 return new RebuildIconCacheCommand;\r
343         case cmdRelocate:\r
344                 return new RelocateCommand;\r
345         case cmdRemove:\r
346                 return new RemoveCommand;\r
347 \r
348         case cmdRepoBrowser:\r
349                 return new RepositoryBrowserCommand;\r
350 \r
351 \r
352         case cmdResolve:\r
353                 return new ResolveCommand;\r
354 \r
355         case cmdRevisionGraph:\r
356                 return new RevisionGraphCommand;\r
357         case cmdSettings:\r
358                 return new SettingsCommand;\r
359         case cmdShowCompare:\r
360                 return new ShowCompareCommand;\r
361 \r
362         case cmdUnIgnore:\r
363                 return new UnIgnoreCommand;\r
364         case cmdUnlock:\r
365                 return new UnLockCommand;\r
366         case cmdUpdate:\r
367                 return new UpdateCommand;\r
368         case cmdUpdateCheck:\r
369                 return new UpdateCheckCommand;\r
370         case cmdUrlDiff:\r
371                 return new UrlDiffCommand;\r
372 #endif\r
373         default:\r
374                 CMessageBox::Show(hWndExplorer, _T("Have not implemented"), _T("TortoiseGit"), MB_ICONERROR);\r
375                 return new AboutCommand;\r
376         }\r
377 }\r