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