Fixed issue #444: Crash rebase dialog when press ESC and move split bar
[TortoiseGit.git] / src / TortoiseShell / Documentation.h
blob012385de244417989b96d09dedc0ad8ac14d44e6
1 /**
2 * \mainpage TortoiseSVN
3 * \section introduction Introduction
4 * TortoiseSVN is a windows shell integration for the Subversion
5 * source versioning system. Subversion is the successor
6 * of the famous CVS. See http://subversion.tigris.org for
7 * more information on Subversion.
9 * TortoiseSVN was inspired by the similar program TortoiseCVS.
11 * With TortoiseSVN you can use Subversion directly from the
12 * Windows Explorer. The Subversion status of your project
13 * files are clearly visible and all commands Subversion
14 * provides are accessible directly from the Explorer Context-Menu
15 * (right-click).
17 * \section Requirements Requirements
18 * TortoiseSVN runs under Win2k and later.
19 * You also need at least Internet Explorer Version 5 or higher.
21 * \section Installation Installation
22 * TortoiseSVN comes with an installer. Just run the installer and follow
23 * the simple steps of the wizard. You may need to restart your computer
24 * to get TortoiseSVN to work, depending on your registry settings. If you're
25 * not sure, fire up the explorer, right click on a folder and check if
26 * the TortoiseSVN menus are there.
28 * \section Sourcecode Source code
29 * The full source code of TortoiseSVN is available at http://tortoisesvn.net.
31 * For information on how to build TortoiseSVN from the source code see \ref build
33 * \section Internals Internals
34 * TortoiseSVN is a shell extension. All commands and dialogs are started by
35 * using the shell context menu on files and folders.
37 * The shell extension part is separate from the main application to reduce
38 * the memory use in the shell. The shell extension only does what's absolutely
39 * necessary and then creates a new process of the main application to do the
40 * real work. The main application is TortoiseProc. The shell passes all the
41 * information to TortoiseProc via command line switches and temporary files.
43 * To avoid loading the whole TortoiseShell dll if it isn't really wanted (e.g.,
44 * in applications other than the explorer itself), there's a stub dll which
45 * is registered in the shell as the extension. That stub dll then loads the
46 * TortoiseShell dll if required.
49 /**
50 * \page licensesvn Subversion license
51 * <H1>Subversion License</H1>
52 * ================================================================
53 * Copyright (c) 2004 CollabNet. All rights reserved.
55 * Redistribution and use in source and binary forms, with or without
56 * modification, are permitted provided that the following conditions are
57 * met:
59 * 1. Redistributions of source code must retain the above copyright
60 * notice, this list of conditions and the following disclaimer.
62 * 2. Redistributions in binary form must reproduce the above copyright
63 * notice, this list of conditions and the following disclaimer in the
64 * documentation and/or other materials provided with the distribution.
66 * 3. The end-user documentation included with the redistribution, if
67 * any, must include the following acknowledgment: "This product includes
68 * software developed by CollabNet (http://www.Collab.Net/)."
69 * Alternately, this acknowledgment may appear in the software itself, if
70 * and wherever such third-party acknowledgments normally appear.
72 * 4. The hosted project names must not be used to endorse or promote
73 * products derived from this software without prior written
74 * permission. For written permission, please contact info@collab.net.
76 * 5. Products derived from this software may not use the "Tigris" name
77 * nor may "Tigris" appear in their names without prior written
78 * permission of CollabNet.
80 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
81 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
82 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
83 * IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
84 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
85 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
86 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
87 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
88 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
89 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
90 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
92 * ====================================================================
94 * This software consists of voluntary contributions made by many
95 * individuals on behalf of CollabNet.
99 /**
100 * \page license TortoiseSVN license
101 * <H1>GNU General Public License</H1>
102 * also available at http://www.gnu.org/licenses/gpl.html
103 * \n
104 * Version 2, June 1991
105 * \n
106 * Copyright (C) 1989, 1991 Free Software Foundation, Inc.
107 * \n
108 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
109 * \n
110 * Everyone is permitted to copy and distribute verbatim copies
111 * of this license document, but changing it is not allowed.
112 * \n
113 * <H2>Preamble</H2>
114 * The licenses for most software are designed to take away your
115 * freedom to share and change it. By contrast, the GNU General
116 * Public License is intended to guarantee your freedom to share and
117 * change free software--to make sure the software is free for all its
118 * users. This General Public License applies to most of the Free
119 * Software Foundation's software and to any other program whose authors
120 * commit to using it. (Some other Free Software Foundation software is
121 * covered by the GNU Library General Public License instead.) You can
122 * apply it to your programs, too.
123 * \n
124 * When we speak of free software, we are referring to freedom, not price.
125 * Our General Public Licenses are designed to make sure that you have the
126 * freedom to distribute copies of free software (and charge for this service
127 * if you wish), that you receive source code or can get it if you want it,
128 * that you can change the software or use pieces of it in new free programs;
129 * and that you know you can do these things.
130 * \n
131 * To protect your rights, we need to make restrictions that forbid anyone to
132 * deny you these rights or to ask you to surrender the rights. These restrictions
133 * translate to certain responsibilities for you if you distribute copies
134 * of the software, or if you modify it.
135 * \n
136 * For example, if you distribute copies of such a program, whether gratis or for
137 * a fee, you must give the recipients all the rights that you have. You must make
138 * sure that they, too, receive or can get the source code. And you must show them
139 * these terms so they know their rights.
140 * \n
141 * We protect your rights with two steps: (1) copyright the software, and (2) offer
142 * you this license which gives you legal permission to copy, distribute and/or
143 * modify the software.
144 * \n
145 * Also, for each author's protection and ours, we want to make certain that
146 * everyone understands that there is no warranty for this free software. If
147 * the software is modified by someone else and passed on, we want its recipients
148 * to know that what they have is not the original, so that any problems introduced
149 * by others will not reflect on the original authors' reputations.
150 * \n
151 * Finally, any free program is threatened constantly by software patents. We wish
152 * to avoid the danger that redistributors of a free program will individually
153 * obtain patent licenses, in effect making the program proprietary. To prevent
154 * this, we have made it clear that any patent must be licensed for everyone's
155 * free use or not licensed at all.
156 * \n
157 * The precise terms and conditions for copying, distribution and modification follow.
159 * <H1>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</H1>
160 * -# This License applies to any program or other work which contains a notice
161 * placed by the copyright holder saying it may be distributed under the terms of
162 * this General Public License. The "Program", below, refers to any such program
163 * or work, and a "work based on the Program" means either the Program or any
164 * derivative work under copyright law: that is to say, a work containing the
165 * Program or a portion of it, either verbatim or with modifications and/or
166 * translated into another language. (Hereinafter, translation is included without
167 * limitation in the term "modification".) Each licensee is addressed as "you".
168 * \n
169 * Activities other than copying, distribution and modification are not covered
170 * by this License; they are outside its scope. The act of running the Program
171 * is not restricted, and the output from the Program is covered only if its
172 * contents constitute a work based on the Program (independent of having been
173 * made by running the Program). Whether that is true depends on what the Program does.
174 * -# You may copy and distribute verbatim copies of the Program's source code
175 * as you receive it, in any medium, provided that you conspicuously and
176 * appropriately publish on each copy an appropriate copyright notice and
177 * disclaimer of warranty; keep intact all the notices that refer to this
178 * License and to the absence of any warranty; and give any other recipients
179 * of the Program a copy of this License along with the Program.
180 * \n
181 * You may charge a fee for the physical act of transferring a copy, and you
182 * may at your option offer warranty protection in exchange for a fee.
183 * -# You may modify your copy or copies of the Program or any portion of it,
184 * thus forming a work based on the Program, and copy and distribute such
185 * modifications or work under the terms of Section 1 above, provided that you
186 * also meet all of these conditions:
187 * - You must cause the modified files to carry prominent notices stating
188 * that you changed the files and the date of any change.
189 * - You must cause any work that you distribute or publish, that in whole
190 * or in part contains or is derived from the Program or any part thereof,
191 * to be licensed as a whole at no charge to all third parties under the terms
192 * of this License.
193 * - If the modified program normally reads commands interactively when run,
194 * you must cause it, when started running for such interactive use in the most
195 * ordinary way, to print or display an announcement including an appropriate
196 * copyright notice and a notice that there is no warranty (or else, saying that
197 * you provide a warranty) and that users may redistribute the program under these
198 * conditions, and telling the user how to view a copy of this License. (Exception:
199 * if the Program itself is interactive but does not normally print such an
200 * announcement, your work based on the Program is not required to print an
201 * announcement.)
203 * These requirements apply to the modified work as a whole. If identifiable
204 * sections of that work are not derived from the Program, and can be reasonably
205 * considered independent and separate works in themselves, then this License,
206 * and its terms, do not apply to those sections when you distribute them as
207 * separate works. But when you distribute the same sections as part of a whole
208 * which is a work based on the Program, the distribution of the whole must be
209 * on the terms of this License, whose permissions for other licensees extend
210 * to the entire whole, and thus to each and every part regardless of who wrote it.
211 * \n
212 * Thus, it is not the intent of this section to claim rights or contest your
213 * rights to work written entirely by you; rather, the intent is to exercise
214 * the right to control the distribution of derivative or collective works
215 * based on the Program.
216 * \n
217 * In addition, mere aggregation of another work not based on the Program with
218 * the Program (or with a work based on the Program) on a volume of a storage
219 * or distribution medium does not bring the other work under the scope of
220 * this License.
221 * -# You may copy and distribute the Program (or a work based on it, under Section 2)
222 * in object code or executable form under the terms of Sections 1 and 2 above
223 * provided that you also do one of the following:
224 * - Accompany it with the complete corresponding machine-readable source code,
225 * which must be distributed under the terms of Sections 1 and 2 above on a
226 * medium customarily used for software interchange; or,
227 * - Accompany it with a written offer, valid for at least three years,
228 * to give any third party, for a charge no more than your cost of physically
229 * performing source distribution, a complete machine-readable copy of the
230 * corresponding source code, to be distributed under the terms of Sections 1
231 * and 2 above on a medium customarily used for software interchange; or,
232 * - Accompany it with the information you received as to the offer to distribute
233 * corresponding source code. (This alternative is allowed only for noncommercial
234 * distribution and only if you received the program in object code or executable
235 * form with such an offer, in accord with Subsection b above.)
237 * The source code for a work means the preferred form of the work for making
238 * modifications to it. For an executable work, complete source code means all
239 * the source code for all modules it contains, plus any associated interface
240 * definition files, plus the scripts used to control compilation and installation
241 * of the executable. However, as a special exception, the source code distributed
242 * need not include anything that is normally distributed (in either source or
243 * binary form) with the major components (compiler, kernel, and so on) of the
244 * operating system on which the executable runs, unless that component itself
245 * accompanies the executable.
246 * \n
247 * If distribution of executable or object code is made by offering access to
248 * copy from a designated place, then offering equivalent access to copy the
249 * source code from the same place counts as distribution of the source code,
250 * even though third parties are not compelled to copy the source along with
251 * the object code.
252 * -# You may not copy, modify, sublicense, or distribute the Program except
253 * as expressly provided under this License. Any attempt otherwise to copy,
254 * modify, sublicense or distribute the Program is void, and will automatically
255 * terminate your rights under this License. However, parties who have received
256 * copies, or rights, from you under this License will not have their licenses
257 * terminated so long as such parties remain in full compliance.
258 * -# You are not required to accept this License, since you have not signed it.
259 * However, nothing else grants you permission to modify or distribute the Program
260 * or its derivative works. These actions are prohibited by law if you do not
261 * accept this License. Therefore, by modifying or distributing the Program
262 * (or any work based on the Program), you indicate your acceptance of this
263 * License to do so, and all its terms and conditions for copying, distributing
264 * or modifying the Program or works based on it.
265 * -# Each time you redistribute the Program (or any work based on the Program),
266 * the recipient automatically receives a license from the original licensor to copy,
267 * distribute or modify the Program subject to these terms and conditions. You may
268 * not impose any further restrictions on the recipients' exercise of the rights
269 * granted herein. You are not responsible for enforcing compliance by third
270 * parties to this License.
271 * -# If, as a consequence of a court judgment or allegation of patent infringement
272 * or for any other reason (not limited to patent issues), conditions are imposed
273 * on you (whether by court order, agreement or otherwise) that contradict the
274 * conditions of this License, they do not excuse you from the conditions of this
275 * License. If you cannot distribute so as to satisfy simultaneously your obligations
276 * under this License and any other pertinent obligations, then as a consequence you
277 * may not distribute the Program at all. For example, if a patent license would not
278 * permit royalty-free redistribution of the Program by all those who receive copies
279 * directly or indirectly through you, then the only way you could satisfy both it and
280 * this License would be to refrain entirely from distribution of the Program.
281 * \n
282 * If any portion of this section is held invalid or unenforceable under any particular
283 * circumstance, the balance of the section is intended to apply and the section as a
284 * whole is intended to apply in other circumstances.
285 * \n
286 * It is not the purpose of this section to induce you to infringe any patents or other
287 * property right claims or to contest validity of any such claims; this section has
288 * the sole purpose of protecting the integrity of the free software distribution system,
289 * which is implemented by public license practices. Many people have made generous
290 * contributions to the wide range of software distributed through that system in reliance
291 * on consistent application of that system; it is up to the author/donor to decide if he
292 * or she is willing to distribute software through any other system and a licensee cannot
293 * impose that choice.
294 * \n
295 * This section is intended to make thoroughly clear what is believed to be a consequence
296 * of the rest of this License.
297 * -# If the distribution and/or use of the Program is restricted in certain countries
298 * either by patents or by copyrighted interfaces, the original copyright holder who
299 * places the Program under this License may add an explicit geographical distribution
300 * limitation excluding those countries, so that distribution is permitted only in or
301 * among countries not thus excluded. In such case, this License incorporates the
302 * limitation as if written in the body of this License.
303 * -# The Free Software Foundation may publish revised and/or new versions of the
304 * General Public License from time to time. Such new versions will be similar in
305 * spirit to the present version, but may differ in detail to address new problems
306 * or concerns.
307 * \n
308 * Each version is given a distinguishing version number. If the Program specifies
309 * a version number of this License which applies to it and "any later version",
310 * you have the option of following the terms and conditions either of that version
311 * or of any later version published by the Free Software Foundation. If the Program
312 * does not specify a version number of this License, you may choose any version
313 * ever published by the Free Software Foundation.
314 * -# If you wish to incorporate parts of the Program into other free programs whose
315 * distribution conditions are different, write to the author to ask for permission.
316 * For software which is copyrighted by the Free Software Foundation, write to the
317 * Free Software Foundation; we sometimes make exceptions for this. Our decision
318 * will be guided by the two goals of preserving the free status of all derivatives
319 * of our free software and of promoting the sharing and reuse of software generally.
320 * <H2>NO WARRANTY</H2>
321 * -# BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
322 * PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
323 * IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
324 * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED
325 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
326 * THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
327 * THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
328 * OR CORRECTION.
329 * -# IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
330 * COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM
331 * AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
332 * INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
333 * PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE
334 * OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
335 * WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
336 * THE POSSIBILITY OF SUCH DAMAGES.
341 * \defgroup TortoiseShell TortoiseShell
342 * Windows-Shell integration of TortoiseSVN.
343 * This project links to a COM object implementing all required
344 * interfaces a shell extension needs.
345 * The shell extension draws the overlay icons, provides the right-click menu,
346 * the property sheet and the SVN column (in Win2k and later).
350 * \defgroup TortoiseProc TortoiseProc
351 * Main program of TortoiseSVN. TortoiseShell calls this program
352 * to execute the required commands, the commands are specified in
353 * the command line.
357 * \defgroup TortoiseMerge TortoiseMerge
358 * A separate Diff/Merge program, shipped with TortoiseSVN.
362 * \defgroup TortoiseBlame TortoiseBlame
363 * A viewer for Subversion blame information.
367 * \defgroup TortoiseIDiff TortoiseIDiff
368 * An image diff viewer.
372 * \defgroup TortoiseUDiff TortoiseUDiff
373 * An unified diff viewer.
377 * \defgroup ResText ResText
378 * An utility to extract resource strings from executable files and apply
379 * translated strings back to them. Used for translating.
383 * \defgroup SubWCRev SubWCRev
384 * A tool to get information about a Subversion working copy.
388 * \defgroup Utils Utils
389 * Utility classes and functions not specific to TortoiseSVN, i.e. they
390 * could be used in other programs too.
394 * \defgroup SVN SVN
395 * Wrappers for the Subversion API.
399 * \defgroup TSVNCache TSVNCache
400 * Cache for Subversion status of files and folders.