1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <!DOCTYPE chapter SYSTEM "../../dtd/dblite.dtd">
\r
3 <chapter id="tsvn-introduction">
\r
4 <title>Introduction</title>
\r
5 <?dbhh topicname="HIDD_ABOUT"?>
\r
8 <primary>version control</primary>
\r
11 Version control is the art of managing changes to
\r
12 information. It has long been a critical tool for programmers,
\r
13 who typically spend their time making small changes to software
\r
14 and then undoing or checking some of those changes the next day.
\r
15 Imagine a team of such developers working concurrently - and perhaps even
\r
16 simultaneously on the very same files! - and you can see why
\r
17 a good system is needed to <emphasis>manage the potential chaos</emphasis>.
\r
20 <!-- ================================================================= -->
\r
21 <!-- ======================== SECTION 1 ============================== -->
\r
22 <!-- ================================================================= -->
\r
23 <sect1 id="tsvn-intro-about">
\r
24 <title>What is TortoiseGit?</title>
\r
26 TortoiseGit is a free open-source client for the
\r
27 <firstterm>Git</firstterm> version control system.
\r
28 That is, TortoiseGit manages files over time.
\r
29 Files are stored in a local <firstterm>repository</firstterm>.
\r
30 The repository is much like an ordinary file server, except that it
\r
31 remembers every change ever made to your files and directories.
\r
32 This allows you to recover older versions of your files and examine
\r
33 the history of how and when your data changed, and who changed it.
\r
34 This is why many people think of Git and version control
\r
35 systems in general as a sort of <quote>time machine</quote>.
\r
38 Some version control systems are also software configuration
\r
39 management (SCM) systems. These systems are specifically
\r
40 tailored to manage trees of source code, and have many features
\r
41 that are specific to software development - such as natively
\r
42 understanding programming languages, or supplying tools for
\r
43 building software. Git, however, is not one of these
\r
44 systems; it is a general system that can be used to manage
\r
45 <emphasis>any</emphasis> collection of files, including
\r
49 Git is an <emphasis>open source, distributed version control system</emphasis>
\r
50 designed to handle everything from small to very large projects with speed and
\r
51 efficiency. Every Git clone is a full-fledged repository with complete history
\r
52 and full revision tracking capabilities, not dependent on network access or
\r
53 a central server. Branching and merging are fast and easy to do.
\r
56 <!-- ================================================================= -->
\r
57 <!-- ======================== SECTION 2 ============================== -->
\r
58 <!-- ================================================================= -->
\r
59 <sect1 id="tsvn-intro-history">
\r
60 <title>TortoiseGit's History</title>
\r
62 In 2008, Frank Li found that Git was a very good version
\r
63 control system, but it lacked a good GUI client. The idea for a
\r
64 Git client as a Windows shell integration was inspired by
\r
65 the similar client for SVN named TortoiseSVN.
\r
68 Frank studied the source code of TortoiseSVN and used it as a base for
\r
69 TortoiseGit. He then started the project, registered the project
\r
70 at code.google.com and put the source code online.
\r
73 As Git became more stable it attracted more and more users
\r
74 who also started using TortoiseGit as their Git client.
\r
77 <!-- ================================================================= -->
\r
78 <!-- ======================== SECTION 3 ============================== -->
\r
79 <!-- ================================================================= -->
\r
80 <sect1 id="tsvn-intro-features">
\r
81 <title>TortoiseGit's Features</title>
\r
83 What makes TortoiseGit such a good Git client?
\r
84 Here's a short list of features.
\r
88 <term>Shell integration</term>
\r
91 <primary>Windows shell</primary>
\r
94 <primary>explorer</primary>
\r
97 TortoiseGit integrates seamlessly into the Windows shell
\r
98 (i.e. the explorer). This means you can keep working
\r
99 with the tools you're already familiar with. And you
\r
100 do not have to change into a different application
\r
101 each time you need functions of the version control!
\r
104 And you are not even forced to use the Windows Explorer.
\r
105 TortoiseGit's context menus work in many other file managers,
\r
106 and in the File/Open dialog which is common to most
\r
107 standard Windows applications.
\r
108 You should, however, bear in mind that TortoiseGit
\r
109 is intentionally developed as extension for the Windows
\r
110 Explorer. Thus it is possible that in other applications
\r
111 the integration is not as complete and e.g. the icon
\r
112 overlays may not be shown.
\r
117 <term>Icon overlays</term>
\r
120 The status of every versioned file and folder is
\r
121 indicated by small overlay icons. That way you can see
\r
122 right away what the status of your working copy is.
\r
127 <term>Easy access to Git commands</term>
\r
130 All Git commands are available from the explorer
\r
131 context menu. TortoiseGit adds its own submenu there.
\r
137 Since TortoiseGit is a Git client, we would also like to show you
\r
138 some of the features of Git itself:
\r
142 <term>Distributed version control</term>
\r
145 Like most other modern version control systems, Git
\r
146 gives each developer a local copy of the entire development
\r
147 history, and changes are copied from one such repository
\r
148 to another. These changes are imported as additional
\r
149 development branches, and can be merged in the same way
\r
150 as a locally developed branch. Repositories can be easily
\r
151 accessed via the efficient Git protocol (optionally wrapped
\r
152 in ssh for authentication and security) or simply using
\r
153 HTTP - you can publish your repository anywhere without
\r
154 any special webserver configuration required.
\r
159 <term>Atomic commits</term>
\r
162 A commit either goes into the repository completely,
\r
168 <term>Strong support for non-linear development</term>
\r
171 Git supports rapid and convenient branching and merging,
\r
172 and includes powerful tools for visualizing and navigating
\r
173 a non-linear development history.
\r
178 <term>Efficient handling of large projects</term>
\r
181 Git is very fast and scales well even when working with
\r
182 large projects and long histories. It is commonly an order
\r
183 of magnitude faster than most other version control systems,
\r
184 and several orders of magnitude faster on some operations.
\r
185 It also uses an extremely efficient packed format for long-term
\r
186 revision storage that currently tops any other open source
\r
187 version control system.
\r
192 <term>Cryptographic authentication of history</term>
\r
195 The Git history is stored in such a way that the name of a
\r
196 particular revision (a "commit" in Git terms) depends upon
\r
197 the complete development history leading up to that commit.
\r
198 Once it is published, it is not possible to change the old
\r
199 versions without it being noticed. Also, tags can be
\r
200 cryptographically signed.
\r
205 <term>Efficient branching and tagging</term>
\r
208 The cost of branching and tagging need not be
\r
209 proportional to the project size. Branch is just head of commits.
\r
210 Tag is friend name of commit hash.
\r
215 <term>Toolkit design.</term>
\r
218 Following the Unix tradition, Git is a collection of many small
\r
219 tools written in C, and a number of scripts that provide convenient
\r
220 wrappers. Git provides tools for both easy human usage and easy
\r
221 scripting to perform new clever operations.
\r
227 <!-- ================================================================= -->
\r
228 <!-- ======================== SECTION 4 ============================== -->
\r
229 <!-- ================================================================= -->
\r
230 <sect1 id="tsvn-intro-install">
\r
231 <title>Installing TortoiseGit</title>
\r
233 <title>System requirements</title>
\r
235 TortoiseGit runs on Windows 2000 SP2, Windows XP or higher.
\r
236 Windows 98, Windows ME and Windows NT4 are no longer supported.
\r
239 If you encounter any problems during or after installing
\r
240 TortoiseGit please refer to
\r
241 <xref linkend="tsvn-faq"/>
\r
246 <title>Installation</title>
\r
248 <primary>install</primary>
\r
251 TortoiseGit comes with an easy to use installer. Double click on
\r
252 the installer file and follow the instructions. The installer
\r
253 will take care of the rest.
\r
257 You need Administrator privileges to install TortoiseGit.
\r
261 <sect2 id="tsvn-intro-install-lang">
\r
262 <title>Language Packs(not start)</title>
\r
264 <primary>language packs</primary>
\r
267 <primary>translations</primary>
\r
270 The TortoiseGit user interface has been translated into many
\r
271 different languages, so you may be able to download a language
\r
272 pack to suit your needs.
\r
273 You can find the language packs on our
\r
274 <ulink url="http://TortoiseGit.net/translation_status">
\r
275 <citetitle>translation status page</citetitle>
\r
277 And if there is no language pack available yet, why not join
\r
278 the team and submit your own translation ;-)
\r
281 Each language pack is packaged as a <literal>.exe</literal> installer.
\r
282 Just run the install program and follow the instructions.
\r
283 Next time you restart, the translation will be available.
\r
286 <sect2 id="tsvn-intro-instalsl-spell">
\r
287 <title>Spellchecker</title>
\r
289 <primary>spellchecker</primary>
\r
292 <primary>dictionary</primary>
\r
295 TortoiseGit includes a spell checker which allows you to check your
\r
296 commit log messages. This is especially useful if the project language
\r
297 is not your native language.
\r
298 The spell checker uses the same dictionary files as
\r
299 <ulink url="http://openoffice.org">
\r
300 <citetitle>OpenOffice</citetitle>
\r
303 <ulink url="http://mozilla.org">
\r
304 <citetitle>Mozilla</citetitle>
\r
308 The installer automatically adds the US and UK English dictionaries.
\r
309 If you want other languages, the easiest option is simply to
\r
310 install one of TortoiseGit's language packs. This will install
\r
311 the appropriate dictionary files as well as the TortoiseGit local
\r
313 Next time you restart, the dictionary will be available too.
\r
316 Or you can install the dictionaries yourself. If you have OpenOffice or
\r
317 Mozilla installed, you can copy those dictionaries, which are located
\r
318 in the installation folders for those applications.
\r
319 Otherwise, you need to download the required dictionary files from
\r
320 <ulink url="http://wiki.services.openoffice.org/wiki/Dictionaries">
\r
321 <citetitle>http://wiki.services.openoffice.org/wiki/Dictionaries</citetitle>
\r
325 Once you have got the dictionary files, you
\r
326 probably need to rename them so that the filenames only have
\r
327 the locale chars in it.
\r
332 <filename>en_US.aff</filename>
\r
337 <filename>en_US.dic</filename>
\r
341 Then just copy them to the <filename>bin</filename> sub-folder of
\r
342 the TortoiseGit installation folder. Normally this will be
\r
343 <filename>C:\Program Files\TortoiseGit\bin</filename>.
\r
344 If you don't want to litter the <filename>bin</filename> sub-folder,
\r
345 you can instead place your spell checker files in
\r
346 <filename>C:\Program Files\TortoiseGit\Languages</filename>. If that folder isn't
\r
347 there, you have to create it first.
\r
348 The next time you start TortoiseGit, the spell checker will be available.
\r
351 If you install multiple dictionaries, TortoiseGit uses these rules
\r
352 to select which one to use.
\r
356 Check the <literal>tsvn:projectlanguage</literal> setting.
\r
357 Refer to <xref linkend="tsvn-dug-propertypage"/> for information
\r
358 about setting project properties.
\r
363 If no project language is set, or that language is not
\r
364 installed, try the language corresponding to the Windows locale.
\r
369 If the exact Windows locale doesn't work, try the
\r
370 <quote>Base</quote> language, eg.
\r
371 <literal>de_CH</literal> (Swiss-German) falls back to
\r
372 <literal>de_DE</literal> (German).
\r
377 If none of the above works, then the default language
\r
378 is English, which is included with the standard installation.
\r
388 sgml-parent-document: ("book.xml" "chapter")
\r