OSDN Git Service

Update Document
[tortoisegit/TortoiseGitJp.git] / doc / po / TortoiseSVN.pot
1 msgid ""\r
2 msgstr ""\r
3 "Project-Id-Version: PACKAGE VERSION\n"\r
4 "POT-Creation-Date: 2009-02-04 22:58 +0000\n"\r
5 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"\r
6 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"\r
7 "Language-Team: LANGUAGE <LL@li.org>\n"\r
8 "MIME-Version: 1.0\n"\r
9 "Content-Type: text/plain; charset=UTF-8\n"\r
10 "Content-Transfer-Encoding: 8bit\n"\r
11 \r
12 #. When image changes, this message will be marked fuzzy or untranslated for you.\r
13 #. It doesn't matter what you translate it to: it's not used at all.\r
14 #: ../source/TortoiseGit_en.xml:13699\r
15 #.(None)\r
16 msgid "@@image: 'images/svn_move.png'; md5=THIS FILE DOESN'T EXIST"\r
17 msgstr ""\r
18 \r
19 #: ../source/TortoiseGit_en.xml:4\r
20 #.(title)\r
21 #: ../source/TortoiseGit_en.xml:3022\r
22 #.(secondary)\r
23 msgid "TortoiseGit"\r
24 msgstr ""\r
25 \r
26 #: ../source/TortoiseGit_en.xml:5\r
27 #.(subtitle)\r
28 msgid "A Git client for Windows"\r
29 msgstr ""\r
30 \r
31 #. TRANSLATORS: "$MajorVersion$.$MinorVersion$.$MicroVersion$" is a literal value and should not be translated\r
32 #: ../source/TortoiseGit_en.xml:6\r
33 #.(subtitle)\r
34 msgid "Version $MajorVersion$.$MinorVersion$.$MicroVersion$"\r
35 msgstr ""\r
36 \r
37 #: ../source/TortoiseGit_en.xml:8\r
38 #.(edition)\r
39 msgid "First"\r
40 msgstr ""\r
41 \r
42 #: ../source/TortoiseGit_en.xml:11\r
43 #.(firstname)\r
44 msgid "Stefan"\r
45 msgstr ""\r
46 \r
47 #: ../source/TortoiseGit_en.xml:12\r
48 #.(surname)\r
49 msgid "Küng"\r
50 msgstr ""\r
51 \r
52 #: ../source/TortoiseGit_en.xml:15\r
53 #.(firstname)\r
54 msgid "Lübbe"\r
55 msgstr ""\r
56 \r
57 #: ../source/TortoiseGit_en.xml:16\r
58 #.(surname)\r
59 msgid "Onken"\r
60 msgstr ""\r
61 \r
62 #: ../source/TortoiseGit_en.xml:19\r
63 #.(firstname)\r
64 msgid "Simon"\r
65 msgstr ""\r
66 \r
67 #: ../source/TortoiseGit_en.xml:20\r
68 #.(surname)\r
69 msgid "Large"\r
70 msgstr ""\r
71 \r
72 #: ../source/TortoiseGit_en.xml:27\r
73 #.(title)\r
74 msgid "Preface"\r
75 msgstr ""\r
76 \r
77 #: ../source/TortoiseGit_en.xml:35\r
78 #.(para)\r
79 msgid "Do you work in a team?"\r
80 msgstr ""\r
81 \r
82 #: ../source/TortoiseGit_en.xml:40\r
83 #.(para)\r
84 msgid "Has it ever happened that you were working on a file, and someone else was working on the same file at the same time? Did you lose your changes to that file because of that?"\r
85 msgstr ""\r
86 \r
87 #: ../source/TortoiseGit_en.xml:47\r
88 #.(para)\r
89 msgid "Have you ever saved a file, and then wanted to revert the changes you made? Have you ever wished you could see what a file looked like some time ago?"\r
90 msgstr ""\r
91 \r
92 #: ../source/TortoiseGit_en.xml:54\r
93 #.(para)\r
94 msgid "Have you ever found a bug in your project and wanted to know when that bug got into your files?"\r
95 msgstr ""\r
96 \r
97 #: ../source/TortoiseGit_en.xml:61\r
98 #.(para)\r
99 msgid "If you answered <quote>yes</quote> to one of these questions, then TortoiseGit is for you! Just read on to find out how TortoiseGit can help you in your work. It's not that difficult."\r
100 msgstr ""\r
101 \r
102 #: ../source/TortoiseGit_en.xml:71\r
103 #.(title)\r
104 msgid "Audience"\r
105 msgstr ""\r
106 \r
107 #: ../source/TortoiseGit_en.xml:72\r
108 #.(para)\r
109 msgid "This book is written for computer literate folk who want to use Git to manage their data, but are uncomfortable using the command line client to do so. Since TortoiseGit is a windows shell extension it's assumed that the user is familiar with the windows explorer and knows how to use it."\r
110 msgstr ""\r
111 \r
112 #: ../source/TortoiseGit_en.xml:84\r
113 #.(title)\r
114 msgid "Reading Guide"\r
115 msgstr ""\r
116 \r
117 #: ../source/TortoiseGit_en.xml:85\r
118 #.(para)\r
119 msgid "This <xref linkend=\"tsvn-preface\"/> explains a little about the TortoiseGit project, the community of people who work on it, and the licensing conditions for using it and distributing it."\r
120 msgstr ""\r
121 \r
122 #: ../source/TortoiseGit_en.xml:90\r
123 #.(para)\r
124 msgid "The <xref linkend=\"tsvn-introduction\"/> explains what TortoiseGit is, what it does, where it comes from and the basics for installing it on your PC."\r
125 msgstr ""\r
126 \r
127 #: ../source/TortoiseGit_en.xml:95\r
128 #.(para)\r
129 msgid "In <xref linkend=\"tsvn-basics\"/> we give a short introduction to the <emphasis>Git</emphasis> revision control system which underlies TortoiseGit. This is borrowed from the documentation for the Git project and explains the different approaches to version control, and how Git works."\r
130 msgstr ""\r
131 \r
132 #: ../source/TortoiseGit_en.xml:102\r
133 #.(para)\r
134 msgid "Even most Git users will never have to set up a server themselves. The next chapter deals with how to set up such a server, and is useful for administrators."\r
135 msgstr ""\r
136 \r
137 #: ../source/TortoiseGit_en.xml:107\r
138 #.(para)\r
139 msgid "The chapter on <xref linkend=\"tsvn-repository\"/> explains how to set up a local repository, which is useful for testing Git and TortoiseGit using a single PC. It also explains a bit about repository administration which is also relevant to repositories located on a server."\r
140 msgstr ""\r
141 \r
142 #: ../source/TortoiseGit_en.xml:113\r
143 #.(para)\r
144 msgid "The <xref linkend=\"tsvn-dug\"/> is the most important section as it explains all the main features of TortoiseGit and how to use them. It takes the form of a tutorial, starting with checking out a working copy, modifying it, committing your changes, etc. It then progresses to more advanced topics."\r
145 msgstr ""\r
146 \r
147 #: ../source/TortoiseGit_en.xml:120\r
148 #.(para)\r
149 msgid "<xref linkend=\"tsvn-subwcrev\"/> is a separate program included with TortoiseGit which can extract the information from your working copy and write it into a file. This is useful for including build information in your projects."\r
150 msgstr ""\r
151 \r
152 #: ../source/TortoiseGit_en.xml:125\r
153 #.(para)\r
154 msgid "The <xref linkend=\"tsvn-howto\"/> section answers some common questions about performing tasks which are not explicitly covered elsewhere."\r
155 msgstr ""\r
156 \r
157 #: ../source/TortoiseGit_en.xml:129\r
158 #.(para)\r
159 msgid "The section on <xref linkend=\"tsvn-automation\"/> shows how the TortoiseGit GUI dialogs can be called from the command line. This is useful for scripting where you still need user interaction."\r
160 msgstr ""\r
161 \r
162 #: ../source/TortoiseGit_en.xml:134\r
163 #.(para)\r
164 msgid "The <xref linkend=\"tsvn-cli\"/> give a correlation between TortoiseGit commands and their equivalents in the Git command line client <literal>svn.exe</literal>."\r
165 msgstr ""\r
166 \r
167 #: ../source/TortoiseGit_en.xml:144\r
168 #.(title)\r
169 msgid "TortoiseGit is free!"\r
170 msgstr ""\r
171 \r
172 #: ../source/TortoiseGit_en.xml:145\r
173 #.(para)\r
174 msgid "TortoiseGit is free. You don't have to pay to use it, and you can use it any way you want. It is developed under the GNU General Public License (GPL)."\r
175 msgstr ""\r
176 \r
177 #: ../source/TortoiseGit_en.xml:149\r
178 #.(para)\r
179 msgid "TortoiseGit is an Open Source project. That means you have full read access to the source code of this program. You can browse it on this link <ulink url=\"http://TortoiseGit.tigris.org/svn/TortoiseGit/\"><citetitle>http://TortoiseGit.tigris.org/svn/TortoiseGit/</citetitle></ulink>. You will be prompted to enter username and password. The username is <literal>guest</literal>, and the password must be left blank. The most recent version (where we're currently working) is located under <filename>/trunk/</filename>, and the released versions are located under <filename>/tags/</filename>."\r
180 msgstr ""\r
181 \r
182 #: ../source/TortoiseGit_en.xml:168\r
183 #.(title)\r
184 msgid "Community"\r
185 msgstr ""\r
186 \r
187 #: ../source/TortoiseGit_en.xml:169\r
188 #.(para)\r
189 msgid "Both TortoiseGit and Git are developed by a community of people who are working on those projects. They come from different countries all over the world and joined together to create wonderful programs."\r
190 msgstr ""\r
191 \r
192 #: ../source/TortoiseGit_en.xml:180\r
193 #.(title)\r
194 msgid "Acknowledgments"\r
195 msgstr ""\r
196 \r
197 #: ../source/TortoiseGit_en.xml:183\r
198 #.(term)\r
199 msgid "Tim Kemp"\r
200 msgstr ""\r
201 \r
202 #: ../source/TortoiseGit_en.xml:185\r
203 #.(para)\r
204 msgid "for founding the TortoiseGit project"\r
205 msgstr ""\r
206 \r
207 #: ../source/TortoiseGit_en.xml:191\r
208 #.(term)\r
209 msgid "Stefan Küng"\r
210 msgstr ""\r
211 \r
212 #: ../source/TortoiseGit_en.xml:193\r
213 #.(para)\r
214 msgid "for the hard work to get TortoiseGit to what it is now"\r
215 msgstr ""\r
216 \r
217 #: ../source/TortoiseGit_en.xml:199\r
218 #.(term)\r
219 msgid "Lübbe Onken"\r
220 msgstr ""\r
221 \r
222 #: ../source/TortoiseGit_en.xml:201\r
223 #.(para)\r
224 msgid "for the beautiful icons, logo, bug hunting, translating and managing the translations"\r
225 msgstr ""\r
226 \r
227 #: ../source/TortoiseGit_en.xml:208\r
228 #.(term)\r
229 msgid "Simon Large"\r
230 msgstr ""\r
231 \r
232 #: ../source/TortoiseGit_en.xml:210\r
233 #.(para)\r
234 msgid "for helping with the documentation and bug hunting"\r
235 msgstr ""\r
236 \r
237 #: ../source/TortoiseGit_en.xml:216\r
238 #.(term)\r
239 msgid "The Git Book"\r
240 msgstr ""\r
241 \r
242 #: ../source/TortoiseGit_en.xml:218\r
243 #.(para)\r
244 msgid "for the great introduction to Git and its chapter 2 which we copied here"\r
245 msgstr ""\r
246 \r
247 #: ../source/TortoiseGit_en.xml:225\r
248 #.(term)\r
249 msgid "The Tigris Style project"\r
250 msgstr ""\r
251 \r
252 #: ../source/TortoiseGit_en.xml:227\r
253 #.(para)\r
254 msgid "for some of the styles which are reused in this documentation"\r
255 msgstr ""\r
256 \r
257 #: ../source/TortoiseGit_en.xml:233\r
258 #.(term)\r
259 msgid "Our Contributors"\r
260 msgstr ""\r
261 \r
262 #: ../source/TortoiseGit_en.xml:235\r
263 #.(para)\r
264 msgid "for the patches, bug reports and new ideas, and for helping others by answering questions on our mailing list."\r
265 msgstr ""\r
266 \r
267 #: ../source/TortoiseGit_en.xml:242\r
268 #.(term)\r
269 msgid "Our Donators"\r
270 msgstr ""\r
271 \r
272 #: ../source/TortoiseGit_en.xml:244\r
273 #.(para)\r
274 msgid "for many hours of joy with the music they sent us"\r
275 msgstr ""\r
276 \r
277 #: ../source/TortoiseGit_en.xml:255\r
278 #.(title)\r
279 msgid "Terminology used in this document"\r
280 msgstr ""\r
281 \r
282 #: ../source/TortoiseGit_en.xml:256\r
283 #.(para)\r
284 msgid "To make reading the docs easier, the names of all the screens and Menus from TortoiseGit are marked up in a different font. The <guilabel>Log Dialog</guilabel> for instance."\r
285 msgstr ""\r
286 \r
287 #: ../source/TortoiseGit_en.xml:261\r
288 #.(para)\r
289 msgid "A menu choice is indicated with an arrow. <menuchoice><guimenu>TortoiseGit</guimenu><guimenuitem>Show Log</guimenuitem></menuchoice> means: select <emphasis>Show Log</emphasis> from the <emphasis>TortoiseGit</emphasis> context menu."\r
290 msgstr ""\r
291 \r
292 #: ../source/TortoiseGit_en.xml:270\r
293 #.(para)\r
294 msgid "Where a local context menu appears within one of the TortoiseGit dialogs, it is shown like this: <menuchoice><guimenu>Context Menu</guimenu><guimenuitem>Save As ...</guimenuitem></menuchoice>"\r
295 msgstr ""\r
296 \r
297 #: ../source/TortoiseGit_en.xml:278\r
298 #.(para)\r
299 msgid "User Interface Buttons are indicated like this: Press <guibutton>OK</guibutton> to continue."\r
300 msgstr ""\r
301 \r
302 #: ../source/TortoiseGit_en.xml:282\r
303 #.(para)\r
304 msgid "User Actions are indicated using a bold font. <keycap>Alt+A</keycap>: press the <keycap>Alt</keycap>-Key on your keyboard and while holding it down press the <keycap>A</keycap>-Key as well. <action>Right-drag</action>: press the right mouse button and while holding it down <emphasis>drag</emphasis> the items to the new location."\r
305 msgstr ""\r
306 \r
307 #: ../source/TortoiseGit_en.xml:290\r
308 #.(para)\r
309 msgid "System output and keyboard input is indicated with a <literal>different</literal> font as well."\r
310 msgstr ""\r
311 \r
312 #: ../source/TortoiseGit_en.xml:295\r
313 #.(para)\r
314 msgid "Important notes are marked with an icon."\r
315 msgstr ""\r
316 \r
317 #: ../source/TortoiseGit_en.xml:300\r
318 #.(para)\r
319 msgid "Tips that make your life easier."\r
320 msgstr ""\r
321 \r
322 #: ../source/TortoiseGit_en.xml:305\r
323 #.(para)\r
324 msgid "Places where you have to be careful what you are doing."\r
325 msgstr ""\r
326 \r
327 #: ../source/TortoiseGit_en.xml:310\r
328 #.(para)\r
329 msgid "Where extreme care has to be taken, data corruption or other nasty things may occur if these warnings are ignored."\r
330 msgstr ""\r
331 \r
332 #: ../source/TortoiseGit_en.xml:319\r
333 #.(title)\r
334 #: ../source/TortoiseGit_en.xml:1482\r
335 #.(title)\r
336 #: ../source/TortoiseGit_en.xml:2481\r
337 #.(title)\r
338 msgid "Introduction"\r
339 msgstr ""\r
340 \r
341 #: ../source/TortoiseGit_en.xml:323\r
342 #.(primary)\r
343 msgid "version control"\r
344 msgstr ""\r
345 \r
346 #: ../source/TortoiseGit_en.xml:325\r
347 #.(para)\r
348 msgid "Version control is the art of managing changes to information. It has long been a critical tool for programmers, who typically spend their time making small changes to software and then undoing or checking some of those changes the next day. Imagine a team of such developers working concurrently - and perhaps even simultaneously on the very same files! - and you can see why a good system is needed to <emphasis>manage the potential chaos</emphasis>."\r
349 msgstr ""\r
350 \r
351 #: ../source/TortoiseGit_en.xml:339\r
352 #.(title)\r
353 msgid "What is TortoiseGit?"\r
354 msgstr ""\r
355 \r
356 #: ../source/TortoiseGit_en.xml:340\r
357 #.(para)\r
358 msgid "TortoiseGit is a free open-source client for the <firstterm>Git</firstterm> version control system. That is, TortoiseGit manages files and directories over time. Files are stored in a central <firstterm>repository</firstterm>. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your files and examine the history of how and when your data changed, and who changed it. This is why many people think of Git and version control systems in general as a sort of <quote>time machine</quote>."\r
359 msgstr ""\r
360 \r
361 #: ../source/TortoiseGit_en.xml:352\r
362 #.(para)\r
363 msgid "Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code, and have many features that are specific to software development - such as natively understanding programming languages, or supplying tools for building software. Git, however, is not one of these systems; it is a general system that can be used to manage <emphasis>any</emphasis> collection of files, including source code."\r
364 msgstr ""\r
365 \r
366 #: ../source/TortoiseGit_en.xml:368\r
367 #.(title)\r
368 msgid "TortoiseGit's History"\r
369 msgstr ""\r
370 \r
371 #: ../source/TortoiseGit_en.xml:369\r
372 #.(para)\r
373 msgid "In 2002, Tim Kemp found that Git was a very good version control system, but it lacked a good GUI client. The idea for a Git client as a Windows shell integration was inspired by the similar client for CVS named TortoiseCVS."\r
374 msgstr ""\r
375 \r
376 #: ../source/TortoiseGit_en.xml:375\r
377 #.(para)\r
378 msgid "Tim studied the source code of TortoiseCVS and used it as a base for TortoiseGit. He then started the project, registered the domain <literal>TortoiseGit.org</literal> and put the source code online. During that time, Stefan Küng was looking for a good and free version control system and found Git and the source for TortoiseGit. Since TortoiseGit was still not ready for use then he joined the project and started programming. Soon he rewrote most of the existing code and started adding commands and features, up to a point where nothing of the original code remained."\r
379 msgstr ""\r
380 \r
381 #: ../source/TortoiseGit_en.xml:386\r
382 #.(para)\r
383 msgid "As Git became more stable it attracted more and more users who also started using TortoiseGit as their Git client. The user base grew quickly (and is still growing every day). That's when Lübbe Onken offered to help out with some nice icons and a logo for TortoiseGit. And he takes care of the website and manages the translation."\r
384 msgstr ""\r
385 \r
386 #: ../source/TortoiseGit_en.xml:399\r
387 #.(title)\r
388 msgid "TortoiseGit's Features"\r
389 msgstr ""\r
390 \r
391 #: ../source/TortoiseGit_en.xml:400\r
392 #.(para)\r
393 msgid "What makes TortoiseGit such a good Git client? Here's a short list of features."\r
394 msgstr ""\r
395 \r
396 #: ../source/TortoiseGit_en.xml:406\r
397 #.(term)\r
398 msgid "Shell integration"\r
399 msgstr ""\r
400 \r
401 #: ../source/TortoiseGit_en.xml:409\r
402 #.(primary)\r
403 msgid "Windows shell"\r
404 msgstr ""\r
405 \r
406 #: ../source/TortoiseGit_en.xml:412\r
407 #.(primary)\r
408 msgid "explorer"\r
409 msgstr ""\r
410 \r
411 #: ../source/TortoiseGit_en.xml:414\r
412 #.(para)\r
413 msgid "TortoiseGit integrates seamlessly into the Windows shell (i.e. the explorer). This means you can keep working with the tools you're already familiar with. And you do not have to change into a different application each time you need functions of the version control!"\r
414 msgstr ""\r
415 \r
416 #: ../source/TortoiseGit_en.xml:421\r
417 #.(para)\r
418 msgid "And you are not even forced to use the Windows Explorer. TortoiseGit's context menus work in many other file managers, and in the File/Open dialog which is common to most standard Windows applications. You should, however, bear in mind that TortoiseGit is intentionally developed as extension for the Windows Explorer. Thus it is possible that in other applications the integration is not as complete and e.g. the icon overlays may not be shown."\r
419 msgstr ""\r
420 \r
421 #: ../source/TortoiseGit_en.xml:435\r
422 #.(term)\r
423 msgid "Icon overlays"\r
424 msgstr ""\r
425 \r
426 #: ../source/TortoiseGit_en.xml:437\r
427 #.(para)\r
428 msgid "The status of every versioned file and folder is indicated by small overlay icons. That way you can see right away what the status of your working copy is."\r
429 msgstr ""\r
430 \r
431 #: ../source/TortoiseGit_en.xml:445\r
432 #.(term)\r
433 msgid "Easy access to Git commands"\r
434 msgstr ""\r
435 \r
436 #: ../source/TortoiseGit_en.xml:447\r
437 #.(para)\r
438 msgid "All Git commands are available from the explorer context menu. TortoiseGit adds its own submenu there."\r
439 msgstr ""\r
440 \r
441 #: ../source/TortoiseGit_en.xml:454\r
442 #.(para)\r
443 msgid "Since TortoiseGit is a Git client, we would also like to show you some of the features of Git itself:"\r
444 msgstr ""\r
445 \r
446 #: ../source/TortoiseGit_en.xml:460\r
447 #.(term)\r
448 msgid "Directory versioning"\r
449 msgstr ""\r
450 \r
451 #: ../source/TortoiseGit_en.xml:462\r
452 #.(para)\r
453 msgid "CVS only tracks the history of individual files, but Git implements a <quote>virtual</quote> versioned filesystem that tracks changes to whole directory trees over time. Files <emphasis>and</emphasis> directories are versioned. As a result, there are real client-side <command>move</command> and <command>copy</command> commands that operate on files and directories."\r
454 msgstr ""\r
455 \r
456 #: ../source/TortoiseGit_en.xml:475\r
457 #.(term)\r
458 msgid "Atomic commits"\r
459 msgstr ""\r
460 \r
461 #: ../source/TortoiseGit_en.xml:477\r
462 #.(para)\r
463 msgid "A commit either goes into the repository completely, or not at all. This allows developers to construct and commit changes as logical chunks."\r
464 msgstr ""\r
465 \r
466 #: ../source/TortoiseGit_en.xml:485\r
467 #.(term)\r
468 msgid "Versioned metadata"\r
469 msgstr ""\r
470 \r
471 #: ../source/TortoiseGit_en.xml:487\r
472 #.(para)\r
473 msgid "Each file and directory has an invisible set of <quote>properties</quote> attached. You can invent and store any arbitrary key/value pairs you wish. Properties are versioned over time, just like file contents."\r
474 msgstr ""\r
475 \r
476 #: ../source/TortoiseGit_en.xml:497\r
477 #.(term)\r
478 msgid "Choice of network layers"\r
479 msgstr ""\r
480 \r
481 #: ../source/TortoiseGit_en.xml:499\r
482 #.(para)\r
483 msgid "Git has an abstracted notion of repository access, making it easy for people to implement new network mechanisms. Git's <quote>advanced</quote> network server is a module for the Apache web server, which speaks a variant of HTTP called WebDAV/DeltaV. This gives Git a big advantage in stability and interoperability, and provides various key features for free: authentication, authorization, wire compression, and repository browsing, for example. A smaller, standalone Git server process is also available. This server speaks a custom protocol which can be easily tunneled over ssh."\r
484 msgstr ""\r
485 \r
486 #: ../source/TortoiseGit_en.xml:516\r
487 #.(term)\r
488 msgid "Consistent data handling"\r
489 msgstr ""\r
490 \r
491 #: ../source/TortoiseGit_en.xml:518\r
492 #.(para)\r
493 msgid "Git expresses file differences using a binary differencing algorithm, which works identically on both text (human-readable) and binary (human-unreadable) files. Both types of files are stored equally compressed in the repository, and differences are transmitted in both directions across the network."\r
494 msgstr ""\r
495 \r
496 #: ../source/TortoiseGit_en.xml:529\r
497 #.(term)\r
498 msgid "Efficient branching and tagging"\r
499 msgstr ""\r
500 \r
501 #: ../source/TortoiseGit_en.xml:531\r
502 #.(para)\r
503 msgid "The cost of branching and tagging need not be proportional to the project size. Git creates branches and tags by simply copying the project, using a mechanism similar to a hard-link. Thus these operations take only a very small, constant amount of time, and very little space in the repository."\r
504 msgstr ""\r
505 \r
506 #: ../source/TortoiseGit_en.xml:542\r
507 #.(term)\r
508 msgid "Hackability"\r
509 msgstr ""\r
510 \r
511 #: ../source/TortoiseGit_en.xml:544\r
512 #.(para)\r
513 msgid "Git has no historical baggage; it is implemented as a collection of shared C libraries with well-defined APIs. This makes Git extremely maintainable and usable by other applications and languages."\r
514 msgstr ""\r
515 \r
516 #: ../source/TortoiseGit_en.xml:558\r
517 #.(title)\r
518 msgid "Installing TortoiseGit"\r
519 msgstr ""\r
520 \r
521 #: ../source/TortoiseGit_en.xml:560\r
522 #.(title)\r
523 msgid "System requirements"\r
524 msgstr ""\r
525 \r
526 #: ../source/TortoiseGit_en.xml:561\r
527 #.(para)\r
528 msgid "TortoiseGit runs on Windows 2000 SP2, Windows XP or higher. Windows 98, Windows ME and Windows NT4 are no longer supported since TortoiseGit 1.2.0, but you can still download the older versions if you really need them."\r
529 msgstr ""\r
530 \r
531 #: ../source/TortoiseGit_en.xml:567\r
532 #.(para)\r
533 msgid "If you encounter any problems during or after installing TortoiseGit please refer to <xref linkend=\"tsvn-faq\"/> first."\r
534 msgstr ""\r
535 \r
536 #: ../source/TortoiseGit_en.xml:575\r
537 #.(title)\r
538 msgid "Installation"\r
539 msgstr ""\r
540 \r
541 #: ../source/TortoiseGit_en.xml:577\r
542 #.(primary)\r
543 msgid "install"\r
544 msgstr ""\r
545 \r
546 #: ../source/TortoiseGit_en.xml:579\r
547 #.(para)\r
548 msgid "TortoiseGit comes with an easy to use installer. Double click on the installer file and follow the instructions. The installer will take care of the rest."\r
549 msgstr ""\r
550 \r
551 #: ../source/TortoiseGit_en.xml:585\r
552 #.(para)\r
553 msgid "You need Administrator privileges to install TortoiseGit."\r
554 msgstr ""\r
555 \r
556 #: ../source/TortoiseGit_en.xml:591\r
557 #.(title)\r
558 msgid "Language Packs"\r
559 msgstr ""\r
560 \r
561 #: ../source/TortoiseGit_en.xml:593\r
562 #.(primary)\r
563 msgid "language packs"\r
564 msgstr ""\r
565 \r
566 #: ../source/TortoiseGit_en.xml:596\r
567 #.(primary)\r
568 msgid "translations"\r
569 msgstr ""\r
570 \r
571 #: ../source/TortoiseGit_en.xml:598\r
572 #.(para)\r
573 msgid "The TortoiseGit user interface has been translated into many different languages, so you may be able to download a language pack to suit your needs. You can find the language packs on our <ulink url=\"http://TortoiseGit.net/translation_status\"><citetitle>translation status page</citetitle></ulink>. And if there is no language pack available yet, why not join the team and submit your own translation ;-)"\r
574 msgstr ""\r
575 \r
576 #: ../source/TortoiseGit_en.xml:609\r
577 #.(para)\r
578 msgid "Each language pack is packaged as a <literal>.exe</literal> installer. Just run the install program and follow the instructions. Next time you restart, the translation will be available."\r
579 msgstr ""\r
580 \r
581 #: ../source/TortoiseGit_en.xml:616\r
582 #.(title)\r
583 msgid "Spellchecker"\r
584 msgstr ""\r
585 \r
586 #: ../source/TortoiseGit_en.xml:618\r
587 #.(primary)\r
588 msgid "spellchecker"\r
589 msgstr ""\r
590 \r
591 #: ../source/TortoiseGit_en.xml:621\r
592 #.(primary)\r
593 msgid "dictionary"\r
594 msgstr ""\r
595 \r
596 #: ../source/TortoiseGit_en.xml:623\r
597 #.(para)\r
598 msgid "TortoiseGit includes a spell checker which allows you to check your commit log messages. This is especially useful if the project language is not your native language. The spell checker uses the same dictionary files as <ulink url=\"http://openoffice.org\"><citetitle>OpenOffice</citetitle></ulink> and <ulink url=\"http://mozilla.org\"><citetitle>Mozilla</citetitle></ulink>."\r
599 msgstr ""\r
600 \r
601 #: ../source/TortoiseGit_en.xml:636\r
602 #.(para)\r
603 msgid "The installer automatically adds the US and UK English dictionaries. If you want other languages, the easiest option is simply to install one of TortoiseGit's language packs. This will install the appropriate dictionary files as well as the TortoiseGit local user interface. Next time you restart, the dictionary will be available too."\r
604 msgstr ""\r
605 \r
606 #: ../source/TortoiseGit_en.xml:644\r
607 #.(para)\r
608 msgid "Or you can install the dictionaries yourself. If you have OpenOffice or Mozilla installed, you can copy those dictionaries, which are located in the installation folders for those applications. Otherwise, you need to download the required dictionary files from <ulink url=\"http://wiki.services.openoffice.org/wiki/Dictionaries\"><citetitle>http://wiki.services.openoffice.org/wiki/Dictionaries</citetitle></ulink>"\r
609 msgstr ""\r
610 \r
611 #: ../source/TortoiseGit_en.xml:661\r
612 #.(filename)\r
613 msgid "en_US.aff"\r
614 msgstr ""\r
615 \r
616 #: ../source/TortoiseGit_en.xml:666\r
617 #.(filename)\r
618 msgid "en_US.dic"\r
619 msgstr ""\r
620 \r
621 #: ../source/TortoiseGit_en.xml:653\r
622 #.(para)\r
623 msgid "Once you have got the dictionary files, you probably need to rename them so that the filenames only have the locale chars in it. Example: <placeholder-1/> Then just copy them to the <filename>bin</filename> sub-folder of the TortoiseGit installation folder. Normally this will be <filename>C:\\Program Files\\TortoiseGit\\bin</filename>. If you don't want to litter the <filename>bin</filename> sub-folder, you can instead place your spell checker files in <filename>C:\\Program Files\\TortoiseGit\\Languages</filename>. If that folder isn't there, you have to create it first. The next time you start TortoiseGit, the spell checker will be available."\r
624 msgstr ""\r
625 \r
626 #: ../source/TortoiseGit_en.xml:684\r
627 #.(para)\r
628 msgid "Check the <literal>tsvn:projectlanguage</literal> setting. Refer to <xref linkend=\"tsvn-dug-propertypage\"/> for information about setting project properties."\r
629 msgstr ""\r
630 \r
631 #: ../source/TortoiseGit_en.xml:691\r
632 #.(para)\r
633 msgid "If no project language is set, or that language is not installed, try the language corresponding to the Windows locale."\r
634 msgstr ""\r
635 \r
636 #: ../source/TortoiseGit_en.xml:697\r
637 #.(para)\r
638 msgid "If the exact Windows locale doesn't work, try the <quote>Base</quote> language, eg. <literal>de_CH</literal> (Swiss-German) falls back to <literal>de_DE</literal> (German)."\r
639 msgstr ""\r
640 \r
641 #: ../source/TortoiseGit_en.xml:705\r
642 #.(para)\r
643 msgid "If none of the above works, then the default language is English, which is included with the standard installation."\r
644 msgstr ""\r
645 \r
646 #: ../source/TortoiseGit_en.xml:679\r
647 #.(para)\r
648 msgid "If you install multiple dictionaries, TortoiseGit uses these rules to select which one to use. <placeholder-1/>"\r
649 msgstr ""\r
650 \r
651 #: ../source/TortoiseGit_en.xml:722\r
652 #.(title)\r
653 msgid "Basic Concepts"\r
654 msgstr ""\r
655 \r
656 #: ../source/TortoiseGit_en.xml:725\r
657 #.(primary)\r
658 msgid "Git book"\r
659 msgstr ""\r
660 \r
661 #: ../source/TortoiseGit_en.xml:727\r
662 #.(para)\r
663 msgid "This chapter is a slightly modified version of the same chapter in the Git book. An online version of the Git book is available here: <ulink url=\"http://svnbook.red-bean.com/\"><citetitle>http://svnbook.red-bean.com/</citetitle></ulink>."\r
664 msgstr ""\r
665 \r
666 #: ../source/TortoiseGit_en.xml:735\r
667 #.(para)\r
668 msgid "This chapter is a short, casual introduction to Git. If you're new to version control, this chapter is definitely for you. We begin with a discussion of general version control concepts, work our way into the specific ideas behind Git, and show some simple examples of Git in use."\r
669 msgstr ""\r
670 \r
671 #: ../source/TortoiseGit_en.xml:743\r
672 #.(para)\r
673 msgid "Even though the examples in this chapter show people sharing collections of program source code, keep in mind that Git can manage any sort of file collection - it's not limited to helping computer programmers."\r
674 msgstr ""\r
675 \r
676 #: ../source/TortoiseGit_en.xml:751\r
677 #.(title)\r
678 #: ../source/TortoiseGit_en.xml:1256\r
679 #.(title)\r
680 #: ../source/TortoiseGit_en.xml:2944\r
681 #.(title)\r
682 msgid "The Repository"\r
683 msgstr ""\r
684 \r
685 #: ../source/TortoiseGit_en.xml:753\r
686 #.(primary)\r
687 #: ../source/TortoiseGit_en.xml:3717\r
688 #.(primary)\r
689 msgid "repository"\r
690 msgstr ""\r
691 \r
692 #: ../source/TortoiseGit_en.xml:755\r
693 #.(para)\r
694 msgid "Git is a centralized system for sharing information. At its core is a <firstterm>repository</firstterm>, which is a central store of data. The repository stores information in the form of a <firstterm>filesystem tree</firstterm> - a typical hierarchy of files and directories. Any number of <firstterm>clients</firstterm> connect to the repository, and then read or write to these files. By writing data, a client makes the information available to others; by reading data, the client receives information from others."\r
695 msgstr ""\r
696 \r
697 #: ../source/TortoiseGit_en.xml:767\r
698 #.(title)\r
699 msgid "A Typical Client/Server System"\r
700 msgstr ""\r
701 \r
702 #: ../source/TortoiseGit_en.xml:770\r
703 #.(para)\r
704 msgid "So why is this interesting? So far, this sounds like the definition of a typical file server. And indeed, the repository <emphasis>is</emphasis> a kind of file server, but it's not your usual breed. What makes the Git repository special is that <emphasis>it remembers every change</emphasis> ever written to it: every change to every file, and even changes to the directory tree itself, such as the addition, deletion, and rearrangement of files and directories."\r
705 msgstr ""\r
706 \r
707 #: ../source/TortoiseGit_en.xml:780\r
708 #.(para)\r
709 msgid "When a client reads data from the repository, it normally sees only the latest version of the filesystem tree. But the client also has the ability to view <emphasis>previous</emphasis> states of the filesystem. For example, a client can ask historical questions like, <quote>what did this directory contain last Wednesday?</quote>, or <quote>who was the last person to change this file, and what changes did they make?</quote> These are the sorts of questions that are at the heart of any <firstterm>version control system</firstterm>: systems that are designed to record and track changes to data over time."\r
710 msgstr ""\r
711 \r
712 #: ../source/TortoiseGit_en.xml:795\r
713 #.(title)\r
714 msgid "Versioning Models"\r
715 msgstr ""\r
716 \r
717 #: ../source/TortoiseGit_en.xml:796\r
718 #.(para)\r
719 msgid "All version control systems have to solve the same fundamental problem: how will the system allow users to share information, but prevent them from accidentally stepping on each other's feet? It's all too easy for users to accidentally overwrite each other's changes in the repository."\r
720 msgstr ""\r
721 \r
722 #: ../source/TortoiseGit_en.xml:805\r
723 #.(title)\r
724 msgid "The Problem of File-Sharing"\r
725 msgstr ""\r
726 \r
727 #: ../source/TortoiseGit_en.xml:806\r
728 #.(para)\r
729 msgid "Consider this scenario: suppose we have two co-workers, Harry and Sally. They each decide to edit the same repository file at the same time. If Harry saves his changes to the repository first, then it's possible that (a few moments later) Sally could accidentally overwrite them with her own new version of the file. While Harry's version of the file won't be lost forever (because the system remembers every change), any changes Harry made <emphasis>won't</emphasis> be present in Sally's newer version of the file, because she never saw Harry's changes to begin with. Harry's work is still effectively lost - or at least missing from the latest version of the file - and probably by accident. This is definitely a situation we want to avoid!"\r
730 msgstr ""\r
731 \r
732 #: ../source/TortoiseGit_en.xml:822\r
733 #.(title)\r
734 msgid "The Problem to Avoid"\r
735 msgstr ""\r
736 \r
737 #: ../source/TortoiseGit_en.xml:827\r
738 #.(title)\r
739 #: ../source/TortoiseGit_en.xml:843\r
740 #.(title)\r
741 msgid "The Lock-Modify-Unlock Solution"\r
742 msgstr ""\r
743 \r
744 #: ../source/TortoiseGit_en.xml:828\r
745 #.(para)\r
746 msgid "Many version control systems use a <firstterm>lock-modify-unlock</firstterm> model to address this problem, which is a very simple solution. In such a system, the repository allows only one person to change a file at a time. First Harry must <emphasis>lock</emphasis> the file before he can begin making changes to it. Locking a file is a lot like borrowing a book from the library; if Harry has locked a file, then Sally cannot make any changes to it. If she tries to lock the file, the repository will deny the request. All she can do is read the file, and wait for Harry to finish his changes and release his lock. After Harry unlocks the file, his turn is over, and now Sally can take her turn by locking and editing."\r
747 msgstr ""\r
748 \r
749 #: ../source/TortoiseGit_en.xml:846\r
750 #.(para)\r
751 msgid "The problem with the lock-modify-unlock model is that it's a bit restrictive, and often becomes a roadblock for users:"\r
752 msgstr ""\r
753 \r
754 #: ../source/TortoiseGit_en.xml:853\r
755 #.(para)\r
756 msgid "<emphasis>Locking may cause administrative problems.</emphasis> Sometimes Harry will lock a file and then forget about it. Meanwhile, because Sally is still waiting to edit the file, her hands are tied. And then Harry goes on vacation. Now Sally has to get an administrator to release Harry's lock. The situation ends up causing a lot of unnecessary delay and wasted time."\r
757 msgstr ""\r
758 \r
759 #: ../source/TortoiseGit_en.xml:864\r
760 #.(para)\r
761 msgid "<emphasis>Locking may cause unnecessary serialization.</emphasis> What if Harry is editing the beginning of a text file, and Sally simply wants to edit the end of the same file? These changes don't overlap at all. They could easily edit the file simultaneously, and no great harm would come, assuming the changes were properly merged together. There's no need for them to take turns in this situation."\r
762 msgstr ""\r
763 \r
764 #: ../source/TortoiseGit_en.xml:876\r
765 #.(para)\r
766 msgid "<emphasis>Locking may create a false sense of security.</emphasis> Pretend that Harry locks and edits file A, while Sally simultaneously locks and edits file B. But suppose that A and B depend on one another, and the changes made to each are semantically incompatible. Suddenly A and B don't work together anymore. The locking system was powerless to prevent the problem - yet it somehow provided a sense of false security. It's easy for Harry and Sally to imagine that by locking files, each is beginning a safe, insulated task, and thus inhibits them from discussing their incompatible changes early on."\r
767 msgstr ""\r
768 \r
769 #: ../source/TortoiseGit_en.xml:894\r
770 #.(title)\r
771 #: ../source/TortoiseGit_en.xml:922\r
772 #.(title)\r
773 msgid "The Copy-Modify-Merge Solution"\r
774 msgstr ""\r
775 \r
776 #: ../source/TortoiseGit_en.xml:895\r
777 #.(para)\r
778 msgid "Git, CVS, and other version control systems use a <firstterm>copy-modify-merge</firstterm> model as an alternative to locking. In this model, each user's client reads the repository and creates a personal <firstterm>working copy</firstterm> of the file or project. Users then work in parallel, modifying their private copies. Finally, the private copies are merged together into a new, final version. The version control system often assists with the merging, but ultimately a human being is responsible for making it happen correctly."\r
779 msgstr ""\r
780 \r
781 #: ../source/TortoiseGit_en.xml:907\r
782 #.(para)\r
783 msgid "Here's an example. Say that Harry and Sally each create working copies of the same project, copied from the repository. They work concurrently, and make changes to the same file <filename>A</filename> within their copies. Sally saves her changes to the repository first. When Harry attempts to save his changes later, the repository informs him that his file A is <firstterm>out-of-date</firstterm>. In other words, that file A in the repository has somehow changed since he last copied it. So Harry asks his client to <firstterm>merge</firstterm> any new changes from the repository into his working copy of file A. Chances are that Sally's changes don't overlap with his own; so once he has both sets of changes integrated, he saves his working copy back to the repository."\r
784 msgstr ""\r
785 \r
786 #: ../source/TortoiseGit_en.xml:926\r
787 #.(title)\r
788 msgid "...Copy-Modify-Merge Continued"\r
789 msgstr ""\r
790 \r
791 #: ../source/TortoiseGit_en.xml:930\r
792 #.(primary)\r
793 #: ../source/TortoiseGit_en.xml:4915\r
794 #.(primary)\r
795 msgid "conflict"\r
796 msgstr ""\r
797 \r
798 #: ../source/TortoiseGit_en.xml:932\r
799 #.(para)\r
800 msgid "But what if Sally's changes <emphasis>do</emphasis> overlap with Harry's changes? What then? This situation is called a <firstterm>conflict</firstterm>, and it's usually not much of a problem. When Harry asks his client to merge the latest repository changes into his working copy, his copy of file A is somehow flagged as being in a state of conflict: he'll be able to see both sets of conflicting changes, and manually choose between them. Note that software can't automatically resolve conflicts; only humans are capable of understanding and making the necessary intelligent choices. Once Harry has manually resolved the overlapping changes (perhaps by discussing the conflict with Sally!), he can safely save the merged file back to the repository."\r
801 msgstr ""\r
802 \r
803 #: ../source/TortoiseGit_en.xml:947\r
804 #.(para)\r
805 msgid "The copy-modify-merge model may sound a bit chaotic, but in practice, it runs extremely smoothly. Users can work in parallel, never waiting for one another. When they work on the same files, it turns out that most of their concurrent changes don't overlap at all; conflicts are infrequent. And the amount of time it takes to resolve conflicts is far less than the time lost by a locking system."\r
806 msgstr ""\r
807 \r
808 #: ../source/TortoiseGit_en.xml:956\r
809 #.(para)\r
810 msgid "In the end, it all comes down to one critical factor: user communication. When users communicate poorly, both syntactic and semantic conflicts increase. No system can force users to communicate perfectly, and no system can detect semantic conflicts. So there's no point in being lulled into a false promise that a locking system will somehow prevent conflicts; in practice, locking seems to inhibit productivity more than anything else."\r
811 msgstr ""\r
812 \r
813 #: ../source/TortoiseGit_en.xml:966\r
814 #.(para)\r
815 msgid "There is one common situation where the lock-modify-unlock model comes out better, and that is where you have unmergeable files. For example if your repository contains some graphic images, and two people change the image at the same time, there is no way for those changes to be merged together. Either Harry or Sally will lose their changes."\r
816 msgstr ""\r
817 \r
818 #: ../source/TortoiseGit_en.xml:976\r
819 #.(title)\r
820 msgid "What does Git Do?"\r
821 msgstr ""\r
822 \r
823 #: ../source/TortoiseGit_en.xml:977\r
824 #.(para)\r
825 msgid "Git uses the copy-modify-merge solution by default, and in many cases this is all you will ever need. However, as of Version 1.2, Git also supports file locking, so if you have unmergeable files, or if you are simply forced into a locking policy by management, Git will still provide the features you need."\r
826 msgstr ""\r
827 \r
828 #: ../source/TortoiseGit_en.xml:989\r
829 #.(title)\r
830 msgid "Git in Action"\r
831 msgstr ""\r
832 \r
833 #: ../source/TortoiseGit_en.xml:991\r
834 #.(title)\r
835 msgid "Working Copies"\r
836 msgstr ""\r
837 \r
838 #: ../source/TortoiseGit_en.xml:993\r
839 #.(primary)\r
840 msgid "working copy"\r
841 msgstr ""\r
842 \r
843 #: ../source/TortoiseGit_en.xml:995\r
844 #.(para)\r
845 msgid "You've already read about working copies; now we'll demonstrate how the Git client creates and uses them."\r
846 msgstr ""\r
847 \r
848 #: ../source/TortoiseGit_en.xml:1000\r
849 #.(para)\r
850 msgid "A Git working copy is an ordinary directory tree on your local system, containing a collection of files. You can edit these files however you wish, and if they're source code files, you can compile your program from them in the usual way. Your working copy is your own private work area: Git will never incorporate other people's changes, nor make your own changes available to others, until you explicitly tell it to do so."\r
851 msgstr ""\r
852 \r
853 #: ../source/TortoiseGit_en.xml:1010\r
854 #.(para)\r
855 msgid "After you've made some changes to the files in your working copy and verified that they work properly, Git provides you with commands to <emphasis>publish</emphasis> your changes to the other people working with you on your project (by writing to the repository). If other people publish their own changes, Git provides you with commands to merge those changes into your working directory (by reading from the repository)."\r
856 msgstr ""\r
857 \r
858 #: ../source/TortoiseGit_en.xml:1020\r
859 #.(para)\r
860 msgid "A working copy also contains some extra files, created and maintained by Git, to help it carry out these commands. In particular, each directory in your working copy contains a subdirectory named <filename>.svn</filename>, also known as the working copy <firstterm>administrative directory</firstterm>. The files in each administrative directory help Git recognize which files contain unpublished changes, and which files are out-of-date with respect to others' work."\r
861 msgstr ""\r
862 \r
863 #: ../source/TortoiseGit_en.xml:1031\r
864 #.(para)\r
865 msgid "A typical Git repository often holds the files (or source code) for several projects; usually, each project is a subdirectory in the repository's filesystem tree. In this arrangement, a user's working copy will usually correspond to a particular subtree of the repository."\r
866 msgstr ""\r
867 \r
868 #: ../source/TortoiseGit_en.xml:1038\r
869 #.(para)\r
870 msgid "For example, suppose you have a repository that contains two software projects."\r
871 msgstr ""\r
872 \r
873 #: ../source/TortoiseGit_en.xml:1043\r
874 #.(title)\r
875 msgid "The Repository's Filesystem"\r
876 msgstr ""\r
877 \r
878 #: ../source/TortoiseGit_en.xml:1046\r
879 #.(para)\r
880 msgid "In other words, the repository's root directory has two subdirectories: <filename>paint</filename> and <filename>calc</filename>."\r
881 msgstr ""\r
882 \r
883 #: ../source/TortoiseGit_en.xml:1051\r
884 #.(para)\r
885 msgid "To get a working copy, you must <firstterm>check out</firstterm> some subtree of the repository. (The term <emphasis>check out</emphasis> may sound like it has something to do with locking or reserving resources, but it doesn't; it simply creates a private copy of the project for you)."\r
886 msgstr ""\r
887 \r
888 #: ../source/TortoiseGit_en.xml:1058\r
889 #.(para)\r
890 msgid "Suppose you make changes to <filename>button.c</filename>. Since the <filename>.svn</filename> directory remembers the file's modification date and original contents, Git can tell that you've changed the file. However, Git does not make your changes public until you explicitly tell it to. The act of publishing your changes is more commonly known as <firstterm>committing</firstterm> (or <firstterm>checking in</firstterm>) changes to the repository."\r
891 msgstr ""\r
892 \r
893 #: ../source/TortoiseGit_en.xml:1068\r
894 #.(para)\r
895 msgid "To publish your changes to others, you can use Git's <command>commit</command> command."\r
896 msgstr ""\r
897 \r
898 #: ../source/TortoiseGit_en.xml:1072\r
899 #.(para)\r
900 msgid "Now your changes to <filename>button.c</filename> have been committed to the repository; if another user checks out a working copy of <filename>/calc</filename>, they will see your changes in the latest version of the file."\r
901 msgstr ""\r
902 \r
903 #: ../source/TortoiseGit_en.xml:1078\r
904 #.(para)\r
905 msgid "Suppose you have a collaborator, Sally, who checked out a working copy of <filename>/calc</filename> at the same time you did. When you commit your change to <filename>button.c</filename>, Sally's working copy is left unchanged; Git only modifies working copies at the user's request."\r
906 msgstr ""\r
907 \r
908 #: ../source/TortoiseGit_en.xml:1086\r
909 #.(para)\r
910 msgid "To bring her project up to date, Sally can ask Git to <firstterm>update</firstterm> her working copy, by using the Git <command>update</command> command. This will incorporate your changes into her working copy, as well as any others that have been committed since she checked it out."\r
911 msgstr ""\r
912 \r
913 #: ../source/TortoiseGit_en.xml:1094\r
914 #.(para)\r
915 msgid "Note that Sally didn't need to specify which files to update; Git uses the information in the <filename>.svn</filename> directory, and further information in the repository, to decide which files need to be brought up to date."\r
916 msgstr ""\r
917 \r
918 #: ../source/TortoiseGit_en.xml:1103\r
919 #.(title)\r
920 msgid "Repository URLs"\r
921 msgstr ""\r
922 \r
923 #: ../source/TortoiseGit_en.xml:1104\r
924 #.(para)\r
925 msgid "Git repositories can be accessed through many different methods - on local disk, or through various network protocols. A repository location, however, is always a URL. The URL schema indicates the access method:"\r
926 msgstr ""\r
927 \r
928 #: ../source/TortoiseGit_en.xml:1112\r
929 #.(title)\r
930 msgid "Repository Access URLs"\r
931 msgstr ""\r
932 \r
933 #: ../source/TortoiseGit_en.xml:1118\r
934 #.(entry)\r
935 msgid "Schema"\r
936 msgstr ""\r
937 \r
938 #: ../source/TortoiseGit_en.xml:1119\r
939 #.(entry)\r
940 msgid "Access Method"\r
941 msgstr ""\r
942 \r
943 #: ../source/TortoiseGit_en.xml:1125\r
944 #.(literal)\r
945 msgid "file://"\r
946 msgstr ""\r
947 \r
948 #: ../source/TortoiseGit_en.xml:1127\r
949 #.(entry)\r
950 msgid "Direct repository access on local or network drive."\r
951 msgstr ""\r
952 \r
953 #: ../source/TortoiseGit_en.xml:1133\r
954 #.(literal)\r
955 #: ../source/TortoiseGit_en.xml:1144\r
956 #.(literal)\r
957 msgid "http://"\r
958 msgstr ""\r
959 \r
960 #: ../source/TortoiseGit_en.xml:1135\r
961 #.(entry)\r
962 msgid "Access via WebDAV protocol to Git-aware Apache server."\r
963 msgstr ""\r
964 \r
965 #: ../source/TortoiseGit_en.xml:1141\r
966 #.(literal)\r
967 msgid "https://"\r
968 msgstr ""\r
969 \r
970 #: ../source/TortoiseGit_en.xml:1143\r
971 #.(entry)\r
972 msgid "Same as <placeholder-1/>, but with SSL encryption."\r
973 msgstr ""\r
974 \r
975 #: ../source/TortoiseGit_en.xml:1149\r
976 #.(literal)\r
977 msgid "svn://"\r
978 msgstr ""\r
979 \r
980 #: ../source/TortoiseGit_en.xml:1153\r
981 #.(literal)\r
982 #: ../source/TortoiseGit_en.xml:1162\r
983 #.(literal)\r
984 #: ../source/TortoiseGit_en.xml:2483\r
985 #.(primary)\r
986 #: ../source/TortoiseGit_en.xml:2622\r
987 #.(primary)\r
988 msgid "svnserve"\r
989 msgstr ""\r
990 \r
991 #: ../source/TortoiseGit_en.xml:1151\r
992 #.(entry)\r
993 msgid "Unauthenticated TCP/IP access via custom protocol to a <placeholder-1/> server."\r
994 msgstr ""\r
995 \r
996 #: ../source/TortoiseGit_en.xml:1158\r
997 #.(literal)\r
998 msgid "svn+ssh://"\r
999 msgstr ""\r
1000 \r
1001 #: ../source/TortoiseGit_en.xml:1160\r
1002 #.(entry)\r
1003 msgid "authenticated, encrypted TCP/IP access via custom protocol to a <placeholder-1/> server."\r
1004 msgstr ""\r
1005 \r
1006 #: ../source/TortoiseGit_en.xml:1168\r
1007 #.(para)\r
1008 msgid "For the most part, Git's URLs use the standard syntax, allowing for server names and port numbers to be specified as part of the URL. The <literal>file://</literal> access method is normally used for local access, although it can be used with UNC paths to a networked host. The URL therefore takes the form <systemitem class=\"url\">file://hostname/path/to/repos</systemitem>. For the local machine, the <literal>hostname</literal> portion of the URL is required to be either absent or <literal>localhost</literal>. For this reason, local paths normally appear with three slashes, <systemitem class=\"url\">file:///path/to/repos</systemitem>."\r
1009 msgstr ""\r
1010 \r
1011 #: ../source/TortoiseGit_en.xml:1181\r
1012 #.(para)\r
1013 msgid "Also, users of the <literal>file://</literal> scheme on Windows platforms will need to use an unofficially <quote>standard</quote> syntax for accessing repositories that are on the same machine, but on a different drive than the client's current working drive. Either of the two following URL path syntaxes will work where <literal>X</literal> is the drive on which the repository resides:"\r
1014 msgstr ""\r
1015 \r
1016 #: ../source/TortoiseGit_en.xml:1191\r
1017 #.(screen)\r
1018 #, no-wrap\r
1019 msgid "\nfile:///X:/path/to/repos\n...\nfile:///X|/path/to/repos\n...\n"\r
1020 msgstr ""\r
1021 \r
1022 #: ../source/TortoiseGit_en.xml:1197\r
1023 #.(para)\r
1024 msgid "Note that a URL uses ordinary slashes even though the native (non-URL) form of a path on Windows uses backslashes."\r
1025 msgstr ""\r
1026 \r
1027 #: ../source/TortoiseGit_en.xml:1201\r
1028 #.(para)\r
1029 msgid "You can safely access a FSFS repository via a network share, but you <emphasis>cannot</emphasis> access a BDB repository in this way."\r
1030 msgstr ""\r
1031 \r
1032 #: ../source/TortoiseGit_en.xml:1207\r
1033 #.(para)\r
1034 #: ../source/TortoiseGit_en.xml:2609\r
1035 #.(para)\r
1036 msgid "Do not create or access a Berkeley DB repository on a network share. It <emphasis>cannot</emphasis> exist on a remote filesystem. Not even if you have the network drive mapped to a drive letter. If you attempt to use Berkeley DB on a network share, the results are unpredictable - you may see mysterious errors right away, or it may be months before you discover that your repository database is subtly corrupted."\r
1037 msgstr ""\r
1038 \r
1039 #: ../source/TortoiseGit_en.xml:1219\r
1040 #.(title)\r
1041 msgid "Revisions"\r
1042 msgstr ""\r
1043 \r
1044 #: ../source/TortoiseGit_en.xml:1221\r
1045 #.(primary)\r
1046 #: ../source/TortoiseGit_en.xml:9751\r
1047 #.(primary)\r
1048 msgid "revision"\r
1049 msgstr ""\r
1050 \r
1051 #: ../source/TortoiseGit_en.xml:1223\r
1052 #.(para)\r
1053 msgid "A <command>svn commit</command> operation can publish changes to any number of files and directories as a single atomic transaction. In your working copy, you can change files' contents, create, delete, rename and copy files and directories, and then commit the complete set of changes as a unit."\r
1054 msgstr ""\r
1055 \r
1056 #: ../source/TortoiseGit_en.xml:1231\r
1057 #.(para)\r
1058 msgid "In the repository, each commit is treated as an atomic transaction: either all the commits changes take place, or none of them take place. Git retains this atomicity in the face of program crashes, system crashes, network problems, and other users' actions."\r
1059 msgstr ""\r
1060 \r
1061 #: ../source/TortoiseGit_en.xml:1238\r
1062 #.(para)\r
1063 msgid "Each time the repository accepts a commit, this creates a new state of the filesystem tree, called a <firstterm>revision</firstterm>. Each revision is assigned a unique natural number, one greater than the number of the previous revision. The initial revision of a freshly created repository is numbered zero, and consists of nothing but an empty root directory."\r
1064 msgstr ""\r
1065 \r
1066 #: ../source/TortoiseGit_en.xml:1247\r
1067 #.(para)\r
1068 msgid "A nice way to visualize the repository is as a series of trees. Imagine an array of revision numbers, starting at 0, stretching from left to right. Each revision number has a filesystem tree hanging below it, and each tree is a <quote>snapshot</quote> of the way the repository looked after each commit."\r
1069 msgstr ""\r
1070 \r
1071 #: ../source/TortoiseGit_en.xml:1260\r
1072 #.(title)\r
1073 msgid "Global Revision Numbers"\r
1074 msgstr ""\r
1075 \r
1076 #: ../source/TortoiseGit_en.xml:1261\r
1077 #.(para)\r
1078 msgid "Unlike those of many other version control systems, Git's revision numbers apply to <emphasis>entire trees</emphasis>, not individual files. Each revision number selects an entire tree, a particular state of the repository after some committed change. Another way to think about it is that revision N represents the state of the repository filesystem after the Nth commit. When a Git user talks about ``revision 5 of <filename>foo.c</filename>'', they really mean ``<filename>foo.c</filename> as it appears in revision 5.'' Notice that in general, revisions N and M of a file do <emphasis>not</emphasis> necessarily differ!"\r
1079 msgstr ""\r
1080 \r
1081 #: ../source/TortoiseGit_en.xml:1276\r
1082 #.(para)\r
1083 msgid "It's important to note that working copies do not always correspond to any single revision in the repository; they may contain files from several different revisions. For example, suppose you check out a working copy from a repository whose most recent revision is 4:"\r
1084 msgstr ""\r
1085 \r
1086 #: ../source/TortoiseGit_en.xml:1283\r
1087 #.(screen)\r
1088 #, no-wrap\r
1089 msgid "\ncalc/Makefile:4\n     integer.c:4\n     button.c:4\n"\r
1090 msgstr ""\r
1091 \r
1092 #: ../source/TortoiseGit_en.xml:1288\r
1093 #.(para)\r
1094 msgid "At the moment, this working directory corresponds exactly to revision 4 in the repository. However, suppose you make a change to <filename>button.c</filename>, and commit that change. Assuming no other commits have taken place, your commit will create revision 5 of the repository, and your working copy will now look like this:"\r
1095 msgstr ""\r
1096 \r
1097 #: ../source/TortoiseGit_en.xml:1296\r
1098 #.(screen)\r
1099 #, no-wrap\r
1100 msgid "\ncalc/Makefile:4\n     integer.c:4\n     button.c:5\n"\r
1101 msgstr ""\r
1102 \r
1103 #: ../source/TortoiseGit_en.xml:1301\r
1104 #.(para)\r
1105 msgid "Suppose that, at this point, Sally commits a change to <filename>integer.c</filename>, creating revision 6. If you use <command>svn update</command> to bring your working copy up to date, then it will look like this:"\r
1106 msgstr ""\r
1107 \r
1108 #: ../source/TortoiseGit_en.xml:1307\r
1109 #.(screen)\r
1110 #, no-wrap\r
1111 msgid "\ncalc/Makefile:6\n     integer.c:6\n     button.c:6\n"\r
1112 msgstr ""\r
1113 \r
1114 #: ../source/TortoiseGit_en.xml:1312\r
1115 #.(para)\r
1116 msgid "Sally's changes to <filename>integer.c</filename> will appear in your working copy, and your change will still be present in <filename>button.c</filename>. In this example, the text of <filename>Makefile</filename> is identical in revisions 4, 5, and 6, but Git will mark your working copy of <filename>Makefile</filename> with revision 6 to indicate that it is still current. So, after you do a clean update at the top of your working copy, it will generally correspond to exactly one revision in the repository."\r
1117 msgstr ""\r
1118 \r
1119 #: ../source/TortoiseGit_en.xml:1325\r
1120 #.(title)\r
1121 msgid "How Working Copies Track the Repository"\r
1122 msgstr ""\r
1123 \r
1124 #: ../source/TortoiseGit_en.xml:1326\r
1125 #.(para)\r
1126 msgid "For each file in a working directory, Git records two essential pieces of information in the <filename>.svn/</filename> administrative area:"\r
1127 msgstr ""\r
1128 \r
1129 #: ../source/TortoiseGit_en.xml:1332\r
1130 #.(para)\r
1131 msgid "what revision your working file is based on (this is called the file's <firstterm>working revision</firstterm>), and"\r
1132 msgstr ""\r
1133 \r
1134 #: ../source/TortoiseGit_en.xml:1339\r
1135 #.(para)\r
1136 msgid "a timestamp recording when the local copy was last updated by the repository."\r
1137 msgstr ""\r
1138 \r
1139 #: ../source/TortoiseGit_en.xml:1345\r
1140 #.(para)\r
1141 msgid "Given this information, by talking to the repository, Git can tell which of the following four states a working file is in:"\r
1142 msgstr ""\r
1143 \r
1144 #: ../source/TortoiseGit_en.xml:1352\r
1145 #.(term)\r
1146 msgid "Unchanged, and current"\r
1147 msgstr ""\r
1148 \r
1149 #: ../source/TortoiseGit_en.xml:1354\r
1150 #.(para)\r
1151 msgid "The file is unchanged in the working directory, and no changes to that file have been committed to the repository since its working revision. A <command>commit</command> of the file will do nothing, and an <command>update</command> of the file will do nothing."\r
1152 msgstr ""\r
1153 \r
1154 #: ../source/TortoiseGit_en.xml:1365\r
1155 #.(term)\r
1156 msgid "Locally changed, and current"\r
1157 msgstr ""\r
1158 \r
1159 #: ../source/TortoiseGit_en.xml:1367\r
1160 #.(para)\r
1161 msgid "The file has been changed in the working directory, and no changes to that file have been committed to the repository since its base revision. There are local changes that have not been committed to the repository, thus a <command>commit</command> of the file will succeed in publishing your changes, and an <command>update</command> of the file will do nothing."\r
1162 msgstr ""\r
1163 \r
1164 #: ../source/TortoiseGit_en.xml:1379\r
1165 #.(term)\r
1166 msgid "Unchanged, and out-of-date"\r
1167 msgstr ""\r
1168 \r
1169 #: ../source/TortoiseGit_en.xml:1381\r
1170 #.(para)\r
1171 msgid "The file has not been changed in the working directory, but it has been changed in the repository. The file should eventually be updated, to make it current with the public revision. A <command>commit</command> of the file will do nothing, and an <command>update</command> of the file will fold the latest changes into your working copy."\r
1172 msgstr ""\r
1173 \r
1174 #: ../source/TortoiseGit_en.xml:1393\r
1175 #.(term)\r
1176 msgid "Locally changed, and out-of-date"\r
1177 msgstr ""\r
1178 \r
1179 #: ../source/TortoiseGit_en.xml:1395\r
1180 #.(para)\r
1181 msgid "The file has been changed both in the working directory, and in the repository. A <command>commit</command> of the file will fail with an <emphasis>out-of-date</emphasis> error. The file should be updated first; an <command>update</command> command will attempt to merge the public changes with the local changes. If Git can't complete the merge in a plausible way automatically, it leaves it to the user to resolve the conflict."\r
1182 msgstr ""\r
1183 \r
1184 #: ../source/TortoiseGit_en.xml:1412\r
1185 #.(title)\r
1186 msgid "Summary"\r
1187 msgstr ""\r
1188 \r
1189 #: ../source/TortoiseGit_en.xml:1413\r
1190 #.(para)\r
1191 msgid "We've covered a number of fundamental Git concepts in this chapter:"\r
1192 msgstr ""\r
1193 \r
1194 #: ../source/TortoiseGit_en.xml:1419\r
1195 #.(para)\r
1196 msgid "We've introduced the notions of the central repository, the client working copy, and the array of repository revision trees."\r
1197 msgstr ""\r
1198 \r
1199 #: ../source/TortoiseGit_en.xml:1425\r
1200 #.(para)\r
1201 msgid "We've seen some simple examples of how two collaborators can use Git to publish and receive changes from one another, using the 'copy-modify-merge' model."\r
1202 msgstr ""\r
1203 \r
1204 #: ../source/TortoiseGit_en.xml:1432\r
1205 #.(para)\r
1206 msgid "We've talked a bit about the way Git tracks and manages information in a working copy."\r
1207 msgstr ""\r
1208 \r
1209 #: ../source/TortoiseGit_en.xml:1445\r
1210 #.(title)\r
1211 msgid "Setting Up A Server"\r
1212 msgstr ""\r
1213 \r
1214 #: ../source/TortoiseGit_en.xml:1447\r
1215 #.(para)\r
1216 msgid "To use TortoiseGit (or any other Git client), you need a place where your repositories are located. You can either store your repositories locally and access them using the <literal>file://</literal> protocol or you can place them on a server and access them with the <literal>http://</literal> or <literal>svn://</literal> protocols. The two server protocols can also be encrypted. You use <literal>https://</literal> or <literal>svn+ssh://</literal>. This chapter shows you step by step on how you can set up such a server on a Windows machine."\r
1217 msgstr ""\r
1218 \r
1219 #: ../source/TortoiseGit_en.xml:1458\r
1220 #.(para)\r
1221 msgid "More detailed information on the Git server options, and how to choose the best architecture for your situation, can be found in the Git book under <ulink url=\"http://svnbook.red-bean.com/en/1.5/svn.serverconfig.html\"><citetitle>Server Configuration</citetitle></ulink>."\r
1222 msgstr ""\r
1223 \r
1224 #: ../source/TortoiseGit_en.xml:1466\r
1225 #.(para)\r
1226 msgid "If you don't have a server and you work alone then local repositories are probably your best choice. You can skip this chapter and go directly to <xref linkend=\"tsvn-repository\"/>."\r
1227 msgstr ""\r
1228 \r
1229 #: ../source/TortoiseGit_en.xml:1471\r
1230 #.(para)\r
1231 msgid "If you were thinking about setting up a multi-user repository on a network share, think again. Read <xref linkend=\"tsvn-repository-local-share\"/> to find out why we think this is a bad idea."\r
1232 msgstr ""\r
1233 \r
1234 #: ../source/TortoiseGit_en.xml:1480\r
1235 #.(title)\r
1236 msgid "Apache Based Server"\r
1237 msgstr ""\r
1238 \r
1239 #: ../source/TortoiseGit_en.xml:1484\r
1240 #.(primary)\r
1241 msgid "Apache"\r
1242 msgstr ""\r
1243 \r
1244 #: ../source/TortoiseGit_en.xml:1486\r
1245 #.(para)\r
1246 msgid "The most flexible of all possible server setups for Git is the Apache based one. Although a bit more complicated to set up, it offers benefits that other servers cannot:"\r
1247 msgstr ""\r
1248 \r
1249 #: ../source/TortoiseGit_en.xml:1492\r
1250 #.(primary)\r
1251 #: ../source/TortoiseGit_en.xml:1496\r
1252 #.(term)\r
1253 msgid "WebDAV"\r
1254 msgstr ""\r
1255 \r
1256 #: ../source/TortoiseGit_en.xml:1498\r
1257 #.(para)\r
1258 msgid "The Apache based Git server uses the WebDAV protocol which is supported by many other programs as well. You could e.g. mount such a repository as a <quote>Web folder</quote> in the Windows explorer and then access it like any other folder in the file system."\r
1259 msgstr ""\r
1260 \r
1261 #: ../source/TortoiseGit_en.xml:1509\r
1262 #.(term)\r
1263 msgid "Browsing The Repository"\r
1264 msgstr ""\r
1265 \r
1266 #: ../source/TortoiseGit_en.xml:1511\r
1267 #.(para)\r
1268 msgid "You can point your browser to the URL of your repository and browse the contents of it without having a Git client installed. This gives access to your data to a much wider circle of users."\r
1269 msgstr ""\r
1270 \r
1271 #: ../source/TortoiseGit_en.xml:1521\r
1272 #.(term)\r
1273 #: ../source/TortoiseGit_en.xml:3646\r
1274 #.(title)\r
1275 msgid "Authentication"\r
1276 msgstr ""\r
1277 \r
1278 #: ../source/TortoiseGit_en.xml:1523\r
1279 #.(para)\r
1280 msgid "You can use any authentication mechanism Apache supports, including SSPI and LDAP."\r
1281 msgstr ""\r
1282 \r
1283 #: ../source/TortoiseGit_en.xml:1530\r
1284 #.(term)\r
1285 msgid "Security"\r
1286 msgstr ""\r
1287 \r
1288 #: ../source/TortoiseGit_en.xml:1532\r
1289 #.(para)\r
1290 msgid "Since Apache is very stable and secure, you automatically get the same security for your repository. This includes SSL encryption."\r
1291 msgstr ""\r
1292 \r
1293 #: ../source/TortoiseGit_en.xml:1542\r
1294 #.(title)\r
1295 msgid "Installing Apache"\r
1296 msgstr ""\r
1297 \r
1298 #: ../source/TortoiseGit_en.xml:1547\r
1299 #.(para)\r
1300 msgid "Please note that Windows XP without the service pack 1 will lead to bogus network data and could therefore corrupt your repository!"\r
1301 msgstr ""\r
1302 \r
1303 #: ../source/TortoiseGit_en.xml:1555\r
1304 #.(para)\r
1305 msgid "Download the latest version of the Apache web server from <ulink url=\"http://httpd.apache.org/download.cgi\"><citetitle>http://httpd.apache.org/download.cgi</citetitle></ulink>. Make sure that you download the version 2.2.x - the version 1.3.xx won't work!"\r
1306 msgstr ""\r
1307 \r
1308 #: ../source/TortoiseGit_en.xml:1564\r
1309 #.(para)\r
1310 msgid "The msi installer for Apache can be found by clicking on <literal>other files</literal>, then browse to <filename>binaries/win32</filename>. You may want to choose the msi file <filename>apache-2.2.x-win32-x86-openssl-0.9.x.msi</filename> (the one that includes OpenSSL)."\r
1311 msgstr ""\r
1312 \r
1313 #: ../source/TortoiseGit_en.xml:1572\r
1314 #.(para)\r
1315 msgid "Once you have the Apache2 installer you can double click on it and it will guide you through the installation process. Make sure that you enter the server-URL correctly (if you don't have a DNS name for your server just enter the IP-address). I recommend to install Apache <emphasis>for All Users, on Port 80, as a Service</emphasis>. Note: if you already have IIS or any other program running which listens on port 80 the installation might fail. If that happens, go to the programs directory, <filename>\\Apache Group\\Apache2\\conf</filename> and locate the file <filename>httpd.conf</filename>. Edit that file so that <literal>Listen 80</literal> is changed to a free port, e.g. <literal>Listen 81</literal>. Then restart the installation - this time it should finish without problems."\r
1316 msgstr ""\r
1317 \r
1318 #: ../source/TortoiseGit_en.xml:1594\r
1319 #.(para)\r
1320 msgid "Now test if the Apache web server is running correctly by pointing your web browser to <systemitem class=\"url\">http://localhost/</systemitem> - a preconfigured Website should show up."\r
1321 msgstr ""\r
1322 \r
1323 #: ../source/TortoiseGit_en.xml:1603\r
1324 #.(para)\r
1325 msgid "If you decide to install Apache as a service, be warned that by default it will run as the local system account. It would be a more secure practice for you to create a separate account for Apache to run as."\r
1326 msgstr ""\r
1327 \r
1328 #: ../source/TortoiseGit_en.xml:1609\r
1329 #.(para)\r
1330 msgid "Make sure that the account on the server that Apache is running as has an explicit entry in the repository directory's access control list (right-click directory | properties | security), with full control. Otherwise, users will not be able to commit their changes."\r
1331 msgstr ""\r
1332 \r
1333 #: ../source/TortoiseGit_en.xml:1615\r
1334 #.(para)\r
1335 msgid "Even if Apache runs as local system, you still need such an entry (which will be the SYSTEM account in this case)."\r
1336 msgstr ""\r
1337 \r
1338 #: ../source/TortoiseGit_en.xml:1619\r
1339 #.(para)\r
1340 msgid "If Apache does not have this permission set up, your users will get <quote>Access denied</quote> error messages, which show up in the Apache error log as error 500."\r
1341 msgstr ""\r
1342 \r
1343 #: ../source/TortoiseGit_en.xml:1543\r
1344 #.(para)\r
1345 msgid "The first thing you need before installing Apache is a computer with Windows 2000, Windows XP+SP1, Windows 2003, Vista or Server 2008. <warning><placeholder-1/></warning><placeholder-2/><caution><placeholder-3/><placeholder-4/><placeholder-5/><placeholder-6/></caution>"\r
1346 msgstr ""\r
1347 \r
1348 #: ../source/TortoiseGit_en.xml:1628\r
1349 #.(title)\r
1350 msgid "Installing Git"\r
1351 msgstr ""\r
1352 \r
1353 #: ../source/TortoiseGit_en.xml:1632\r
1354 #.(para)\r
1355 msgid "Download the latest version of the Git Win32 binaries for Apache. Be sure to get the right version to integrate with your version of Apache, otherwise you will get an obscure error message when you try to restart. If you have Apache 2.2.x go to <ulink url=\"http://Git.tigris.org/servlets/ProjectDocumentList?folderID=8100\"><citetitle>http://Git.tigris.org/servlets/ProjectDocumentList?folderID=8100</citetitle></ulink>."\r
1356 msgstr ""\r
1357 \r
1358 #: ../source/TortoiseGit_en.xml:1644\r
1359 #.(para)\r
1360 msgid "Run the Git installer and follow the instructions. If the Git installer recognized that you've installed Apache, then you're almost done. If it couldn't find an Apache server then you have to do some additional steps."\r
1361 msgstr ""\r
1362 \r
1363 #: ../source/TortoiseGit_en.xml:1654\r
1364 #.(primary)\r
1365 #: ../source/TortoiseGit_en.xml:1982\r
1366 #.(primary)\r
1367 msgid "mod_authz_svn"\r
1368 msgstr ""\r
1369 \r
1370 #: ../source/TortoiseGit_en.xml:1656\r
1371 #.(para)\r
1372 msgid "Using the windows explorer, go to the installation directory of Git (usually <filename>c:\\program files\\Git</filename>) and find the files <filename>/httpd/mod_dav_svn.so</filename> and <filename>mod_authz_svn.so</filename>. Copy these files to the Apache modules directory (usually <filename>c:\\program files\\apache group\\apache2\\modules </filename>)."\r
1373 msgstr ""\r
1374 \r
1375 #: ../source/TortoiseGit_en.xml:1669\r
1376 #.(para)\r
1377 msgid "Copy the file <filename>/bin/libdb*.dll</filename> and <filename>/bin/intl3_svn.dll</filename> from the Git installation directory to the Apache bin directory."\r
1378 msgstr ""\r
1379 \r
1380 #: ../source/TortoiseGit_en.xml:1677\r
1381 #.(para)\r
1382 msgid "Edit Apache's configuration file (usually <filename> C:\\Program Files\\Apache Group\\Apache2\\conf\\httpd.conf</filename>) with a text editor such as Notepad and make the following changes:"\r
1383 msgstr ""\r
1384 \r
1385 #: ../source/TortoiseGit_en.xml:1683\r
1386 #.(para)\r
1387 msgid "Uncomment (remove the '<literal>#</literal>' mark) the following lines: <screen>\n#LoadModule dav_fs_module modules/mod_dav_fs.so\n#LoadModule dav_module modules/mod_dav.so\n</screen> Add the following two lines to the end of the <literal>LoadModule</literal> section. <screen>\nLoadModule dav_svn_module modules/mod_dav_svn.so\nLoadModule authz_svn_module modules/mod_authz_svn.so\n</screen>"\r
1388 msgstr ""\r
1389 \r
1390 #: ../source/TortoiseGit_en.xml:1702\r
1391 #.(title)\r
1392 #: ../source/TortoiseGit_en.xml:12837\r
1393 #.(term)\r
1394 msgid "Configuration"\r
1395 msgstr ""\r
1396 \r
1397 #: ../source/TortoiseGit_en.xml:1713\r
1398 #.(para)\r
1399 msgid "At the end of the config file add the following lines: <screen>\n&lt;Location /svn&gt;\n  DAV svn\n  SVNListParentPath on\n  SVNParentPath D:\\SVN\n  #SVNIndexXSLT \"/svnindex.xsl\"\n  AuthType Basic\n  AuthName \"Git repositories\"\n  AuthUserFile passwd\n  #AuthzSVNAccessFile svnaccessfile\n  Require valid-user\n&lt;/Location&gt;\n</screen> This configures Apache so that all your Git repositories are physically located below <filename>D:\\SVN</filename>. The repositories are served to the outside world from the URL: <systemitem class=\"url\"> http://MyServer/svn/ </systemitem>. Access is restricted to known users/passwords listed in the <filename>passwd</filename> file."\r
1400 msgstr ""\r
1401 \r
1402 #: ../source/TortoiseGit_en.xml:1740\r
1403 #.(para)\r
1404 msgid "To create the <filename>passwd</filename> file, open the command prompt (DOS-Box) again, change to the <filename>apache2</filename> folder (usually <filename>c:\\program files\\apache group\\apache2</filename>) and create the file by entering <screen>\nbin\\htpasswd -c passwd &lt;username&gt;\n</screen> This will create a file with the name <filename>passwd</filename> which is used for authentication. Additional users can be added with <screen>\nbin\\htpasswd passwd &lt;username&gt;\n</screen>"\r
1405 msgstr ""\r
1406 \r
1407 #: ../source/TortoiseGit_en.xml:1759\r
1408 #.(para)\r
1409 msgid "Restart the Apache service again."\r
1410 msgstr ""\r
1411 \r
1412 #: ../source/TortoiseGit_en.xml:1764\r
1413 #.(para)\r
1414 msgid "Point your browser to <systemitem class=\"url\">http://MyServer/svn/MyNewRepository</systemitem> (where <filename>MyNewRepository</filename> is the name of the Git repository you created before). If all went well you should be prompted for a username and password, then you can see the contents of your repository."\r
1415 msgstr ""\r
1416 \r
1417 #: ../source/TortoiseGit_en.xml:1703\r
1418 #.(para)\r
1419 msgid "Now you have set up Apache and Git, but Apache doesn't know how to handle Git clients like TortoiseGit yet. To get Apache to know which URL will be used for Git repositories you have to edit the Apache configuration file (usually located in <filename>c:\\program files\\apache group\\apache2\\conf\\httpd.conf</filename>) with any text editor you like (e.g. Notepad): <placeholder-1/>"\r
1420 msgstr ""\r
1421 \r
1422 #: ../source/TortoiseGit_en.xml:1777\r
1423 #.(primary)\r
1424 msgid "SVNPath"\r
1425 msgstr ""\r
1426 \r
1427 #: ../source/TortoiseGit_en.xml:1780\r
1428 #.(primary)\r
1429 #: ../source/TortoiseGit_en.xml:1815\r
1430 #.(literal)\r
1431 #: ../source/TortoiseGit_en.xml:1950\r
1432 #.(primary)\r
1433 msgid "SVNParentPath"\r
1434 msgstr ""\r
1435 \r
1436 #: ../source/TortoiseGit_en.xml:1785\r
1437 #.(title)\r
1438 msgid "Apache <filename>httpd.conf</filename> Settings"\r
1439 msgstr ""\r
1440 \r
1441 #: ../source/TortoiseGit_en.xml:1791\r
1442 #.(entry)\r
1443 msgid "Setting"\r
1444 msgstr ""\r
1445 \r
1446 #: ../source/TortoiseGit_en.xml:1792\r
1447 #.(entry)\r
1448 msgid "Explanation"\r
1449 msgstr ""\r
1450 \r
1451 #: ../source/TortoiseGit_en.xml:1800\r
1452 #.(systemitem)\r
1453 msgid "http://MyServer/svn/"\r
1454 msgstr ""\r
1455 \r
1456 #: ../source/TortoiseGit_en.xml:1798\r
1457 #.(entry)\r
1458 msgid "means that the Git repositories are available from the URL <placeholder-1/>"\r
1459 msgstr ""\r
1460 \r
1461 #: ../source/TortoiseGit_en.xml:1805\r
1462 #.(entry)\r
1463 msgid "tells Apache which module will be responsible to serve that URL - in this case the Git module."\r
1464 msgstr ""\r
1465 \r
1466 #: ../source/TortoiseGit_en.xml:1812\r
1467 #.(entry)\r
1468 msgid "For Git version 1.3 and higher, this directive enables listing all the available repositories under <placeholder-1/>."\r
1469 msgstr ""\r
1470 \r
1471 #: ../source/TortoiseGit_en.xml:1822\r
1472 #.(filename)\r
1473 msgid "D:\\SVN"\r
1474 msgstr ""\r
1475 \r
1476 #: ../source/TortoiseGit_en.xml:1820\r
1477 #.(entry)\r
1478 msgid "tells Git to look for repositories below <placeholder-1/>"\r
1479 msgstr ""\r
1480 \r
1481 #: ../source/TortoiseGit_en.xml:1827\r
1482 #.(entry)\r
1483 msgid "Used to make the browsing with a web browser prettier."\r
1484 msgstr ""\r
1485 \r
1486 #: ../source/TortoiseGit_en.xml:1834\r
1487 #.(entry)\r
1488 msgid "is to activate basic authentication, i.e. Username/password"\r
1489 msgstr ""\r
1490 \r
1491 #: ../source/TortoiseGit_en.xml:1841\r
1492 #.(entry)\r
1493 msgid "is used as an information whenever an authentication dialog pops up to tell the user what the authentication is for"\r
1494 msgstr ""\r
1495 \r
1496 #: ../source/TortoiseGit_en.xml:1848\r
1497 #.(entry)\r
1498 msgid "specifies which password file to use for authentication"\r
1499 msgstr ""\r
1500 \r
1501 #: ../source/TortoiseGit_en.xml:1854\r
1502 #.(entry)\r
1503 msgid "Location of the Access file for paths inside a Git repository"\r
1504 msgstr ""\r
1505 \r
1506 #: ../source/TortoiseGit_en.xml:1861\r
1507 #.(entry)\r
1508 msgid "specifies that only users who entered a correct username/password are allowed to access the URL"\r
1509 msgstr ""\r
1510 \r
1511 #: ../source/TortoiseGit_en.xml:1873\r
1512 #.(para)\r
1513 msgid "If you want your repository to have read access for everyone but write access only for specific users you can change the line <screen>\nRequire valid-user\n</screen> to <screen>\n&lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;\nRequire valid-user\n&lt;/LimitExcept&gt;\n</screen>"\r
1514 msgstr ""\r
1515 \r
1516 #: ../source/TortoiseGit_en.xml:1888\r
1517 #.(para)\r
1518 msgid "Using a <filename>passwd</filename> file limits and grants access to all of your repositories as a unit. If you want more control over which users have access to each folder inside a repository you can uncomment the line <screen>\n#AuthzSVNAccessFile svnaccessfile\n</screen> and create a Git access file. Apache will make sure that only valid users are able to access your <filename>/svn</filename> location, and will then pass the username to Git's <literal>AuthzSVNAccessFile</literal> module so that it can enforce more granular access based upon rules listed in the Git access file. Note that paths are specified either as <literal>repos:path</literal> or simply <literal>path</literal>. If you don't specify a particular repository, that access rule will apply to all repositories under <literal>SVNParentPath</literal>. The format of the authorization-policy file used by <literal>mod_authz_svn</literal> is described in <xref linkend=\"tsvn-serversetup-mod_authz_svn\"/>"\r
1519 msgstr ""\r
1520 \r
1521 #: ../source/TortoiseGit_en.xml:1915\r
1522 #.(para)\r
1523 msgid "To make browsing the repository with a web browser 'prettier', uncomment the line <screen>\n#SVNIndexXSLT \"/svnindex.xsl\"\n</screen> and put the files <filename>svnindex.xsl</filename>, <filename>svnindex.css</filename> and <filename>menucheckout.ico</filename> in your document root directory (usually <filename>C:/Program Files/Apache Group/Apache2/htdocs</filename>). The directory is set with the <literal>DocumentRoot</literal> directive in your Apache config file."\r
1524 msgstr ""\r
1525 \r
1526 #: ../source/TortoiseGit_en.xml:1928\r
1527 #.(para)\r
1528 msgid "You can get those three files directly from our source repository at <ulink url=\"http://TortoiseGit.tigris.org/svn/TortoiseGit/trunk/contrib/other/svnindex\"><citetitle>http://TortoiseGit.tigris.org/svn/TortoiseGit/trunk/contrib/other/svnindex</citetitle></ulink>. (<xref linkend=\"tsvn-preface-source\"/> explains how to access the TortoiseGit source repository)."\r
1529 msgstr ""\r
1530 \r
1531 #: ../source/TortoiseGit_en.xml:1936\r
1532 #.(para)\r
1533 msgid "The XSL file from the TortoiseGit repository has a nice gimmick: if you browse the repository with your web browser, then every folder in your repository has an icon on the right shown. If you click on that icon, the TortoiseGit checkout dialog is started for this URL."\r
1534 msgstr ""\r
1535 \r
1536 #: ../source/TortoiseGit_en.xml:1782\r
1537 #.(para)\r
1538 msgid "A short explanation of what you just entered: <placeholder-1/> But that's just an example. There are many, many more possibilities of what you can do with the Apache web server. <placeholder-2/>"\r
1539 msgstr ""\r
1540 \r
1541 #: ../source/TortoiseGit_en.xml:1948\r
1542 #.(title)\r
1543 msgid "Multiple Repositories"\r
1544 msgstr ""\r
1545 \r
1546 #: ../source/TortoiseGit_en.xml:1953\r
1547 #.(primary)\r
1548 msgid "Index of projects"\r
1549 msgstr ""\r
1550 \r
1551 #: ../source/TortoiseGit_en.xml:1955\r
1552 #.(para)\r
1553 msgid "If you used the <literal>SVNParentPath</literal> directive then you don't have to change the Apache config file every time you add a new Git repository. Simply create the new repository under the same location as the first repository and you're done! In my company I have direct access to that specific folder on the server via SMB (normal windows file access). So I just create a new folder there, run the TortoiseGit command <menuchoice><guimenu>TortoiseGit</guimenu><guimenuitem>Create repository here...</guimenuitem></menuchoice> and a new project has a home..."\r
1554 msgstr ""\r
1555 \r
1556 #: ../source/TortoiseGit_en.xml:1969\r
1557 #.(para)\r
1558 msgid "If you are using Git 1.3 or later, you can use the <literal>SVNListParentPath on</literal> directive to allow Apache to produce a listing of all available projects if you point your browser at the parent path rather than at a specific repository."\r
1559 msgstr ""\r
1560 \r
1561 #: ../source/TortoiseGit_en.xml:1977\r
1562 #.(title)\r
1563 msgid "Path-Based Authorization"\r
1564 msgstr ""\r
1565 \r
1566 #: ../source/TortoiseGit_en.xml:1979\r
1567 #.(primary)\r
1568 msgid "Authorization"\r
1569 msgstr ""\r
1570 \r
1571 #: ../source/TortoiseGit_en.xml:1984\r
1572 #.(para)\r
1573 msgid "The <literal>mod_authz_svn</literal> module permits fine-grained control of access permissions based on user names and repository paths. This is available with the Apache server, and as of Git 1.3 it is available with svnserve as well."\r
1574 msgstr ""\r
1575 \r
1576 #: ../source/TortoiseGit_en.xml:1990\r
1577 #.(para)\r
1578 msgid "An example file would look like this: <screen>\n[groups]\nadmin = john, kate\ndevteam1 = john, rachel, sally\ndevteam2 = kate, peter, mark\ndocs = bob, jane, mike\ntraining = zak\n# Default access rule for ALL repositories\n# Everyone can read, admins can write, Dan German is excluded.\n[/]\n* = r\n@admin = rw\ndangerman =\n# Allow developers complete access to their project repos\n[proj1:/]\n@devteam1 = rw\n[proj2:/]\n@devteam2 = rw\n[bigproj:/]\n@devteam1 = rw\n@devteam2 = rw\ntrevor = rw\n# Give the doc people write access to all the docs folders\n[/trunk/doc]\n@docs = rw\n# Give trainees write access in the training repository only\n[TrainingRepos:/]\n@training = rw\n</screen>"\r
1579 msgstr ""\r
1580 \r
1581 #: ../source/TortoiseGit_en.xml:2022\r
1582 #.(para)\r
1583 msgid "Note that checking every path can be an expensive operation, particularly in the case of the revision log. The server checks every changed path in each revision and checks it for readability, which can be time-consuming on revisions which affect large numbers of files."\r
1584 msgstr ""\r
1585 \r
1586 #: ../source/TortoiseGit_en.xml:2029\r
1587 #.(para)\r
1588 msgid "Authentication and authorization are separate processes. If a user wants to gain access to a repository path, she has to meet <emphasis>both</emphasis>, the usual authentication requirements and the authorization requirements of the access file."\r
1589 msgstr ""\r
1590 \r
1591 #: ../source/TortoiseGit_en.xml:2037\r
1592 #.(title)\r
1593 msgid "Authentication With a Windows Domain"\r
1594 msgstr ""\r
1595 \r
1596 #: ../source/TortoiseGit_en.xml:2039\r
1597 #.(primary)\r
1598 msgid "Windows domain"\r
1599 msgstr ""\r
1600 \r
1601 #: ../source/TortoiseGit_en.xml:2042\r
1602 #.(primary)\r
1603 msgid "domaincontroller"\r
1604 msgstr ""\r
1605 \r
1606 #: ../source/TortoiseGit_en.xml:2044\r
1607 #.(para)\r
1608 msgid "As you might have noticed you need to make a username/password entry in the <filename>passwd</filename> file for each user separately. And if (for security reasons) you want your users to periodically change their passwords you have to make the change manually."\r
1609 msgstr ""\r
1610 \r
1611 #: ../source/TortoiseGit_en.xml:2051\r
1612 #.(para)\r
1613 msgid "But there's a solution for that problem - at least if you're accessing the repository from inside a LAN with a windows domain controller: <literal>mod_auth_sspi</literal>!"\r
1614 msgstr ""\r
1615 \r
1616 #: ../source/TortoiseGit_en.xml:2057\r
1617 #.(primary)\r
1618 msgid "SSPI"\r
1619 msgstr ""\r
1620 \r
1621 #: ../source/TortoiseGit_en.xml:2060\r
1622 #.(primary)\r
1623 msgid "NTLM"\r
1624 msgstr ""\r
1625 \r
1626 #: ../source/TortoiseGit_en.xml:2062\r
1627 #.(para)\r
1628 msgid "The original SSPI module was offered by Syneapps including source code. But the development for it has been stopped. But don't despair, the community has picked it up and improved it. It has a new home on <ulink url=\"http://sourceforge.net/projects/mod-auth-sspi/\"><citetitle>SourceForge</citetitle></ulink>."\r
1629 msgstr ""\r
1630 \r
1631 #: ../source/TortoiseGit_en.xml:2073\r
1632 #.(para)\r
1633 msgid "Download the module which matches your apache version, then copy the file <filename>mod_auth_sspi.so</filename> into the Apache modules folder."\r
1634 msgstr ""\r
1635 \r
1636 #: ../source/TortoiseGit_en.xml:2080\r
1637 #.(para)\r
1638 msgid "Edit the Apache config file: add the line <screen>\nLoadModule sspi_auth_module modules/mod_auth_sspi.so\n</screen> to the <literal>LoadModule</literal> section. Make sure you insert this line <emphasis>before</emphasis> the line <screen>\nLoadModule auth_module modules/mod_auth.so\n</screen>"\r
1639 msgstr ""\r
1640 \r
1641 #: ../source/TortoiseGit_en.xml:2093\r
1642 #.(para)\r
1643 msgid "To make the Git location use this type of authentication you have to change the line <screen>\nAuthType Basic\n</screen> to <screen>\nAuthType SSPI\n</screen> also you need to add <screen>\nSSPIAuth On\nSSPIAuthoritative On\nSSPIDomain &lt;domaincontroller&gt;\nSSPIOmitDomain on\nSSPIUsernameCase lower\nSSPIPerRequestAuth on\nSSPIOfferBasic On\n</screen> within the <literal>&lt;Location /svn&gt;</literal> block. If you don't have a domain controller, leave the name of the domain control as <literal>&lt;domaincontroller&gt;</literal>."\r
1644 msgstr ""\r
1645 \r
1646 #: ../source/TortoiseGit_en.xml:2119\r
1647 #.(para)\r
1648 msgid "Note that if you are authenticating using SSPI, then you don't need the <literal>AuthUserFile</literal> line to define a password file any more. Apache authenticates your username and password against your windows domain instead. You will need to update the users list in your <filename>svnaccessfile</filename> to reference <literal>DOMAIN\\username</literal> as well."\r
1649 msgstr ""\r
1650 \r
1651 #: ../source/TortoiseGit_en.xml:2129\r
1652 #.(para)\r
1653 msgid "The SSPI authentication is only enabled for SSL secured connections (https). If you're only using normal http connections to your server, it won't work."\r
1654 msgstr ""\r
1655 \r
1656 #: ../source/TortoiseGit_en.xml:2134\r
1657 #.(para)\r
1658 msgid "To enable SSL on your server, see the chapter: <xref linkend=\"tsvn-serversetup-apache-7\"/>"\r
1659 msgstr ""\r
1660 \r
1661 #: ../source/TortoiseGit_en.xml:2140\r
1662 #.(para)\r
1663 msgid "Git <filename>AuthzSVNAccessFile</filename> files are case sensitive in regard to user names (<literal>JUser</literal> is different from <literal>juser</literal>)."\r
1664 msgstr ""\r
1665 \r
1666 #: ../source/TortoiseGit_en.xml:2145\r
1667 #.(para)\r
1668 msgid "In Microsoft's world, Windows domains and user names are not case sensitive. Even so, some network administrators like to create user accounts in CamelCase (e.g. <literal>JUser</literal>)."\r
1669 msgstr ""\r
1670 \r
1671 #: ../source/TortoiseGit_en.xml:2150\r
1672 #.(para)\r
1673 msgid "This difference can bite you when using SSPI authentication as the windows domain and user names are passed to Git in the same case as the user types them in at the prompt. Internet Explorer often passes the username to Apache automatically using whatever case the account was created with."\r
1674 msgstr ""\r
1675 \r
1676 #: ../source/TortoiseGit_en.xml:2158\r
1677 #.(para)\r
1678 msgid "The end result is that you may need at least two entries in your <literal>AuthzSVNAccessFile</literal> for each user -- a lowercase entry and an entry in the same case that Internet Explorer passes to Apache. You will also need to train your users to also type in their credentials using lower case when accessing repositories via TortoiseGit."\r
1679 msgstr ""\r
1680 \r
1681 #: ../source/TortoiseGit_en.xml:2166\r
1682 #.(para)\r
1683 msgid "Apache's Error and Access logs are your best friend in deciphering problems such as these as they will help you determine the username string passed onto Git's <literal>AuthzSVNAccessFile</literal> module. You may need to experiment with the exact format of the user string in the <literal>svnaccessfile</literal> (e.g. <literal>DOMAIN\\user</literal> vs. <literal>DOMAIN//user</literal>) in order to get everything working."\r
1684 msgstr ""\r
1685 \r
1686 #: ../source/TortoiseGit_en.xml:2180\r
1687 #.(title)\r
1688 msgid "Multiple Authentication Sources"\r
1689 msgstr ""\r
1690 \r
1691 #: ../source/TortoiseGit_en.xml:2182\r
1692 #.(primary)\r
1693 msgid "Multiple authentication"\r
1694 msgstr ""\r
1695 \r
1696 #: ../source/TortoiseGit_en.xml:2184\r
1697 #.(para)\r
1698 msgid "It is also possible to have more than one authentication source for your Git repository. To do this, you need to make each authentication type non-authoritative, so that Apache will check multiple sources for a matching username/password."\r
1699 msgstr ""\r
1700 \r
1701 #: ../source/TortoiseGit_en.xml:2190\r
1702 #.(para)\r
1703 msgid "A common scenario is to use both Windows domain authentication and a <literal>passwd</literal> file, so that you can provide SVN access to users who don't have a Windows domain login."\r
1704 msgstr ""\r
1705 \r
1706 #: ../source/TortoiseGit_en.xml:2197\r
1707 #.(para)\r
1708 msgid "To enable both Windows domain and <filename>passwd</filename> file authentication, add the following entries within the <literal>&lt;Location&gt;</literal> block of your Apache config file: <screen>\nAuthBasicAuthoritative Off\nSSPIAuthoritative Off\n</screen>"\r
1709 msgstr ""\r
1710 \r
1711 #: ../source/TortoiseGit_en.xml:2208\r
1712 #.(para)\r
1713 msgid "Here is an example of the full Apache configuration for combined Windows domain and <literal>passwd</literal> file authentication: <screen>\n&lt;Location /svn&gt;\n  DAV svn\n  SVNListParentPath on\n  SVNParentPath D:\\SVN\n\n  AuthName \"Git repositories\"\n  AuthzSVNAccessFile svnaccessfile.txt\n\n# NT Domain Logins.\n  AuthType SSPI\n  SSPIAuth On\n  SSPIAuthoritative Off\n  SSPIDomain &lt;domaincontroller&gt;\n  SSPIOfferBasic On\n\n# Htpasswd Logins.\n  AuthType Basic\n  AuthBasicAuthoritative Off\n  AuthUserFile passwd\n\n  Require valid-user\n&lt;/Location&gt;\n</screen>"\r
1714 msgstr ""\r
1715 \r
1716 #: ../source/TortoiseGit_en.xml:2238\r
1717 #.(title)\r
1718 msgid "Securing the server with SSL"\r
1719 msgstr ""\r
1720 \r
1721 #: ../source/TortoiseGit_en.xml:2240\r
1722 #.(primary)\r
1723 msgid "SSL"\r
1724 msgstr ""\r
1725 \r
1726 #: ../source/TortoiseGit_en.xml:2242\r
1727 #.(para)\r
1728 msgid "Even though Apache 2.2.x has OpenSSL support, it is not activated by default. You need to activate this manually."\r
1729 msgstr ""\r
1730 \r
1731 #: ../source/TortoiseGit_en.xml:2248\r
1732 #.(para)\r
1733 msgid "In the apache config file, uncomment the lines: <screen>\n#LoadModule ssl_module modules/mod_ssl.so\n</screen> and at the bottom <screen>\n#Include conf/extra/httpd-ssl.conf\n</screen> then change the line (on one line) <screen>\nSSLMutex \"file:C:/Program Files/Apache Software Foundation/\\\nApache2.2/logs/ssl_mutex\"\n</screen> to <screen>\nSSLMutex default\n</screen>"\r
1734 msgstr ""\r
1735 \r
1736 #: ../source/TortoiseGit_en.xml:2270\r
1737 #.(para)\r
1738 msgid "Next you need to create an SSL certificate. To do that open a command prompt (DOS-Box) and change to the Apache folder (e.g. <filename>C:\\program files\\apache group\\apache2</filename>) and type the following command: <screen>\nbin\\openssl req -config conf\\openssl.cnf -new -out my-server.csr\n</screen> You will be asked for a passphrase. Please don't use simple words but whole sentences, e.g. a part of a poem. The longer the phrase the better. Also you have to enter the URL of your server. All other questions are optional but we recommend you fill those in too."\r
1739 msgstr ""\r
1740 \r
1741 #: ../source/TortoiseGit_en.xml:2285\r
1742 #.(para)\r
1743 msgid "Normally the <filename>privkey.pem</filename> file is created automatically, but if it isn't you need to type this command to generate it: <screen>\nbin\\openssl genrsa -out conf\\privkey.pem 2048\n</screen>"\r
1744 msgstr ""\r
1745 \r
1746 #: ../source/TortoiseGit_en.xml:2293\r
1747 #.(para)\r
1748 msgid "Next type the commands <screen>\nbin\\openssl rsa -in conf\\privkey.pem -out conf\\server.key\n</screen> and (on one line) <screen>\nbin\\openssl req -new -key conf\\server.key -out conf\\server.csr \\\n-config conf\\openssl.cnf\n</screen> and then (on one line) <screen>\nbin\\openssl x509 -in conf\\server.csr -out conf\\server.crt\n                 -req -signkey conf\\server.key -days 4000\n</screen> This will create a certificate which will expire in 4000 days. And finally enter (on one line): <screen>\nbin\\openssl x509 -in conf\\server.cert -out conf\\server.der.crt\n                 -outform DER\n</screen> These commands created some files in the Apache <filename>conf</filename> folder (<filename>server.der.crt</filename>, <filename>server.csr</filename>, <filename>server.key</filename>, <filename>.rnd</filename>, <filename>privkey.pem</filename>, <filename>server.cert</filename>)."\r
1749 msgstr ""\r
1750 \r
1751 #: ../source/TortoiseGit_en.xml:2325\r
1752 #.(para)\r
1753 msgid "Restart the Apache service."\r
1754 msgstr ""\r
1755 \r
1756 #: ../source/TortoiseGit_en.xml:2330\r
1757 #.(para)\r
1758 msgid "Point your browser to <systemitem class=\"url\">https://servername/svn/project</systemitem> ..."\r
1759 msgstr ""\r
1760 \r
1761 #: ../source/TortoiseGit_en.xml:2338\r
1762 #.(title)\r
1763 msgid "SSL and Internet Explorer"\r
1764 msgstr ""\r
1765 \r
1766 #: ../source/TortoiseGit_en.xml:2339\r
1767 #.(para)\r
1768 msgid "If you're securing your server with SSL and use authentication against a windows domain you will encounter that browsing the repository with the Internet Explorer doesn't work anymore. Don't worry - this is only the Internet Explorer not able to authenticate. Other browsers don't have that problem and TortoiseGit and any other Git client are still able to authenticate."\r
1769 msgstr ""\r
1770 \r
1771 #: ../source/TortoiseGit_en.xml:2353\r
1772 #.(para)\r
1773 msgid "define a separate <literal>&lt;Location /path&gt;</literal> directive in the Apache config file, and add the <literal>SSPIBasicPreferred On</literal>. This will allow IE to authenticate again, but other browsers and Git won't be able to authenticate against that location."\r
1774 msgstr ""\r
1775 \r
1776 #: ../source/TortoiseGit_en.xml:2363\r
1777 #.(para)\r
1778 msgid "Offer browsing with unencrypted authentication (without SSL) too. Strangely IE doesn't have any problems with authenticating if the connection is not secured with SSL."\r
1779 msgstr ""\r
1780 \r
1781 #: ../source/TortoiseGit_en.xml:2371\r
1782 #.(para)\r
1783 msgid "In the SSL \"standard\" setup there's often the following statement in Apache's virtual SSL host: <screen>\nSetEnvIf User-Agent \".*MSIE.*\" \\\n             nokeepalive ssl-unclean-shutdown \\\n             downgrade-1.0 force-response-1.0\n</screen> There are (were?) good reasons for this configuration, see <ulink url=\"http://www.modssl.org/docs/2.8/ssl_faq.html#ToC49\"><citetitle>http://www.modssl.org/docs/2.8/ssl_faq.html#ToC49</citetitle></ulink> But if you want NTLM authentication you have to use <literal>keepalive</literal>. If You uncomment the whole <literal>SetEnvIf</literal> you should be able to authenticate IE with windows authentication over SSL against the Apache on Win32 with included <literal>mod_auth_sspi</literal>."\r
1784 msgstr ""\r
1785 \r
1786 #: ../source/TortoiseGit_en.xml:2348\r
1787 #.(para)\r
1788 msgid "If you still want to use IE to browse the repository you can either: <placeholder-1/>"\r
1789 msgstr ""\r
1790 \r
1791 #: ../source/TortoiseGit_en.xml:2394\r
1792 #.(title)\r
1793 msgid "Forcing SSL access"\r
1794 msgstr ""\r
1795 \r
1796 #: ../source/TortoiseGit_en.xml:2395\r
1797 #.(para)\r
1798 msgid "When you've set up SSL to make your repository more secure, you might want to disable the normal access via non-SSL (http) and only allow https access. To do this, you have to add another directive to the Git <literal>&lt;Location&gt;</literal> block: <literal>SSLRequireSSL</literal>."\r
1799 msgstr ""\r
1800 \r
1801 #: ../source/TortoiseGit_en.xml:2402\r
1802 #.(para)\r
1803 msgid "An example <literal>&lt;Location&gt;</literal> block would look like this: <screen>\n&lt;Location /svn&gt;\n  DAV svn\n  SVNParentPath D:\\SVN\n  SSLRequireSSL\n  AuthType Basic\n  AuthName \"Git repositories\"\n  AuthUserFile passwd\n  #AuthzSVNAccessFile svnaccessfile\n  Require valid-user\n&lt;/Location&gt;\n</screen>"\r
1804 msgstr ""\r
1805 \r
1806 #: ../source/TortoiseGit_en.xml:2420\r
1807 #.(title)\r
1808 msgid "Using client certificates with virtual SSL hosts"\r
1809 msgstr ""\r
1810 \r
1811 #: ../source/TortoiseGit_en.xml:2421\r
1812 #.(para)\r
1813 msgid "Sent to the TortoiseGit mailing list by Nigel Green. Thanks!"\r
1814 msgstr ""\r
1815 \r
1816 #: ../source/TortoiseGit_en.xml:2424\r
1817 #.(para)\r
1818 msgid "In some server configurations you may need to setup a single server containing 2 virtual SSL hosts: The first one for public web access, with no requirement for a client certificate. The second one to be secure with a required client certificate, running a Git server."\r
1819 msgstr ""\r
1820 \r
1821 #: ../source/TortoiseGit_en.xml:2430\r
1822 #.(para)\r
1823 msgid "Adding an <literal>SSLVerifyClient Optional</literal> directive to the <emphasis>per-server</emphasis> section of the Apache configuration (i.e. outside of any <literal>VirtualHost</literal> and <literal>Directory</literal> blocks) forces Apache to request a client Certificate in the initial SSL handshake. Due to a bug in <literal>mod_ssl</literal> it is essential that the certificate is requested at this point as it does not work if the SSL connection is re-negotiated."\r
1824 msgstr ""\r
1825 \r
1826 #: ../source/TortoiseGit_en.xml:2440\r
1827 #.(para)\r
1828 msgid "The solution is to add the following directive to the virtual host directory that you want to lock down for Git: <screen>\nSSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n</screen> This directive grants access to the directory only if a client certificate was received and verified successfully."\r
1829 msgstr ""\r
1830 \r
1831 #: ../source/TortoiseGit_en.xml:2449\r
1832 #.(para)\r
1833 msgid "To summarise, the relevant lines of the Apache configuration are: <screen>\nSSLVerifyClient Optional\n\n### Virtual host configuration for the PUBLIC host \n### (not requiring a certificate)\n\n&lt;VirtualHost 127.0.0.1:443&gt;\n  &lt;Directory \"pathtopublicfileroot\"&gt;\n  &lt;/Directory&gt;\n&lt;/VirtualHost&gt;\n\n### Virtual host configuration for Git \n### (requiring a client certificate)\n&lt;VirtualHost 127.0.0.1:443&gt;\n  &lt;Directory \"Git host root path\"&gt;\n    SSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n  &lt;/Directory&gt;\n\n  &lt;Location /svn&gt;\n    DAV svn\n    SVNParentPath /pathtorepository\n  &lt;/Location&gt;\n&lt;/VirtualHost&gt;\n</screen>"\r
1834 msgstr ""\r
1835 \r
1836 #: ../source/TortoiseGit_en.xml:2479\r
1837 #.(title)\r
1838 msgid "Svnserve Based Server"\r
1839 msgstr ""\r
1840 \r
1841 #: ../source/TortoiseGit_en.xml:2485\r
1842 #.(para)\r
1843 msgid "There may be situations where it's not possible to use Apache as your server. Fortunately, Git includes Svnserve - a lightweight stand-alone server which uses a custom protocol over an ordinary TCP/IP connection."\r
1844 msgstr ""\r
1845 \r
1846 #: ../source/TortoiseGit_en.xml:2491\r
1847 #.(para)\r
1848 msgid "In most cases svnserve is easier to setup and runs faster than the Apache based server. And now that SASL support is included it is easy to secure as well."\r
1849 msgstr ""\r
1850 \r
1851 #: ../source/TortoiseGit_en.xml:2498\r
1852 #.(title)\r
1853 msgid "Installing svnserve"\r
1854 msgstr ""\r
1855 \r
1856 #: ../source/TortoiseGit_en.xml:2502\r
1857 #.(para)\r
1858 msgid "Get the latest version of Git from <ulink url=\"http://Git.tigris.org/servlets/ProjectDocumentList?folderID=91\"><citetitle>http://Git.tigris.org/servlets/ProjectDocumentList?folderID=91</citetitle></ulink>. Alternatively get a pre-packaged installer from CollabNet at <ulink url=\"http://www.collab.net/downloads/Git\"><citetitle>http://www.collab.net/downloads/Git</citetitle></ulink>. This installer will setup svnserve as a Windows service, and also includes some of the tools you need if you are going to use SASL for security."\r
1859 msgstr ""\r
1860 \r
1861 #: ../source/TortoiseGit_en.xml:2516\r
1862 #.(para)\r
1863 msgid "If you already have a version of Git installed, and svnserve is running, you will need to stop it before continuing."\r
1864 msgstr ""\r
1865 \r
1866 #: ../source/TortoiseGit_en.xml:2522\r
1867 #.(para)\r
1868 msgid "Run the Git installer. If you run the installer on your server (recommended) you can skip step 4."\r
1869 msgstr ""\r
1870 \r
1871 #: ../source/TortoiseGit_en.xml:2528\r
1872 #.(para)\r
1873 msgid "Open the windows-explorer, go to the installation directory of Git (usually <filename>C:\\Program Files\\Git</filename>) and in the <filename>bin</filename> directory, find the files <filename>svnserve.exe</filename>, <filename>intl3_svn.dll</filename>, <filename>libapr.dll</filename>, <filename>libapriconv.dll</filename>, <filename>libapriutil.dll</filename>, <filename>libdb*.dll</filename>, <filename>libeay32.dll</filename> and <filename>ssleay32.dll</filename> - copy these files, or just copy all of the <filename>bin</filename> directory, into a directory on your server e.g. <filename>c:\\svnserve</filename>"\r
1874 msgstr ""\r
1875 \r
1876 #: ../source/TortoiseGit_en.xml:2550\r
1877 #.(title)\r
1878 msgid "Running svnserve"\r
1879 msgstr ""\r
1880 \r
1881 #: ../source/TortoiseGit_en.xml:2551\r
1882 #.(para)\r
1883 msgid "Now that svnserve is installed, you need it running on your server. The simplest approach is to run the following from a DOS shell or create a windows shortcut: <screen>\nsvnserve.exe --daemon\n</screen> svnserve will now start waiting for incoming requests on port 3690. The --daemon switch tells svnserve to run as a daemon process, so it will always exist until it is manually terminated."\r
1884 msgstr ""\r
1885 \r
1886 #: ../source/TortoiseGit_en.xml:2562\r
1887 #.(para)\r
1888 msgid "If you have not yet created a repository, follow the instructions given with the Apache server setup <xref linkend=\"tsvn-serversetup-apache-4\"/>."\r
1889 msgstr ""\r
1890 \r
1891 #: ../source/TortoiseGit_en.xml:2567\r
1892 #.(para)\r
1893 msgid "To test that svnserve is working, use <menuchoice><guimenu>TortoiseGit</guimenu><guimenuitem>Repo-Browser</guimenuitem></menuchoice> to view a repository."\r
1894 msgstr ""\r
1895 \r
1896 #: ../source/TortoiseGit_en.xml:2575\r
1897 #.(para)\r
1898 msgid "Assuming your repository is located in <filename>c:\\repos\\TestRepo</filename>, and your server is called <filename>localhost</filename>, enter: <screen>\nsvn://localhost/repos/TestRepo\n</screen> when prompted by the repo browser."\r
1899 msgstr ""\r
1900 \r
1901 #: ../source/TortoiseGit_en.xml:2584\r
1902 #.(para)\r
1903 msgid "You can also increase security and save time entering URLs with svnserve by using the --root switch to set the root location and restrict access to a specified directory on the server: <screen>\nsvnserve.exe --daemon --root drive:\\path\\to\\repository\\root\n</screen> Using the previous test as a guide, svnserve would now run as: <screen>\nsvnserve.exe --daemon --root c:\\repos\n</screen> And in TortoiseGit our repo-browser URL is now shortened to: <screen>\nsvn://localhost/TestRepo\n</screen> Note that the --root switch is also needed if your repository is located on a different partition or drive than the location of svnserve on your server."\r
1904 msgstr ""\r
1905 \r
1906 #: ../source/TortoiseGit_en.xml:2603\r
1907 #.(para)\r
1908 msgid "Svnserve will service any number of repositories. Just locate them somewhere below the root folder you just defined, and access them using a URL relative to that root."\r
1909 msgstr ""\r
1910 \r
1911 #: ../source/TortoiseGit_en.xml:2620\r
1912 #.(title)\r
1913 msgid "Run svnserve as a Service"\r
1914 msgstr ""\r
1915 \r
1916 #: ../source/TortoiseGit_en.xml:2624\r
1917 #.(para)\r
1918 msgid "Running svnserve as a user is usually not the best way. It means always having a user logged in on your server, and remembering to restart it after a reboot. A better way is to run svnserve as a windows service. Starting with Git 1.4, svnserve can be installed as a native windows service."\r
1919 msgstr ""\r
1920 \r
1921 #: ../source/TortoiseGit_en.xml:2631\r
1922 #.(para)\r
1923 msgid "To install svnserve as a native windows service, execute the following command all on one line to create a service which is automatically started when windows starts. <screen>\nsc create svnserve binpath= \"c:\\svnserve\\svnserve.exe --service \n    --root c:\\repos\" displayname= \"Git\" depend= tcpip \n    start= auto\n</screen> If any of the paths include spaces, you have to use (escaped) quotes around the path, like this: <screen>\nsc create svnserve binpath= \"\n    \\\"C:\\Program Files\\Git\\bin\\svnserve.exe\\\"\n    --service --root c:\\repos\" displayname= \"Git\" \n    depend= tcpip start= auto\n</screen> You can also add a description after creating the service. This will show up in the Windows Services Manager. <screen>\nsc description svnserve \"Git server (svnserve)\"\n</screen>"\r
1924 msgstr ""\r
1925 \r
1926 #: ../source/TortoiseGit_en.xml:2654\r
1927 #.(para)\r
1928 msgid "Note the rather unusual command line format used by <literal>sc</literal>. In the <literal>key= value</literal> pairs there must be no space between the key and the <literal>=</literal> but there must be a space before the value."\r
1929 msgstr ""\r
1930 \r
1931 #: ../source/TortoiseGit_en.xml:2661\r
1932 #.(para)\r
1933 msgid "Microsoft now recommend services to be run as under either the Local Service or Network Service account. Refer to <ulink url=\"http://www.microsoft.com/technet/security/topics/serversecurity/serviceaccount/default.mspx\"><citetitle>The Services and Service Accounts Security Planning Guide</citetitle></ulink>. To create the service under the Local Service account, append the following to the example above. <screen>\nobj= \"NT AUTHORITY\\LocalService\"\n</screen> Note that you would have to give the Local Service account appropriate rights to both Git and your repositories, as well as any applications which are used by hook scripts. The built-in group for this is called \"LOCAL SERVICE\"."\r
1934 msgstr ""\r
1935 \r
1936 #: ../source/TortoiseGit_en.xml:2678\r
1937 #.(para)\r
1938 msgid "Once you have installed the service, you need to go to the services manager to start it (this time only; it will start automatically when the server reboots)."\r
1939 msgstr ""\r
1940 \r
1941 #: ../source/TortoiseGit_en.xml:2683\r
1942 #.(para)\r
1943 msgid "For more detailed information, refer to <ulink url=\"http://svn.collab.net/repos/svn/trunk/notes/windows-service.txt\"><citetitle>Windows Service Support for Svnserve</citetitle></ulink>."\r
1944 msgstr ""\r
1945 \r
1946 #: ../source/TortoiseGit_en.xml:2689\r
1947 #.(para)\r
1948 msgid "If you installed an earlier version of svnserve using the <literal>SVNService</literal> wrapper, and you now want to use the native support instead, you will need to unregister the wrapper as a service (remember to stop the service first!). Simply use the command <screen>\nsvnservice -remove\n</screen> to remove the service registry entry."\r
1949 msgstr ""\r
1950 \r
1951 #: ../source/TortoiseGit_en.xml:2703\r
1952 #.(title)\r
1953 msgid "Basic Authentication with svnserve"\r
1954 msgstr ""\r
1955 \r
1956 #: ../source/TortoiseGit_en.xml:2704\r
1957 #.(para)\r
1958 msgid "The default svnserve setup provides anonymous read-only access. This means that you can use an <literal>svn://</literal> URL to checkout and update, or use the repo-browser in TortoiseGit to view the repository, but you won't be able to commit any changes."\r
1959 msgstr ""\r
1960 \r
1961 #: ../source/TortoiseGit_en.xml:2710\r
1962 #.(para)\r
1963 msgid "To enable write access to a repository, you need to edit the <filename>conf/svnserve.conf</filename> file in your repository directory. This file controls the configuration of the svnserve daemon, and also contains useful documentation."\r
1964 msgstr ""\r
1965 \r
1966 #: ../source/TortoiseGit_en.xml:2716\r
1967 #.(para)\r
1968 msgid "You can enable anonymous write access by simply setting: <screen>\n[general]\nanon-access = write\n</screen> However, you will not know who has made changes to a repository, as the <literal>svn:author</literal> property will be empty. You will also be unable to control who makes changes to a repository. This is a somewhat risky setup!"\r
1969 msgstr ""\r
1970 \r
1971 #: ../source/TortoiseGit_en.xml:2727\r
1972 #.(para)\r
1973 msgid "One way to overcome this is to create a password database: <screen>\n[general]\nanon-access = none\nauth-access = write\npassword-db = userfile\n</screen> Where <filename>userfile</filename> is a file which exists in the same directory as <filename>svnserve.conf</filename>. This file can live elsewhere in your file system (useful for when you have multiple repositories which require the same access rights) and may be referenced using an absolute path, or a path relative to the <filename>conf</filename> directory. If you include a path, it must be written <filename>/the/unix/way</filename>. Using \\ or drive letters will not work. The <filename>userfile</filename> should have a structure of: <screen>\n[users]\nusername = password\n...\n</screen> This example would deny all access for unauthenticated (anonymous) users, and give read-write access to users listed in <filename>userfile</filename>."\r
1974 msgstr ""\r
1975 \r
1976 #: ../source/TortoiseGit_en.xml:2755\r
1977 #.(para)\r
1978 msgid "If you maintain multiple repositories using the same password database, the use of an authentication realm will make life easier for users, as TortoiseGit can cache your credentials so that you only have to enter them once. More information can be found in the Git book, specifically in the sections <ulink url=\"http://svnbook.red-bean.com/en/1.5/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.auth.users\"><citetitle>Create a 'users' file and realm</citetitle></ulink> and <ulink url=\"http://svnbook.red-bean.com/en/1.5/svn.serverconfig.netmodel.html#svn.serverconfig.netmodel.credcache\"><citetitle>Client Credentials Caching</citetitle></ulink>"\r
1979 msgstr ""\r
1980 \r
1981 #: ../source/TortoiseGit_en.xml:2773\r
1982 #.(title)\r
1983 msgid "Better Security with SASL"\r
1984 msgstr ""\r
1985 \r
1986 #: ../source/TortoiseGit_en.xml:2775\r
1987 #.(primary)\r
1988 msgid "SASL"\r
1989 msgstr ""\r
1990 \r
1991 #: ../source/TortoiseGit_en.xml:2778\r
1992 #.(title)\r
1993 msgid "What is SASL?"\r
1994 msgstr ""\r
1995 \r
1996 #: ../source/TortoiseGit_en.xml:2779\r
1997 #.(para)\r
1998 msgid "The Cyrus Simple Authentication and Security Layer is open source software written by Carnegie Mellon University. It adds generic authentication and encryption capabilities to any network protocol, and as of Git 1.5 and later, both the svnserve server and TortoiseGit client know how to make use of this library."\r
1999 msgstr ""\r
2000 \r
2001 #: ../source/TortoiseGit_en.xml:2787\r
2002 #.(para)\r
2003 msgid "For a more complete discussion of the options available, you should look at the Git book in the section <ulink url=\"http://svnbook.red-bean.com/en/1.5/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sasl\"><citetitle>Using svnserve with SASL</citetitle></ulink>. If you are just looking for a simple way to set up secure authentication and encryption on a Windows server, so that your repository can be accessed safely over the big bad Internet, read on."\r
2004 msgstr ""\r
2005 \r
2006 #: ../source/TortoiseGit_en.xml:2800\r
2007 #.(title)\r
2008 msgid "SASL Authentication"\r
2009 msgstr ""\r
2010 \r
2011 #: ../source/TortoiseGit_en.xml:2801\r
2012 #.(para)\r
2013 msgid "To activate specific SASL mechanisms on the server, you'll need to do three things. First, create a <literal>[sasl]</literal> section in your repository's <filename>svnserve.conf</filename> file, with this key-value pair: <screen>\nuse-sasl = true\n</screen>"\r
2014 msgstr ""\r
2015 \r
2016 #: ../source/TortoiseGit_en.xml:2810\r
2017 #.(para)\r
2018 msgid "Second, create a file called <filename>svn.conf</filename> in a convenient location - typically in the directory where Git is installed."\r
2019 msgstr ""\r
2020 \r
2021 #: ../source/TortoiseGit_en.xml:2815\r
2022 #.(para)\r
2023 msgid "Thirdly, create two new registry entries to tell SASL where to find things. Create a registry key named <literal>[HKEY_LOCAL_MACHINE\\SOFTWARE\\Carnegie Mellon\\Project Cyrus\\SASL Library]</literal> and place two new string values inside it: <literal>SearchPath</literal> set to the directory path containing the <filename>sasl*.dll</filename> plug-ins (normally in the Git install directory), and <literal>ConfFile</literal> set to the directory containing the <filename>svn.conf</filename> file. If you used the CollabNet installer, these registry keys will already have been created for you."\r
2024 msgstr ""\r
2025 \r
2026 #: ../source/TortoiseGit_en.xml:2827\r
2027 #.(para)\r
2028 msgid "Edit the <filename>svn.conf</filename> file to contain the following: <screen>\npwcheck_method: auxprop\nauxprop_plugin: sasldb\nmech_list: DIGEST-MD5\nsasldb_path: C:\\TortoiseGit\\sasldb\n</screen> The last line shows the location of the authentication database, which is a file called <filename>sasldb</filename>. This could go anywhere, but a convenient choice is the repository parent path. Make sure that the svnserve service has read access to this file."\r
2029 msgstr ""\r
2030 \r
2031 #: ../source/TortoiseGit_en.xml:2842\r
2032 #.(para)\r
2033 msgid "If svnserve was already running, you will need to restart it to ensure it reads the updated configuration."\r
2034 msgstr ""\r
2035 \r
2036 #: ../source/TortoiseGit_en.xml:2846\r
2037 #.(para)\r
2038 msgid "Now that everything is set up, all you need to do is create some users and passwords. To do this you need the <literal>saslpasswd2</literal> program. If you used the CollabNet installer, that program will be in the install directory. Use a command something like this: <screen>\nsaslpasswd2 -c -f C:\\TortoiseGit\\sasldb -u realm username\n</screen> The <literal>-f</literal> switch gives the database location, <literal>realm</literal> must be the same as the value you defined in your repository's <filename>svnserve.conf</filename> file, and username is exactly what you expect it to be. Note that the realm is not allowed to contain space characters."\r
2039 msgstr ""\r
2040 \r
2041 #: ../source/TortoiseGit_en.xml:2861\r
2042 #.(para)\r
2043 msgid "You can list the usernames stored in the database using the <literal>sasldblistusers2</literal> program."\r
2044 msgstr ""\r
2045 \r
2046 #: ../source/TortoiseGit_en.xml:2867\r
2047 #.(title)\r
2048 msgid "SASL Encryption"\r
2049 msgstr ""\r
2050 \r
2051 #: ../source/TortoiseGit_en.xml:2868\r
2052 #.(para)\r
2053 msgid "To enable or disable different levels of encryption, you can set two values in your repository's <filename>svnserve.conf</filename> file: <screen>\n[sasl]\nuse-sasl = true\nmin-encryption = 128\nmax-encryption = 256\n</screen>"\r
2054 msgstr ""\r
2055 \r
2056 #: ../source/TortoiseGit_en.xml:2879\r
2057 #.(para)\r
2058 msgid "The <literal>min-encryption</literal> and <literal>max-encryption</literal> variables control the level of encryption demanded by the server. To disable encryption completely, set both values to 0. To enable simple checksumming of data (i.e., prevent tampering and guarantee data integrity without encryption), set both values to 1. If you wish to allow (but not require) encryption, set the minimum value to 0, and the maximum value to some bit-length. To require encryption unconditionally, set both values to numbers greater than 1. In our previous example, we require clients to do at least 128-bit encryption, but no more than 256-bit encryption."\r
2059 msgstr ""\r
2060 \r
2061 #: ../source/TortoiseGit_en.xml:2896\r
2062 #.(title)\r
2063 msgid "Authentication with svn+ssh"\r
2064 msgstr ""\r
2065 \r
2066 #: ../source/TortoiseGit_en.xml:2897\r
2067 #.(para)\r
2068 msgid "Another way to authenticate users with a svnserve based server is to use a secure shell (SSH) to tunnel requests through. It is not as simple to set up as SASL, but it may be useful is some cases."\r
2069 msgstr ""\r
2070 \r
2071 #: ../source/TortoiseGit_en.xml:2903\r
2072 #.(para)\r
2073 msgid "With this approach, svnserve is not run as a daemon process, rather, the secure shell starts svnserve for you, running it as the SSH authenticated user. To enable this, you need a secure shell daemon on your server."\r
2074 msgstr ""\r
2075 \r
2076 #: ../source/TortoiseGit_en.xml:2909\r
2077 #.(para)\r
2078 msgid "A basic method for setting up your server is given in <xref linkend=\"tsvn-ssh-howto\"/>. You can find other SSH topics within the FAQ by searching for <quote>SSH</quote>."\r
2079 msgstr ""\r
2080 \r
2081 #: ../source/TortoiseGit_en.xml:2915\r
2082 #.(para)\r
2083 msgid "Further information about svnserve can be found in the <ulink url=\"http://svnbook.red-bean.com\"><citetitle>Version Control with Git</citetitle></ulink>."\r
2084 msgstr ""\r
2085 \r
2086 #: ../source/TortoiseGit_en.xml:2923\r
2087 #.(title)\r
2088 msgid "Path-based Authorization with svnserve"\r
2089 msgstr ""\r
2090 \r
2091 #: ../source/TortoiseGit_en.xml:2924\r
2092 #.(para)\r
2093 msgid "Starting with Git 1.3, svnserve supports the same <literal>mod_authz_svn</literal> path-based authorization scheme that is available with the Apache server. You need to edit the <filename>conf/svnserve.conf</filename> file in your repository directory and add a line referring to your authorization file. <screen>\n[general]\nauthz-db = authz\n</screen> Here, <filename>authz</filename> is a file you create to define the access permissions. You can use a separate file for each repository, or you can use the same file for several repositories. Read <xref linkend=\"tsvn-serversetup-mod_authz_svn\"/> for a description of the file format."\r
2094 msgstr ""\r
2095 \r
2096 #: ../source/TortoiseGit_en.xml:2946\r
2097 #.(para)\r
2098 msgid "No matter which protocol you use to access your repositories, you always need to create at least one repository. This can either be done with the Git command line client or with TortoiseGit."\r
2099 msgstr ""\r
2100 \r
2101 #: ../source/TortoiseGit_en.xml:2951\r
2102 #.(para)\r
2103 msgid "If you haven't created a Git repository yet, it's time to do that now."\r
2104 msgstr ""\r
2105 \r
2106 #: ../source/TortoiseGit_en.xml:2959\r
2107 #.(title)\r
2108 msgid "Repository Creation"\r
2109 msgstr ""\r
2110 \r
2111 #: ../source/TortoiseGit_en.xml:2961\r
2112 #.(primary)\r
2113 msgid "create repository"\r
2114 msgstr ""\r
2115 \r
2116 #: ../source/TortoiseGit_en.xml:2963\r
2117 #.(para)\r
2118 msgid "You can create a repository with the FSFS backend or with the older Berkeley Database (BDB) format. The FSFS format is generally faster and easier to administer, and it works on network shares and Windows 98 without problems. The BDB format was once considered more stable simply because it has been in use for longer, but since FSFS has now been in use in the field for several years, that argument is now rather weak. Read <ulink url=\"http://svnbook.red-bean.com/en/1.5/svn.reposadmin.planning.html#svn.reposadmin.basics.backends\"><citetitle>Choosing a Data Store</citetitle></ulink> in the Git book for more information."\r
2119 msgstr ""\r
2120 \r
2121 #: ../source/TortoiseGit_en.xml:2978\r
2122 #.(title)\r
2123 msgid "Creating a Repository with the Command Line Client"\r
2124 msgstr ""\r
2125 \r
2126 #: ../source/TortoiseGit_en.xml:2980\r
2127 #.(primary)\r
2128 #: ../source/TortoiseGit_en.xml:3021\r
2129 #.(primary)\r
2130 msgid "Create"\r
2131 msgstr ""\r
2132 \r
2133 #: ../source/TortoiseGit_en.xml:2981\r
2134 #.(secondary)\r
2135 msgid "Command Line Client"\r
2136 msgstr ""\r
2137 \r
2138 #: ../source/TortoiseGit_en.xml:2985\r
2139 #.(para)\r
2140 msgid "Create an empty folder with the name SVN (e.g. <filename>D:\\SVN\\</filename>), which is used as root for all your repositories."\r
2141 msgstr ""\r
2142 \r
2143 #: ../source/TortoiseGit_en.xml:2992\r
2144 #.(para)\r
2145 msgid "Create another folder <filename>MyNewRepository</filename> inside <filename>D:\\SVN\\</filename>."\r
2146 msgstr ""\r
2147 \r
2148 #: ../source/TortoiseGit_en.xml:2999\r
2149 #.(para)\r
2150 msgid "Open the command prompt (or DOS-Box), change into <filename>D:\\SVN\\</filename> and type <screen>\nsvnadmin create --fs-type bdb MyNewRepository\n</screen> or <screen>\nsvnadmin create --fs-type fsfs MyNewRepository\n</screen>"\r
2151 msgstr ""\r
2152 \r
2153 #: ../source/TortoiseGit_en.xml:3012\r
2154 #.(para)\r
2155 msgid "Now you've got a new repository located at <filename>D:\\SVN\\MyNewRepository</filename>."\r
2156 msgstr ""\r
2157 \r
2158 #: ../source/TortoiseGit_en.xml:3019\r
2159 #.(title)\r
2160 msgid "Creating The Repository With TortoiseGit"\r
2161 msgstr ""\r
2162 \r
2163 #: ../source/TortoiseGit_en.xml:3026\r
2164 #.(title)\r
2165 msgid "The TortoiseGit menu for unversioned folders"\r
2166 msgstr ""\r
2167 \r
2168 #: ../source/TortoiseGit_en.xml:3031\r
2169 #.(para)\r
2170 msgid "Open the windows explorer"\r
2171 msgstr ""\r
2172 \r
2173 #: ../source/TortoiseGit_en.xml:3036\r
2174 #.(para)\r
2175 msgid "Create a new folder and name it e.g. <filename>SVNRepository</filename>"\r
2176 msgstr ""\r
2177 \r
2178 #: ../source/TortoiseGit_en.xml:3042\r
2179 #.(para)\r
2180 msgid "<action>Right-click</action> on the newly created folder and select <menuchoice><guimenu>TortoiseGit</guimenu><guimenuitem>Create Repository here...</guimenuitem></menuchoice>."\r
2181 msgstr ""\r
2182 \r
2183 #: ../source/TortoiseGit_en.xml:3050\r
2184 #.(para)\r
2185 msgid "A repository is then created inside the new folder. <emphasis>Don't edit those files yourself!!!</emphasis>. If you get any errors make sure that the folder is empty and not write protected."\r
2186 msgstr ""\r
2187 \r
2188 #: ../source/TortoiseGit_en.xml:3059\r
2189 #.(para)\r
2190 msgid "TortoiseGit no longer offers the option to create BDB repositories, although you can still use the command line client to create them. FSFS repositories are generally easier for you to maintain, and also makes it easier for us to maintain TortoiseGit due to compatibility issues between the different BDB versions."\r
2191 msgstr ""\r
2192 \r
2193 #: ../source/TortoiseGit_en.xml:3066\r
2194 #.(para)\r
2195 msgid "Future versions of TortoiseGit will not support <literal>file://</literal> access to BDB repositories due to these compatibility issues, although it will of course always support this repository format when accessed via a server through the <literal>svn://</literal>, <literal>http://</literal> or <literal>https://</literal> protocols. For this reason, we strongly recommend that any new repository which must be accessed using <literal>file://</literal> protocol is created as FSFS."\r
2196 msgstr ""\r
2197 \r
2198 #: ../source/TortoiseGit_en.xml:3078\r
2199 #.(para)\r
2200 msgid "Of course we also recommend that you don't use <literal>file://</literal> access at all, apart from local testing purposes. Using a server is more secure and more reliable for all but single-developer use."\r
2201 msgstr ""\r
2202 \r
2203 #: ../source/TortoiseGit_en.xml:3087\r
2204 #.(title)\r
2205 msgid "Local Access to the Repository"\r
2206 msgstr ""\r
2207 \r
2208 #: ../source/TortoiseGit_en.xml:3089\r
2209 #.(primary)\r
2210 msgid "Access"\r
2211 msgstr ""\r
2212 \r
2213 #: ../source/TortoiseGit_en.xml:3092\r
2214 #.(primary)\r
2215 msgid "UNC paths"\r
2216 msgstr ""\r
2217 \r
2218 #: ../source/TortoiseGit_en.xml:3094\r
2219 #.(para)\r
2220 msgid "To access your local repository you need the path to that folder. Just remember that Git expects all repository paths in the form <systemitem class=\"url\">file:///C:/SVNRepository/</systemitem>. Note the use of forward slashes throughout."\r
2221 msgstr ""\r
2222 \r
2223 #: ../source/TortoiseGit_en.xml:3100\r
2224 #.(para)\r
2225 msgid "To access a repository located on a network share you can either use drive mapping, or you can use the UNC path. For UNC paths, the form is <systemitem class=\"url\">file://ServerName/path/to/repos/</systemitem>. Note that there are only 2 leading slashes here."\r
2226 msgstr ""\r
2227 \r
2228 #: ../source/TortoiseGit_en.xml:3107\r
2229 #.(para)\r
2230 msgid "Prior to SVN 1.2, UNC paths had to be given in the more obscure form <systemitem class=\"url\">file:///\\ServerName/path/to/repos</systemitem>. This form is still supported, but not recommended."\r
2231 msgstr ""\r
2232 \r
2233 #: ../source/TortoiseGit_en.xml:3114\r
2234 #.(para)\r
2235 msgid "Do not create or access a Berkeley DB repository on a network share. It <emphasis>cannot</emphasis> exist on a remote file system. Not even if you have the network drive mapped to a drive letter. If you attempt to use Berkeley DB on a network share, the results are unpredictable - you may see mysterious errors right away, or it may be months before you discover that your repository database is subtly corrupted."\r
2236 msgstr ""\r
2237 \r
2238 #: ../source/TortoiseGit_en.xml:3125\r
2239 #.(title)\r
2240 msgid "Accessing a Repository on a Network Share"\r
2241 msgstr ""\r
2242 \r
2243 #: ../source/TortoiseGit_en.xml:3127\r
2244 #.(primary)\r
2245 msgid "Network share"\r
2246 msgstr ""\r
2247 \r
2248 #: ../source/TortoiseGit_en.xml:3129\r
2249 #.(para)\r
2250 msgid "Although in theory it is possible to put a FSFS repository on a network share and have multiple users access it using <literal>file://</literal> protocol, this is most definitely <emphasis>not</emphasis> recommended. In fact we would <emphasis>strongly</emphasis> discourage it, and do not support such use."\r
2251 msgstr ""\r
2252 \r
2253 #: ../source/TortoiseGit_en.xml:3136\r
2254 #.(para)\r
2255 msgid "Firstly you are giving every user direct write access to the repository, so any user could accidentally delete the entire repository or make it unusable in some other way."\r
2256 msgstr ""\r
2257 \r
2258 #: ../source/TortoiseGit_en.xml:3141\r
2259 #.(para)\r
2260 msgid "Secondly not all network file sharing protocols support the locking that Git requires, so you may find your repository gets corrupted. It may not happen straight away, but one day two users will try to access the repository at the same time."\r
2261 msgstr ""\r
2262 \r
2263 #: ../source/TortoiseGit_en.xml:3147\r
2264 #.(para)\r
2265 msgid "Thirdly the file permissions have to be set just so. You may just about get away with it on a native Windows share, but SAMBA is particularly difficult."\r
2266 msgstr ""\r
2267 \r
2268 #: ../source/TortoiseGit_en.xml:3152\r
2269 #.(para)\r
2270 msgid "<literal>file://</literal> access is intended for local, single-user access only, particularly testing and debugging. When you want to share the repository you <emphasis>really</emphasis> need to set up a proper server, and it is not nearly as difficult as you might think. Read <xref linkend=\"tsvn-serversetup\"/> for guidelines on choosing and setting up a server."\r
2271 msgstr ""\r
2272 \r
2273 #: ../source/TortoiseGit_en.xml:3162\r
2274 #.(title)\r
2275 msgid "Repository Layout"\r
2276 msgstr ""\r
2277 \r
2278 #: ../source/TortoiseGit_en.xml:3163\r
2279 #.(para)\r
2280 msgid "Before you import your data into the repository you should first think about how you want to organize your data. If you use one of the recommended layouts you will later have it much easier."\r
2281 msgstr ""\r
2282 \r
2283 #: ../source/TortoiseGit_en.xml:3169\r
2284 #.(para)\r
2285 msgid "There are some standard, recommended ways to organize a repository. Most people create a <filename>trunk</filename> directory to hold the <quote>main line</quote> of development, a <filename>branches</filename> directory to contain branch copies, and a <filename>tags</filename> directory to contain tag copies. If a repository holds only one project, then often people create these top-level directories:"\r
2286 msgstr ""\r
2287 \r
2288 #: ../source/TortoiseGit_en.xml:3178\r
2289 #.(screen)\r
2290 #, no-wrap\r
2291 msgid "\n/trunk\n/branches\n/tags\n"\r
2292 msgstr ""\r
2293 \r
2294 #: ../source/TortoiseGit_en.xml:3183\r
2295 #.(para)\r
2296 msgid "If a repository contains multiple projects, people often index their layout by branch:"\r
2297 msgstr ""\r
2298 \r
2299 #: ../source/TortoiseGit_en.xml:3187\r
2300 #.(screen)\r
2301 #, no-wrap\r
2302 msgid "\n/trunk/paint\n/trunk/calc\n/branches/paint\n/branches/calc\n/tags/paint\n/tags/calc\n"\r
2303 msgstr ""\r
2304 \r
2305 #: ../source/TortoiseGit_en.xml:3195\r
2306 #.(para)\r
2307 msgid "...or by project:"\r
2308 msgstr ""\r
2309 \r
2310 #: ../source/TortoiseGit_en.xml:3198\r
2311 #.(screen)\r
2312 #, no-wrap\r
2313 msgid "\n/paint/trunk\n/paint/branches\n/paint/tags\n/calc/trunk\n/calc/branches\n/calc/tags\n"\r
2314 msgstr ""\r
2315 \r
2316 #: ../source/TortoiseGit_en.xml:3206\r
2317 #.(para)\r
2318 msgid "Indexing by project makes sense if the projects are not closely related and each one is checked out individually. For related projects where you may want to check out all projects in one go, or where the projects are all tied together in a single distribution package, it is often better to index by branch. This way you have only one trunk to checkout, and the relationships between the sub-projects is more easily visible."\r
2319 msgstr ""\r
2320 \r
2321 #: ../source/TortoiseGit_en.xml:3214\r
2322 #.(para)\r
2323 msgid "If you adopt a top level <filename>/trunk /tags /branches</filename> approach, there is nothing to say that you have to copy the entire trunk for every branch and tag, and in some ways this structure offers the most flexibility."\r
2324 msgstr ""\r
2325 \r
2326 #: ../source/TortoiseGit_en.xml:3220\r
2327 #.(para)\r
2328 msgid "For unrelated projects you may prefer to use separate repositories. When you commit changes, it is the revision number of the whole repository which changes, not the revision number of the project. Having 2 unrelated projects share a repository can mean large gaps in the revision numbers. The Git and TortoiseGit projects appear at the same host address, but are completely separate repositories allowing independent development, and no confusion over build numbers."\r
2329 msgstr ""\r
2330 \r
2331 #: ../source/TortoiseGit_en.xml:3230\r
2332 #.(para)\r
2333 msgid "Of course, you're free to ignore these common layouts. You can create any sort of variation, whatever works best for you or your team. Remember that whatever you choose, it's not a permanent commitment. You can reorganize your repository at any time. Because branches and tags are ordinary directories, TortoiseGit can move or rename them however you wish."\r
2334 msgstr ""\r
2335 \r
2336 #: ../source/TortoiseGit_en.xml:3238\r
2337 #.(para)\r
2338 msgid "Switching from one layout to another is just a matter of issuing a series of server-side moves; If you don't like the way things are organized in the repository, just juggle the directories around."\r
2339 msgstr ""\r
2340 \r
2341 #: ../source/TortoiseGit_en.xml:3255\r
2342 #.(para)\r
2343 msgid "create a new empty folder on your hard drive"\r
2344 msgstr ""\r
2345 \r
2346 #: ../source/TortoiseGit_en.xml:3260\r
2347 #.(para)\r
2348 msgid "create your desired top-level folder structure inside that folder - don't put any files in it yet!"\r
2349 msgstr ""\r
2350 \r
2351 #: ../source/TortoiseGit_en.xml:3266\r
2352 #.(para)\r
2353 msgid "import this structure into the repository via a <action>right click</action> on the folder and selecting <menuchoice><guimenu>TortoiseGit</guimenu><guimenuitem>Import...</guimenuitem></menuchoice> This will import your temp folder into the repository root to create the basic repository layout."\r
2354 msgstr ""\r
2355 \r
2356 #: ../source/TortoiseGit_en.xml:3244\r
2357 #.(para)\r
2358 msgid "So if you haven't already created a basic folder structure inside your repository you should do that now. There are two ways to achieve this. If you simply want to create a <filename>/trunk /tags /branches</filename> structure, you can use the repository browser to create the three folders (in three separate commits). If you want to create a deeper hierarchy then it is simpler to create a folder structure on disk first and import it in a single commit, like this: <placeholder-1/>"\r
2359 msgstr ""\r
2360 \r
2361 #: ../source/TortoiseGit_en.xml:3281\r
2362 #.(para)\r
2363 msgid "Note that the name of the folder you are importing does not appear in the repository, only its contents. For example, create the following folder structure: <screen>\nC:\\Temp\\New\\trunk\nC:\\Temp\\New\\branches\nC:\\Temp\\New\\tags\n</screen> Import <filename>C:\\Temp\\New</filename> into the repository root, which will then look like this: <screen>\n/trunk\n/branches\n/tags\n</screen>"\r
2364 msgstr ""\r
2365 \r
2366 #: ../source/TortoiseGit_en.xml:3301\r
2367 #.(title)\r
2368 msgid "Repository Backup"\r
2369 msgstr ""\r
2370 \r
2371 #: ../source/TortoiseGit_en.xml:3303\r
2372 #.(primary)\r
2373 msgid "backup"\r
2374 msgstr ""\r
2375 \r
2376 #: ../source/TortoiseGit_en.xml:3305\r
2377 #.(para)\r
2378 msgid "Whichever type of repository you use, it is vitally important that you maintain regular backups, and that you verify the backup. If the server fails, you may be able to access a recent version of your files, but without the repository all your history is lost forever."\r
2379 msgstr ""\r
2380 \r
2381 #: ../source/TortoiseGit_en.xml:3312\r
2382 #.(para)\r
2383 msgid "The simplest (but not recommended) way is just to copy the repository folder onto the backup medium. However, you have to be absolutely sure that no process is accessing the data. In this context, access means <emphasis>any</emphasis> access at all. A BDB repository is written to even when the operation only appears to require reading, such as getting status. If your repository is accessed at all during the copy, (web browser left open, WebSVN, etc.) the backup will be worthless."\r
2384 msgstr ""\r
2385 \r
2386 #: ../source/TortoiseGit_en.xml:3322\r
2387 #.(para)\r
2388 msgid "The recommended method is to run <screen>\nsvnadmin hotcopy path/to/repository path/to/backup --clean-logs\n</screen> to create a copy of your repository in a safe manner. Then backup the copy. The <literal>--clean-logs</literal> option is not required, but removes any redundant log files when you backup a BDB repository, which may save some space."\r
2389 msgstr ""\r
2390 \r
2391 #: ../source/TortoiseGit_en.xml:3332\r
2392 #.(para)\r
2393 msgid "The <literal>svnadmin</literal> tool is installed automatically when you install the Git command line client. If you are installing the command line tools on a Windows PC, the best way is to download the Windows installer version. It is compressed more efficiently than the <filename>.zip</filename> version, so the download is smaller, and it takes care of setting the paths for you. You can download the latest version of the Git command line client from <ulink url=\"http://Git.tigris.org/servlets/ProjectDocumentList?folderID=91\"><citetitle>http://Git.tigris.org/servlets/ProjectDocumentList?folderID=91</citetitle></ulink>."\r
2394 msgstr ""\r
2395 \r
2396 #: ../source/TortoiseGit_en.xml:3347\r
2397 #.(title)\r
2398 msgid "Server side hook scripts"\r
2399 msgstr ""\r
2400 \r
2401 #: ../source/TortoiseGit_en.xml:3349\r
2402 #.(primary)\r
2403 msgid "hooks"\r
2404 msgstr ""\r
2405 \r
2406 #: ../source/TortoiseGit_en.xml:3352\r
2407 #.(primary)\r
2408 #: ../source/TortoiseGit_en.xml:12457\r
2409 #.(primary)\r
2410 msgid "hook scripts"\r
2411 msgstr ""\r
2412 \r
2413 #: ../source/TortoiseGit_en.xml:3355\r
2414 #.(primary)\r
2415 msgid "server side hook scripts"\r
2416 msgstr ""\r
2417 \r
2418 #: ../source/TortoiseGit_en.xml:3357\r
2419 #.(para)\r
2420 msgid "A hook script is a program triggered by some repository event, such as the creation of a new revision or the modification of an unversioned property. Each hook is handed enough information to tell what that event is, what target(s) it's operating on, and the username of the person who triggered the event. Depending on the hook's output or return status, the hook program may continue the action, stop it, or suspend it in some way. Please refer to the chapter on <ulink url=\"http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks\"><citetitle>Hook Scripts</citetitle></ulink> in the Git Book for full details about the hooks which are implemented."\r
2421 msgstr ""\r
2422 \r
2423 #: ../source/TortoiseGit_en.xml:3372\r
2424 #.(para)\r
2425 msgid "These hook scripts are executed by the server that hosts the repository. TortoiseGit also allows you to configure client side hook scripts that are executed locally upon certain events. See <xref linkend=\"tsvn-dug-settings-hooks\"/> for more information."\r
2426 msgstr ""\r
2427 \r
2428 #: ../source/TortoiseGit_en.xml:3378\r
2429 #.(para)\r
2430 msgid "Sample hook scripts can be found in the <filename>hooks</filename> directory of the repository. These sample scripts are suitable for Unix/Linux servers but need to be modified if your server is Windows based. The hook can be a batch file or an executable. The sample below shows a batch file which might be used to implement a pre-revprop-change hook. <screen>\nrem Only allow log messages to be changed.\nif \"%4\" == \"svn:log\" exit 0\necho Property '%4' cannot be changed &gt;&amp;2\nexit 1\n</screen> Note that anything sent to stdout is discarded. if you want a message to appear in the Commit Reject dialog you must send it to stderr. In a batch file this is achieved using <filename>&gt;&amp;2</filename>"\r
2431 msgstr ""\r
2432 \r
2433 #: ../source/TortoiseGit_en.xml:3398\r
2434 #.(title)\r
2435 msgid "Checkout Links"\r
2436 msgstr ""\r
2437 \r
2438 #: ../source/TortoiseGit_en.xml:3400\r
2439 #.(primary)\r
2440 msgid "checkout link"\r
2441 msgstr ""\r
2442 \r
2443 #: ../source/TortoiseGit_en.xml:3403\r
2444 #.(primary)\r
2445 msgid "TortoiseGit link"\r
2446 msgstr ""\r
2447 \r
2448 #: ../source/TortoiseGit_en.xml:3406\r
2449 #.(primary)\r
2450 msgid "link"\r
2451 msgstr ""\r
2452 \r
2453 #: ../source/TortoiseGit_en.xml:3409\r
2454 #.(primary)\r
2455 msgid "website"\r
2456 msgstr ""\r
2457 \r
2458 #: ../source/TortoiseGit_en.xml:3411\r
2459 #.(para)\r
2460 msgid "If you want to make your Git repository available to others you may want to include a link to it from your website. One way to make this more accessible is to include a <firstterm>checkout link</firstterm> for other TortoiseGit users."\r
2461 msgstr ""\r
2462 \r
2463 #: ../source/TortoiseGit_en.xml:3417\r
2464 #.(para)\r
2465 msgid "When you install TortoiseGit, it registers a new <literal>tsvn:</literal> protocol. When a TortoiseGit user clicks on such a link, the checkout dialog will open automatically with the repository URL already filled in."\r
2466 msgstr ""\r
2467 \r
2468 #: ../source/TortoiseGit_en.xml:3426\r
2469 #.(programlisting)\r
2470 #, no-wrap\r
2471 msgid "\n&lt;a href=\"tsvn:http://project.domain.org/svn/trunk\"&gt;\n&lt;/a&gt;\n"\r
2472 msgstr ""\r
2473 \r
2474 #: ../source/TortoiseGit_en.xml:3423\r
2475 #.(para)\r
2476 msgid "To include such a link in your own html page, you need to add code which looks something like this: <placeholder-1/>"\r
2477 msgstr ""\r
2478 \r
2479 #: ../source/TortoiseGit_en.xml:3438\r
2480 #.(programlisting)\r
2481 #, no-wrap\r
2482 msgid "\n&lt;a href=\"tsvn:http://project.domain.org/svn/trunk\"&gt;\n&lt;img src=TortoiseCheckout.png&gt;&lt;/a&gt;\n"\r
2483 msgstr ""\r
2484 \r
2485 #: ../source/TortoiseGit_en.xml:3431\r
2486 #.(para)\r
2487 msgid "Of course it would look even better if you included a suitable picture. You can use the <ulink url=\"http://TortoiseGit.tigris.org/images/TortoiseCheckout.png\"><citetitle>TortoiseGit logo</citetitle></ulink> or you can provide your own image. <placeholder-1/>"\r
2488 msgstr ""\r
2489 \r
2490 #: ../source/TortoiseGit_en.xml:3445\r
2491 #.(programlisting)\r
2492 #, no-wrap\r
2493 msgid "\n&lt;a href=\"tsvn:http://project.domain.org/svn/trunk?100\"&gt;\n&lt;/a&gt;\n"\r
2494 msgstr ""\r
2495 \r
2496 #: ../source/TortoiseGit_en.xml:3443\r
2497 #.(para)\r
2498 msgid "You can also make the link point to a specific revision, for example <placeholder-1/>"\r
2499 msgstr ""\r
2500 \r
2501 #: ../source/TortoiseGit_en.xml:3453\r
2502 #.(title)\r
2503 msgid "Daily Use Guide"\r
2504 msgstr ""\r
2505 \r
2506 #: ../source/TortoiseGit_en.xml:3457\r
2507 #.(para)\r
2508 msgid "This document describes day to day usage of the TortoiseGit client. It is <emphasis>not</emphasis> an introduction to version control systems, and <emphasis>not</emphasis> an introduction to Git (SVN). It is more like a place you may turn to when you know approximately what you want to do, but don't quite remember how to do it."\r
2509 msgstr ""\r
2510 \r
2511 #: ../source/TortoiseGit_en.xml:3465\r
2512 #.(para)\r
2513 msgid "If you need an introduction to version control with Git, then we recommend you read the fantastic book: <ulink url=\"http://svnbook.red-bean.com/\"><citetitle>Version Control with Git</citetitle></ulink>."\r
2514 msgstr ""\r
2515 \r
2516 #: ../source/TortoiseGit_en.xml:3472\r
2517 #.(para)\r
2518 msgid "This document is also a work in progress, just as TortoiseGit and Git are. If you find any mistakes, please report them to the mailing list so we can update the documentation. Some of the screenshots in the Daily Use Guide (DUG) might not reflect the current state of the software. Please forgive us. We're working on TortoiseGit in our free time."\r
2519 msgstr ""\r
2520 \r
2521 #: ../source/TortoiseGit_en.xml:3484\r
2522 #.(para)\r
2523 msgid "You should have installed TortoiseGit already."\r
2524 msgstr ""\r
2525 \r
2526 #: ../source/TortoiseGit_en.xml:3489\r
2527 #.(para)\r
2528 msgid "You should be familiar with version control systems."\r
2529 msgstr ""\r
2530 \r
2531 #: ../source/TortoiseGit_en.xml:3494\r
2532 #.(para)\r
2533 msgid "You should know the basics of Git."\r
2534 msgstr ""\r
2535 \r
2536 #: ../source/TortoiseGit_en.xml:3499\r
2537 #.(para)\r
2538 msgid "You should have set up a server and/or have access to a Git repository."\r
2539 msgstr ""\r
2540 \r
2541 #: ../source/TortoiseGit_en.xml:3480\r
2542 #.(para)\r
2543 msgid "In order to get the most out of the Daily Use Guide: <placeholder-1/>"\r
2544 msgstr ""\r
2545 \r
2546 #: ../source/TortoiseGit_en.xml:3510\r
2547 #.(title)\r
2548 msgid "Getting Started"\r
2549 msgstr ""\r
2550 \r
2551 #: ../source/TortoiseGit_en.xml:3512\r
2552 #.(title)\r
2553 #: ../source/TortoiseGit_en.xml:5038\r
2554 #.(title)\r
2555 #: ../source/TortoiseGit_en.xml:15663\r
2556 #.(title)\r
2557 msgid "Icon Overlays"\r
2558 msgstr ""\r
2559 \r
2560 #: ../source/TortoiseGit_en.xml:3515\r
2561 #.(title)\r
2562 #: ../source/TortoiseGit_en.xml:5047\r
2563 #.(title)\r
2564 msgid "Explorer showing icon overlays"\r
2565 msgstr ""\r
2566 \r
2567 #: ../source/TortoiseGit_en.xml:3513\r
2568 #.(para)\r
2569 msgid "<placeholder-1/> One of the most visible features of TortoiseGit is the icon overlays which appear on files in your working copy. These show you at a glance which of your files have been modified. Refer to <xref linkend=\"tsvn-dug-wcstatus-1\"/> to find out what the different overlays represent."\r
2570 msgstr ""\r
2571 \r
2572 #: ../source/TortoiseGit_en.xml:3526\r
2573 #.(title)\r
2574 msgid "Context Menus"\r
2575 msgstr ""\r
2576 \r
2577 #: ../source/TortoiseGit_en.xml:3528\r
2578 #.(primary)\r
2579 msgid "context menu"\r
2580 msgstr ""\r
2581 \r
2582 #: ../source/TortoiseGit_en.xml:3531\r
2583 #.(primary)\r
2584 msgid "right-click"\r
2585 msgstr ""\r
2586 \r
2587 #: ../source/TortoiseGit_en.xml:3535\r
2588 #.(title)\r
2589 msgid "Context menu for a directory under version control"\r
2590 msgstr ""\r
2591 \r
2592 #: ../source/TortoiseGit_en.xml:3533\r
2593 #.(para)\r
2594 msgid "<placeholder-1/> All TortoiseGit commands are invoked from the context menu of the windows explorer. Most are directly visible, when you <action>right click</action> on a file or folder. The commands that are available depend on whether the file or folder or its parent folder is under version control or not. You can also see the TortoiseGit menu as part of the Explorer file menu."\r
2595 msgstr ""\r
2596 \r
2597 #: ../source/TortoiseGit_en.xml:3545\r
2598 #.(para)\r
2599 msgid "Some commands which are very rarely used are only available in the extended context menu. To bring up the extended context menu, hold down the <keycap>Shift</keycap> key when you <action>right-click</action>."\r
2600 msgstr ""\r
2601 \r
2602 #: ../source/TortoiseGit_en.xml:3554\r
2603 #.(title)\r
2604 msgid "Explorer file menu for a shortcut in a versioned folder"\r
2605 msgstr ""\r
2606 \r
2607 #: ../source/TortoiseGit_en.xml:3551\r
2608 #.(para)\r
2609 msgid "In some cases you may see several TortoiseGit entries. This is not a bug! <placeholder-1/> This example is for an unversioned shortcut within a versioned folder, and in the Explorer file menu there are <emphasis>three</emphasis> entries for TortoiseGit. One is for the folder, one for the shortcut itself, and the third for the object the shortcut is pointing to. To help you distinguish between them, the icons have an indicator in the lower right corner to show whether the menu entry is for a file, a folder, a shortcut or for multiple selected items."\r
2610 msgstr ""\r
2611 \r
2612 #: ../source/TortoiseGit_en.xml:3565\r
2613 #.(para)\r
2614 msgid "If you are using Windows 2000 you will find that the context menus are shown as plain text, without the menu icons shown above. We are aware that this was working in previous versions, but Microsoft has changed the way its icon handlers work for Vista, requiring us to use a different display method which unfortunately does not work on Windows 2000."\r
2615 msgstr ""\r
2616 \r
2617 #: ../source/TortoiseGit_en.xml:3574\r
2618 #.(title)\r
2619 #: ../source/TortoiseGit_en.xml:4505\r
2620 #.(title)\r
2621 msgid "Drag and Drop"\r
2622 msgstr ""\r
2623 \r
2624 #: ../source/TortoiseGit_en.xml:3576\r
2625 #.(primary)\r
2626 msgid "drag handler"\r
2627 msgstr ""\r
2628 \r
2629 #: ../source/TortoiseGit_en.xml:3579\r
2630 #.(primary)\r
2631 msgid "drag-n-drop"\r
2632 msgstr ""\r
2633 \r
2634 #: ../source/TortoiseGit_en.xml:3582\r
2635 #.(primary)\r
2636 msgid "right drag"\r
2637 msgstr ""\r
2638 \r
2639 #: ../source/TortoiseGit_en.xml:3586\r
2640 #.(title)\r
2641 #: ../source/TortoiseGit_en.xml:6867\r
2642 #.(title)\r
2643 msgid "Right drag menu for a directory under version control"\r
2644 msgstr ""\r
2645 \r
2646 #: ../source/TortoiseGit_en.xml:3584\r
2647 #.(para)\r
2648 msgid "<placeholder-1/> Other commands are available as drag handlers, when you <action>right drag</action> files or folders to a new location inside working copies or when you <action>right drag</action> a non-versioned file or folder into a directory which is under version control."\r
2649 msgstr ""\r
2650 \r
2651 #: ../source/TortoiseGit_en.xml:3596\r
2652 #.(title)\r
2653 msgid "Common Shortcuts"\r
2654 msgstr ""\r
2655 \r
2656 #: ../source/TortoiseGit_en.xml:3603\r
2657 #.(term)\r
2658 msgid "F1"\r
2659 msgstr ""\r
2660 \r
2661 #: ../source/TortoiseGit_en.xml:3605\r
2662 #.(para)\r
2663 msgid "Help, of course."\r
2664 msgstr ""\r
2665 \r
2666 #: ../source/TortoiseGit_en.xml:3611\r
2667 #.(term)\r
2668 msgid "F5"\r
2669 msgstr ""\r
2670 \r
2671 #: ../source/TortoiseGit_en.xml:3613\r
2672 #.(para)\r
2673 msgid "Refresh the current view. This is perhaps the single most useful one-key command. For example ... In Explorer this will refresh the icon overlays on your working copy. In the commit dialog it will re-scan the working copy to see what may need to be committed. In the Revision Log dialog it will contact the repository again to check for more recent changes."\r
2674 msgstr ""\r
2675 \r
2676 #: ../source/TortoiseGit_en.xml:3625\r
2677 #.(term)\r
2678 msgid "Ctrl-A"\r
2679 msgstr ""\r
2680 \r
2681 #: ../source/TortoiseGit_en.xml:3627\r
2682 #.(para)\r
2683 msgid "Select all. This can be used if you get an error message and want to copy and paste into an email. Use Ctrl-A to select the error message and then ..."\r
2684 msgstr ""\r
2685 \r
2686 #: ../source/TortoiseGit_en.xml:3635\r
2687 #.(term)\r
2688 msgid "Ctrl-C"\r
2689 msgstr ""\r
2690 \r
2691 #: ../source/TortoiseGit_en.xml:3637\r
2692 #.(para)\r
2693 msgid "... Copy the selected text."\r
2694 msgstr ""\r
2695 \r
2696 #: ../source/TortoiseGit_en.xml:3597\r
2697 #.(para)\r
2698 msgid "Some common operations have well-known Windows shortcuts, but do not appear on buttons or in menus. If you can't work out how to do something obvious, like refreshing a view, check here. <placeholder-1/>"\r
2699 msgstr ""\r
2700 \r
2701 #: ../source/TortoiseGit_en.xml:3648\r
2702 #.(primary)\r
2703 msgid "authentication"\r
2704 msgstr ""\r
2705 \r
2706 #: ../source/TortoiseGit_en.xml:3654\r
2707 #.(title)\r
2708 msgid "Authentication Dialog"\r
2709 msgstr ""\r
2710 \r
2711 #: ../source/TortoiseGit_en.xml:3662\r
2712 #.(para)\r
2713 msgid "<filename>svn.simple</filename> contains credentials for basic authentication (username/password)."\r
2714 msgstr ""\r
2715 \r
2716 #: ../source/TortoiseGit_en.xml:3668\r
2717 #.(para)\r
2718 msgid "<filename>svn.ssl.server</filename> contains SSL server certificates."\r
2719 msgstr ""\r
2720 \r
2721 #: ../source/TortoiseGit_en.xml:3674\r
2722 #.(para)\r
2723 msgid "<filename>svn.username</filename> contains credentials for username-only authentication (no password needed)."\r
2724 msgstr ""\r
2725 \r
2726 #: ../source/TortoiseGit_en.xml:3650\r
2727 #.(para)\r
2728 msgid "If the repository that you are trying to access is password protected, an authentication Dialog will show up. <placeholder-1/> Enter your username and password. The checkbox will make TortoiseGit store the credentials in Git's default directory: <filename>%APPDATA%\\Git\\auth</filename> in three subdirectories: <placeholder-2/>"\r
2729 msgstr ""\r
2730 \r
2731 #: ../source/TortoiseGit_en.xml:3681\r
2732 #.(para)\r
2733 msgid "If you want to clear the authentication cache for all servers, you can do so from the <guilabel>Saved Data</guilabel> page of TortoiseGit's settings dialog. That button will clear all cached authentication data from the Git <filename>auth</filename> directories, as well as any authentication data stored in the registry by earlier versions of TortoiseGit. Refer to <xref linkend=\"tsvn-dug-settings-saved-data\"/>."\r
2734 msgstr ""\r
2735 \r
2736 #: ../source/TortoiseGit_en.xml:3690\r
2737 #.(para)\r
2738 msgid "For more information on how to set up your server for authentication and access control, refer to <xref linkend=\"tsvn-serversetup\"/>"\r
2739 msgstr ""\r
2740 \r
2741 #: ../source/TortoiseGit_en.xml:3697\r
2742 #.(title)\r
2743 msgid "Maximizing Windows"\r
2744 msgstr ""\r
2745 \r
2746 #: ../source/TortoiseGit_en.xml:3699\r
2747 #.(primary)\r
2748 msgid "maximize"\r
2749 msgstr ""\r
2750 \r
2751 #: ../source/TortoiseGit_en.xml:3701\r
2752 #.(para)\r
2753 msgid "Many of TortoiseGit's dialogs have a lot of information to display, but it is often useful to maximize only the height, or only the width, rather than maximizing to fill the screen. As a convenience, there are shortcuts for this on the <guilabel>Maximize</guilabel> button. Use the <action>middle mouse</action> button to maximize vertically, and <action>right mouse</action> to maximize horizontally."\r
2754 msgstr ""\r
2755 \r
2756 #: ../source/TortoiseGit_en.xml:3712\r
2757 #.(title)\r
2758 msgid "Importing Data Into A Repository"\r
2759 msgstr ""\r
2760 \r
2761 #: ../source/TortoiseGit_en.xml:3714\r
2762 #.(primary)\r
2763 msgid "import"\r
2764 msgstr ""\r
2765 \r
2766 #: ../source/TortoiseGit_en.xml:3720\r
2767 #.(primary)\r
2768 msgid "add files to repository"\r
2769 msgstr ""\r
2770 \r
2771 #: ../source/TortoiseGit_en.xml:3724\r
2772 #.(title)\r
2773 #: ../source/TortoiseGit_en.xml:14432\r
2774 #.(entry)\r
2775 #: ../source/TortoiseGit_en.xml:15594\r
2776 #.(title)\r
2777 #: ../source/TortoiseGit_en.xml:16361\r
2778 #.(glossterm)\r
2779 msgid "Import"\r
2780 msgstr ""\r
2781 \r
2782 #: ../source/TortoiseGit_en.xml:3726\r
2783 #.(primary)\r
2784 msgid "temporary files"\r
2785 msgstr ""\r
2786 \r
2787 #: ../source/TortoiseGit_en.xml:3728\r
2788 #.(para)\r
2789 msgid "If you are importing into an existing repository which already contains some projects, then the repository structure will already have been decided. If are importing data into a new repository then it is worth taking the time to think about how it will be organised. Read <xref linkend=\"tsvn-repository-layout\"/> for further advice."\r
2790 msgstr ""\r
2791 \r
2792 #: ../source/TortoiseGit_en.xml:3742\r
2793 #.(para)\r
2794 msgid "There is no way to select files and folders to include, aside from using the global ignore settings."\r
2795 msgstr ""\r
2796 \r
2797 #: ../source/TortoiseGit_en.xml:3748\r
2798 #.(para)\r
2799 msgid "The folder imported does not become a working copy. You have to do a checkout to copy the files back from the server."\r
2800 msgstr ""\r
2801 \r
2802 #: ../source/TortoiseGit_en.xml:3754\r
2803 #.(para)\r
2804 msgid "It is easy to import to the wrong folder level in the repository."\r
2805 msgstr ""\r
2806 \r
2807 #: ../source/TortoiseGit_en.xml:3736\r
2808 #.(para)\r
2809 msgid "This section describes the Git import command, which was designed for importing a directory hierarchy into the repository in one shot. Although it does the job, it has several shortcomings: <placeholder-1/> For these reasons we recommend that you do not use the import command at all but rather follow the two-step method described in <xref linkend=\"tsvn-dug-import-in-place\"/>. But since you are here, this is how the basic import works ..."\r
2810 msgstr ""\r
2811 \r
2812 #: ../source/TortoiseGit_en.xml:3768\r
2813 #.(para)\r
2814 msgid "Remove all files which are not needed to build the project (temporary files, files which are generated by a compiler e.g. *.obj, compiled binaries, ...)"\r
2815 msgstr ""\r
2816 \r
2817 #: ../source/TortoiseGit_en.xml:3776\r
2818 #.(para)\r
2819 msgid "Organize the files in folders and sub-folders. Although it is possible to rename/move files later it is highly recommended to get your project's structure straight before importing!"\r
2820 msgstr ""\r
2821 \r
2822 #: ../source/TortoiseGit_en.xml:3764\r
2823 #.(para)\r
2824 msgid "Before you import your project into a repository you should: <placeholder-1/>"\r
2825 msgstr ""\r
2826 \r
2827 #: ../source/TortoiseGit_en.xml:3796\r
2828 #.(title)\r
2829 msgid "The Import dialog"\r
2830 msgstr ""\r
2831 \r
2832 #: ../source/TortoiseGit_en.xml:3785\r
2833 #.(para)\r
2834 msgid "Now select the top-level folder of your project directory structure in the windows explorer and <action>right click</action> to open the context menu. Select the command <menuchoice><guimenu>TortoiseGit</guimenu><guimenuitem>Import...</guimenuitem></menuchoice> which brings up a dialog box: <placeholder-1/>"\r
2835 msgstr ""\r
2836 \r
2837 #: ../source/TortoiseGit_en.xml:3800\r
2838 #.(para)\r
2839 msgid "In this dialog you have to enter the URL of the repository location where you want to import your project. It is very important to realise that the local folder you are importing does not itself appear in the repository, only its content. For example if you have a structure: <screen>\nC:\\Projects\\Widget\\source\nC:\\Projects\\Widget\\doc\nC:\\Projects\\Widget\\images\n</screen> and you import <filename>C:\\Projects\\Widget</filename> into <systemitem class=\"url\">http://mydomain.com/svn/trunk</systemitem> then you may be surprised to find that your subdirectories go straight into <literal>trunk</literal> rather than being in a <literal>Widget</literal> subdirectory. You need to specify the subdirectory as part of the URL, <systemitem class=\"url\">http://mydomain.com/svn/trunk/Widget-X</systemitem>. Note that the import command will automatically create subdirectories within the repository if they do not exist."\r
2840 msgstr ""\r
2841 \r
2842 #: ../source/TortoiseGit_en.xml:3821\r
2843 #.(para)\r
2844 msgid "The import message is used as a log message."\r
2845 msgstr ""\r
2846 \r
2847 #: ../source/TortoiseGit_en.xml:3824\r
2848 #.(para)\r
2849 msgid "By default, files and folders which match the global-ignore patterns are <emphasis>not</emphasis> imported. To override this behaviour you can use the <guilabel>Include ignored files</guilabel> checkbox. Refer to <xref linkend=\"tsvn-dug-settings-main\"/> for more information on setting a global ignore pattern."\r
2850 msgstr ""\r
2851 \r
2852 #: ../source/TortoiseGit_en.xml:3831\r
2853 #.(para)\r
2854 msgid "As soon as you press <guibutton>OK</guibutton> TortoiseGit imports the complete directory tree including all files into the repository. The project is now stored in the repository under version control. Please note that the folder you imported is <emphasis>NOT</emphasis> under version control! To get a version-controlled <firstterm>working copy</firstterm> you need to do a Checkout of the version you just imported. Or read on to find out how to import a folder in place."\r
2855 msgstr ""\r
2856 \r
2857 #: ../source/TortoiseGit_en.xml:3843\r
2858 #.(title)\r
2859 msgid "Import in Place"\r
2860 msgstr ""\r
2861 \r
2862 #: ../source/TortoiseGit_en.xml:3845\r
2863 #.(primary)\r
2864 msgid "import in place"\r
2865 msgstr ""\r
2866 \r
2867 #: ../source/TortoiseGit_en.xml:3852\r
2868 #.(para)\r
2869 msgid "Use the repository browser to create a new project folder directly in the repository."\r
2870 msgstr ""\r
2871 \r
2872 #: ../source/TortoiseGit_en.xml:3858\r
2873 #.(para)\r
2874 msgid "Checkout the new folder over the top of the folder you want to import. You will get a warning that the local folder is not empty. Now you have a versioned top level folder with unversioned content."\r
2875 msgstr ""\r
2876 \r
2877 #: ../source/TortoiseGit_en.xml:3865\r
2878 #.(para)\r
2879 msgid "Use <menuchoice><guimenu>TortoiseGit</guimenu><guimenuitem>Add...</guimenuitem></menuchoice> on this versioned folder to add some or all of the content. You can add and remove files, set <literal>svn:ignore</literal> properties on folders and make any other changes you need to."\r
2880 msgstr ""\r
2881 \r
2882 #: ../source/TortoiseGit_en.xml:3877\r
2883 #.(para)\r
2884 msgid "Commit the top level folder, and you have a new versioned tree, and a local working copy, created from your existing folder."\r
2885 msgstr ""\r
2886 \r
2887 #: ../source/TortoiseGit_en.xml:3847\r
2888 #.(para)\r
2889 msgid "Assuming you already have a repository, and you want to add a new folder structure to it, just follow these steps: <placeholder-1/>"\r
2890 msgstr ""\r
2891 \r
2892 #: ../source/TortoiseGit_en.xml:3886\r
2893 #.(title)\r
2894 msgid "Special Files"\r
2895 msgstr ""\r
2896 \r
2897 #: ../source/TortoiseGit_en.xml:3888\r
2898 #.(primary)\r
2899 msgid "special files"\r
2900 msgstr ""\r
2901 \r
2902 #: ../source/TortoiseGit_en.xml:3890\r
2903 #.(para)\r
2904 msgid "Sometimes you need to have a file under version control which contains user specific data. That means you have a file which every developer/user needs to modify to suit his/her local setup. But versioning such a file is difficult because every user would commit his/her changes every time to the repository."\r
2905 msgstr ""\r
2906 \r
2907 #: ../source/TortoiseGit_en.xml:3897\r
2908 #.(para)\r
2909 msgid "In such cases we suggest to use <emphasis>template</emphasis> files. You create a file which contains all the data your developers will need, add that file to version control and let the developers check this file out. Then, each developer has to <emphasis>make a copy</emphasis> of that file and rename that copy. After that, modifying the copy is not a problem anymore."\r
2910 msgstr ""\r
2911 \r
2912 #: ../source/TortoiseGit_en.xml:3905\r
2913 #.(para)\r
2914 msgid "As an example, you can have a look at TortoiseGit's build script. It calls a file named <filename>TortoiseVars.bat</filename> which doesn't exist in the repository. Only the file <filename>TortoiseVars.tmpl</filename>. <filename>TortoiseVars.tmpl</filename> is the template file which every developer has to create a copy from and rename that file to <filename>TortoiseVars.bat</filename>. Inside that file, we added comments so that the users will see which lines they have to edit and change according to their local setup to get it working."\r
2915 msgstr ""\r
2916 \r
2917 #: ../source/TortoiseGit_en.xml:3916\r
2918 #.(para)\r
2919 msgid "So as not to disturb the users, we also added the file <filename>TortoiseVars.bat</filename> to the ignore list of its parent folder, i.e. we've set the Git property <literal>svn:ignore</literal> to include that filename. That way it won't show up as unversioned on every commit."\r
2920 msgstr ""\r
2921 \r
2922 #: ../source/TortoiseGit_en.xml:3925\r
2923 #.(title)\r
2924 msgid "Referenced Projects"\r
2925 msgstr ""\r
2926 \r
2927 #: ../source/TortoiseGit_en.xml:3927\r
2928 #.(primary)\r
2929 msgid "external repositories"\r
2930 msgstr ""\r
2931 \r
2932 #: ../source/TortoiseGit_en.xml:3930\r
2933 #.(primary)\r
2934 #: ../source/TortoiseGit_en.xml:14014\r
2935 #.(primary)\r
2936 msgid "externals"\r
2937 msgstr ""\r
2938 \r
2939 #: ../source/TortoiseGit_en.xml:3932\r
2940 #.(para)\r
2941 msgid "Sometimes it is useful to construct a working copy that is made out of a number of different checkouts. For example, you may want different subdirectories to come from different locations in a repository, or perhaps from different repositories altogether. If you want every user to have the same layout, you can define the <literal>svn:externals</literal> properties."\r
2942 msgstr ""\r
2943 \r
2944 #: ../source/TortoiseGit_en.xml:3940\r
2945 #.(para)\r
2946 msgid "Let's say you check out a working copy of <filename>/project1</filename> to <filename>D:\\dev\\project1</filename>. Select the folder <filename>D:\\dev\\project1</filename>, <action>right click</action> and choose <menuchoice><guimenu>Windows Menu</guimenu><guimenuitem>Properties</guimenuitem></menuchoice> from the context menu. The Properties Dialog comes up. Then go to the Git tab. There, you can set properties. Click <guibutton>Add...</guibutton>. Select the <literal>svn:externals</literal> property from the combobox and write in the edit box the repository URL in the format <literal>name url</literal> or if you want to specify a particular revision, <literal>name -rREV url</literal> You can add multiple external projects, 1 per line. Note that URLs must be properly escaped or they will not work. For example you must replace each space with <literal>%20</literal>. Note that it is not possible to use folder names with spaces in them. Suppose that you have set these properties on <filename>D:\\dev\\project1</filename>: <screen>\nsounds   http://sounds.red-bean.com/repos\nquick_graphs  http://graphics.red-bean.com/repos/fast%20graphics\nskins/toolkit -r21 http://svn.red-bean.com/repos/skin-maker\n</screen> Now click <guibutton>Set</guibutton> and commit your changes. When you (or any other user) update your working copy, Git will create a sub-folder <filename>D:\\dev\\project1\\sounds</filename> and checkout the sounds project, another sub-folder <filename>D:\\dev\\project1\\quick graphs</filename> containing the graphics project, and finally a nested sub-folder <filename>D:\\dev\\project1\\skins\\toolkit</filename> containing revision 21 of the skin-maker project."\r
2947 msgstr ""\r
2948 \r
2949 #: ../source/TortoiseGit_en.xml:3980\r
2950 #.(para)\r
2951 msgid "You should strongly consider using explicit revision numbers in all of your externals definitions, as described above. Doing so means that you get to decide when to pull down a different snapshot of external information, and exactly which snapshot to pull. Besides the common sense aspect of not being surprised by changes to third-party repositories that you might not have any control over, using explicit revision numbers also means that as you backdate your working copy to a previous revision, your externals definitions will also revert to the way they looked in that previous revision, which in turn means that the external working copies will be updated to match they way <emphasis>they</emphasis> looked back when your repository was at that previous revision. For software projects, this could be the difference between a successful and a failed build of an older snapshot of your complex code base."\r
2952 msgstr ""\r
2953 \r
2954 #: ../source/TortoiseGit_en.xml:3999\r
2955 #.(para)\r
2956 #: ../source/TortoiseGit_en.xml:14046\r
2957 #.(para)\r
2958 msgid "If the external project is in the same repository, any changes you make there there will be included in the commit list when you commit your main project."\r
2959 msgstr ""\r
2960 \r
2961 #: ../source/TortoiseGit_en.xml:4004\r
2962 #.(para)\r
2963 #: ../source/TortoiseGit_en.xml:14051\r
2964 #.(para)\r
2965 msgid "If the external project is in a different repository, any changes you make to the external project will be notified when you commit the main project, but you have to commit those external changes separately."\r
2966 msgstr ""\r
2967 \r
2968 #: ../source/TortoiseGit_en.xml:4010\r
2969 #.(para)\r
2970 msgid "If you use absolute URLs in <literal>svn:externals</literal> definitions and you have to relocate your working copy (i.e., if the URL of your repository changes), then your externals won't change and might not work anymore."\r
2971 msgstr ""\r
2972 \r
2973 #: ../source/TortoiseGit_en.xml:4016\r
2974 #.(para)\r
2975 msgid "To avoid such problems, Git clients version 1.5 and higher support relative external URLs. Four different methods of specifying a relative URL are supported. In the following examples, assume we have two repositories: one at <systemitem class=\"url\">http://example.com/svn/repos-1</systemitem> and another at <systemitem class=\"url\">http://example.com/svn/repos-2</systemitem>. We have a checkout of <systemitem class=\"url\">http://example.com/svn/repos-1/project/trunk</systemitem> into <filename>C:\\Working</filename> and the <literal>svn:externals</literal> property is set on trunk."\r
2976 msgstr ""\r
2977 \r
2978 #: ../source/TortoiseGit_en.xml:4031\r
2979 #.(term)\r
2980 msgid "Relative to parent directory"\r
2981 msgstr ""\r
2982 \r
2983 #: ../source/TortoiseGit_en.xml:4033\r
2984 #.(para)\r
2985 msgid "These URLs always begin with the string <literal>../</literal> for example: <screen>\n../../widgets/foo  common/foo-widget\n</screen> This will extract <systemitem class=\"url\">http://example.com/svn/repos-1/widgets/foo</systemitem> into <filename>C:\\Working\\common\\foo-widget</filename>."\r
2986 msgstr ""\r
2987 \r
2988 #: ../source/TortoiseGit_en.xml:4044\r
2989 #.(para)\r
2990 msgid "Note that the URL is relative to the URL of the directory with the <literal>svn:externals</literal> property, not to the directory where the external is written to disk."\r
2991 msgstr ""\r
2992 \r
2993 #: ../source/TortoiseGit_en.xml:4052\r
2994 #.(term)\r
2995 msgid "Relative to repository root"\r
2996 msgstr ""\r
2997 \r
2998 #: ../source/TortoiseGit_en.xml:4054\r
2999 #.(para)\r
3000 msgid "These URLs always begin with the string <literal>^/</literal> for example: <screen>\n^/widgets/foo  common/foo-widget\n</screen> This will extract <systemitem class=\"url\">http://example.com/svn/repos-1/widgets/foo</systemitem> into <filename>C:\\Working\\common\\foo-widget</filename>."\r
3001 msgstr ""\r
3002 \r
3003 #: ../source/TortoiseGit_en.xml:4065\r
3004 #.(para)\r
3005 msgid "You can easily refer to other repositories with the same <literal>SVNParentPath</literal> (a common directory holding several repositories). For example: <screen>\n^/../repos-2/hammers/claw  common/claw-hammer\n</screen> This will extract <systemitem class=\"url\">http://example.com/svn/repos-2/hammers/claw</systemitem> into <filename>C:\\Working\\common\\claw-hammer</filename>."\r
3006 msgstr ""\r
3007 \r
3008 #: ../source/TortoiseGit_en.xml:4080\r
3009 #.(term)\r
3010 msgid "Relative to scheme"\r
3011 msgstr ""\r
3012 \r
3013 #: ../source/TortoiseGit_en.xml:4082\r
3014 #.(para)\r
3015 msgid "URLs beginning with the string <literal>//</literal> copy only the scheme part of the URL. This is useful when the same hostname must the accessed with different schemes depending upon network location; e.g. clients in the intranet use <systemitem class=\"url\">http://</systemitem> while external clients use <systemitem class=\"url\">svn+ssh://</systemitem>. For example: <screen>\n//example.com/svn/repos-1/widgets/foo  common/foo-widget\n</screen> This will extract <systemitem class=\"url\">http://example.com/svn/repos-1/widgets/foo</systemitem> or <systemitem class=\"url\">svn+ssh://example.com/svn/repos-1/widgets/foo</systemitem> depending on which method was used to checkout <filename>C:\\Working</filename>."\r
3016 msgstr ""\r
3017 \r
3018 #: ../source/TortoiseGit_en.xml:4102\r
3019 #.(term)\r
3020 msgid "Relative to the server's hostname"\r
3021 msgstr ""\r
3022 \r
3023 #: ../source/TortoiseGit_en.xml:4104\r
3024 #.(para)\r
3025 msgid "URLs beginning with the string <literal>/</literal> copy the scheme and the hostname part of the URL, for example: <screen>\n/svn/repos-1/widgets/foo  common/foo-widget\n</screen> This will extract <systemitem class=\"url\">http://example.com/svn/repos-1/widgets/foo</systemitem> into <filename>C:\\Working\\common\\foo-widget</filename>. But if you checkout your working copy from another server at <systemitem class=\"url\">svn+ssh://another.mirror.net/svn/repos-1/project1/trunk</systemitem> then the external reference will extract <systemitem class=\"url\">svn+ssh://another.mirror.net/svn/repos-1/widgets/foo</systemitem>."\r
3026 msgstr ""\r
3027 \r
3028 #: ../source/TortoiseGit_en.xml:4122\r
3029 #.(para)\r
3030 msgid "If you need more information how TortoiseGit handles Properties read <xref linkend=\"tsvn-dug-propertypage\"/>."\r
3031 msgstr ""\r
3032 \r
3033 #: ../source/TortoiseGit_en.xml:4126\r