OSDN Git Service

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