1 # Git Magic - A guide to using Git
2 # This file is distributed under the GNU GENERAL PUBLIC LICENSE Version 3.
3 # Benn Lynn <benlynn@gmail.com>, 2007.
4 # Armin Stebich <armin@lordofbikes.de>, 2010, 2011.
8 "Project-Id-Version: Git Magic deutsch\n"
9 "Report-Msgid-Bugs-To: bennlynn@gmail.com\n"
10 "POT-Creation-Date: 2011-07-03 23:06+0300\n"
11 "PO-Revision-Date: 2011-07-03 23:28+0200\n"
12 "Last-Translator: Armin Stebich <armin@lordofbikes.de>\n"
13 "Language-Team: DE <gitmagic@lordofbikes.de>\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: UTF-8\n"
22 msgid "== Introduction =="
23 msgstr "== Einleitung =="
28 "I'll use an analogy to introduce version control. See http://en.wikipedia."
29 "org/wiki/Revision_control[the Wikipedia entry on revision control] for a "
32 "Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. Für eine "
33 "vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung"
34 "[den Wikipedia Artikel zur Versionsverwaltung]."
38 msgid "=== Work is Play ==="
39 msgstr "=== Arbeit ist Spiel ==="
44 "I've played computer games almost all my life. In contrast, I only started "
45 "using version control systems as an adult. I suspect I'm not alone, and "
46 "comparing the two may make these concepts easier to explain and understand."
48 "Ich spiele Computerspiele schon fast mein ganzes Leben. Im Gegensatz dazu "
49 "habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu "
50 "benutzen. Ich vermute, dass ich damit nicht alleine bin und der Vergleich "
51 "hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen."
56 "Think of editing your code, or document, as playing a game. Once you've made "
57 "a lot of progress, you'd like to save. To do so, you click on the 'Save' "
58 "button in your trusty editor."
60 "Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein "
61 "Computerspiel vor. Wenn du gut voran gekommen bist, willst du das Erreichte "
62 "sichern. Um das zu tun, klickst du auf auf Speichern in deinem vertrauten "
68 "But this will overwrite the old version. It's like those old school games "
69 "which only had one save slot: sure you could save, but you could never go "
70 "back to an older state. Which was a shame, because your previous save might "
71 "have been right at an exceptionally fun part of the game that you'd like to "
72 "revisit one day. Or worse still, your current save is in an unwinnable "
73 "state, and you have to start again."
75 "Aber, das überschreibt die vorherige Version. Das ist wie bei den Spielen "
76 "der alten Schule, die nur Speicherplatz für eine Sicherung hatten: "
77 "sicherlich konntest du speichern, aber du konntest nie zu einem älteren "
78 "Stand zurück. Das war eine Schande, denn vielleicht war deine vorherige "
79 "Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du "
80 "später gerne noch einmal zurückkehren möchtest. Oder noch schlimmer, deine "
81 "aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz "
86 msgid "=== Version Control ==="
87 msgstr "=== Versionsverwaltung ==="
92 "When editing, you can 'Save As...' a different file, or copy the file "
93 "somewhere first before saving if you want to savour old versions. You can "
94 "compress them too to save space. This is a primitive and labour-intensive "
95 "form of version control. Computer games improved on this long ago, many of "
96 "them providing multiple automatically timestamped save slots."
98 "Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem "
99 "neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin "
100 "um die alte Version zu erhalten. Außerdem kannst du sie komprimieren um "
101 "Speicherplatz zu sparen. Das ist eine primitive und mühselige Form der "
102 "Versionsverwaltung. Computerspiele machten das lange Zeit so, viele von "
103 "ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel."
106 #: ../en/intro.txt:18
108 "Let's make the problem slightly tougher. Say you have a bunch of files that "
109 "go together, such as source code for a project, or files for a website. Now "
110 "if you want to keep an old version you have to archive a whole directory. "
111 "Keeping many versions around by hand is inconvenient, and quickly becomes "
114 "Jetzt lass uns das Problem etwas komplizierter machen. Sagen wir, du hast "
115 "einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt "
116 "oder Dateien einer Website. Wenn du nun eine alte Version erhalten willst, "
117 "musst du den ganzen Ordner archivieren. Viele Versionen auf diese Art zu "
118 "archivieren ist mühselig und kann sehr schnell teuer werden."
121 #: ../en/intro.txt:20
123 "With some computer games, a saved game really does consist of a directory "
124 "full of files. These games hide this detail from the player and present a "
125 "convenient interface to manage different versions of this directory."
127 "Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem "
128 "Ordner voller Dateien. Diese Spiele versteckten die Details vor dem Spieler "
129 "und präsentierten eine bequeme Oberfläche um verschiedene Versionen des "
130 "Ordners zu verwalten."
133 #: ../en/intro.txt:22
135 "Version control systems are no different. They all have nice interfaces to "
136 "manage a directory of stuff. You can save the state of the directory every "
137 "so often, and you can load any one of the saved states later on. Unlike most "
138 "computer games, they're usually smart about conserving space. Typically, "
139 "only a few files change from version to version, and not by much. Storing "
140 "the differences instead of entire new copies saves room."
142 "Versionsverwaltungen sind nicht anders. Sie alle haben bequeme "
143 "Schnittstellen um Ordner voller Dateien zu verwalten. Du kannst den Zustand "
144 "des Ordners sichern so oft du willst und du kannst später jeden "
145 "Sicherungspunkt wieder herstellen. Im Gegensatz zu den meisten "
146 "Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem "
147 "Speicherplatz umzugehen. Normalerweise ändern sich immer nur wenige Dateien "
148 "zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. Die "
149 "Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer "
150 "Kopie der ganzen Datei."
153 #: ../en/intro.txt:24
154 msgid "=== Distributed Control ==="
155 msgstr "=== Verteilte Kontrolle ==="
158 #: ../en/intro.txt:26
160 "Now imagine a very difficult computer game. So difficult to finish that many "
161 "experienced gamers all over the world decide to team up and share their "
162 "saved games to try to beat it. Speedruns are real-life examples: players "
163 "specializing in different levels of the same game collaborate to produce "
166 "Nun stell dir ein ganz kompliziertes Computerspiel vor. So schwierig zu "
167 "lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich "
168 "zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das "
169 "Spiel zu beenden. 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, "
170 "die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert "
171 "haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen."
174 #: ../en/intro.txt:28
176 "How would you set up a system so they can get at each other's saves easily? "
177 "And upload new ones?"
179 "Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die "
180 "Sicherungen der anderen bekommt? Und eigene Sicherungen bereitstellt?"
183 #: ../en/intro.txt:30
185 "In the old days, every project used centralized version control. A server "
186 "somewhere held all the saved games. Nobody else did. Every player kept at "
187 "most a few saved games on their machine. When a player wanted to make "
188 "progress, they'd download the latest save from the main server, play a "
189 "while, save and upload back to the server for everyone else to use."
191 "Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. Irgendwo "
192 "speicherte ein Server alle gespeicherten Spiele, sonst niemand. Jeder "
193 "Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. Wenn ein "
194 "Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom "
195 "Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann "
196 "wieder auf den Server laden, damit irgendjemand ihn nutzen kann."
199 #: ../en/intro.txt:32
201 "What if a player wanted to get an older saved game for some reason? Maybe "
202 "the current saved game is in an unwinnable state because somebody forgot to "
203 "pick up an object back in level three, and they want to find the latest "
204 "saved game where the game can still be completed. Or maybe they want to "
205 "compare two older saved games to see how much work a particular player did."
207 "Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? "
208 "Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil "
209 "jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie "
210 "versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar "
211 "ist. Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel "
212 "ein Spieler geleistet hat."
215 #: ../en/intro.txt:34
217 "There could be many reasons to want to see an older revision, but the "
218 "outcome is the same. They have to ask the central server for that old saved "
219 "game. The more saved games they want, the more they need to communicate."
221 "Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das "
222 "Ergebnis ist das selbe. Man muss vom Hauptserver das alte gespeicherte Spiel "
223 "anfordern. Je mehr gespeicherte Spiele benötigt werden, desto mehr "
224 "Kommunikation ist erforderlich."
227 #: ../en/intro.txt:36
229 "The new generation of version control systems, of which Git is a member, are "
230 "known as distributed systems, and can be thought of as a generalization of "
231 "centralized systems. When players download from the main server they get "
232 "every saved game, not just the latest one. It's as if they're mirroring the "
235 "Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, "
236 "werden verteilte Systeme genannt und können als eine Verallgemeinerung der "
237 "zentralisierten Systeme verstanden werden. Wenn Spieler vom Hauptserver "
238 "herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt "
239 "gespeicherte. Es ist als ob der Hauptserver gespiegelt wird."
242 #: ../en/intro.txt:38
244 "This initial cloning operation can be expensive, especially if there's a "
245 "long history, but it pays off in the long run. One immediate benefit is that "
246 "when an old save is desired for any reason, communication with the central "
247 "server is unnecessary."
249 "Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange "
250 "Geschichte existiert, aber auf Dauer wird es sich lohnen. Ein unmittelbarer "
251 "Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist "
252 "keine Kommunikation mit dem Hauptserver notwendig."
255 #: ../en/intro.txt:40
256 msgid "=== A Silly Superstition ==="
257 msgstr "=== Ein dummer Aberglaube ==="
260 #: ../en/intro.txt:42
262 "A popular misconception is that distributed systems are ill-suited for "
263 "projects requiring an official central repository. Nothing could be further "
264 "from the truth. Photographing someone does not cause their soul to be "
265 "stolen. Similarly, cloning the master repository does not diminish its "
268 "Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet "
269 "sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. "
270 "Nichts könnte weiter von der Wahrheit entfernt sein. Jemanden zu "
271 "fotografieren stiehlt nicht dessen Seele. Genauso wenig setzt das 'Clonen' "
272 "des zentralen 'Repository' dessen Bedeutung herab."
275 #: ../en/intro.txt:44
277 "A good first approximation is that anything a centralized version control "
278 "system can do, a well-designed distributed system can do better. Network "
279 "resources are simply costlier than local resources. While we shall later see "
280 "there are drawbacks to a distributed approach, one is less likely to make "
281 "erroneous comparisons with this rule of thumb."
283 "Eine gute erste Annäherung ist, dass alles was eine zentralisierte "
284 "Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. "
285 "Netzwerkressourcen sind einfach teurer als lokale Ressourcen. Auch wenn wir "
286 "später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser "
287 "Faustregel weniger anfällig für falsche Vergleiche."
290 #: ../en/intro.txt:48
292 "A small project may only need a fraction of the features offered by such a "
293 "system, but using systems that scale poorly for tiny projects is like using "
294 "Roman numerals for calculations involving small numbers."
296 "Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die "
297 "so ein System bietet. Aber deshalb ein einfacheres, schlecht erweiterbares "
298 "System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen "
302 #: ../en/intro.txt:50
304 "Moreover, your project may grow beyond your original expectations. Using Git "
305 "from the outset is like carrying a Swiss army knife even though you mostly "
306 "use it to open bottles. On the day you desperately need a screwdriver you'll "
307 "be glad you have more than a plain bottle-opener."
309 "Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen "
310 "hinauswachsen. Git von Anfang an zu benutzen, ist wie ein Schweizer "
311 "Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen "
312 "geöffnet werden. Eines Tages brauchst du vielleicht dringend einen "
313 "Schraubendreher, dann bist du froh mehr als nur einen einfachen "
314 "Flaschenöffner bei dir zu haben."
317 #: ../en/intro.txt:52
318 msgid "=== Merge Conflicts ==="
319 msgstr "=== 'Merge' Konflikte ==="
322 #: ../en/intro.txt:54
324 "For this topic, our computer game analogy becomes too thinly stretched. "
325 "Instead, let us again consider editing a document."
327 "Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. Stattdessen "
328 "stellen wir uns wieder vor, wir editieren ein Dokument."
331 #: ../en/intro.txt:56
333 "Suppose Alice inserts a line at the beginning of a file, and Bob appends one "
334 "at the end of his copy. They both upload their changes. Most systems will "
335 "automatically deduce a reasonable course of action: accept and merge their "
336 "changes, so both Alice's and Bob's edits are applied."
338 "Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am "
339 "Dateiende. Beide laden ihre Änderungen hoch. Die meisten Systeme wählen "
340 "automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und "
341 "füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein."
344 #: ../en/intro.txt:58
346 "Now suppose both Alice and Bob have made distinct edits to the same line. "
347 "Then it is impossible to proceed without human intervention. The second "
348 "person to upload is informed of a _merge conflict_, and must choose one edit "
349 "over another, or revise the line entirely."
351 "Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben "
352 "Zeile. Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. Die "
353 "zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' "
354 "Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird "
355 "oder die ganze Zeile überarbeiten. "
358 #: ../en/intro.txt:59
360 "More complex situations can arise. Version control systems handle the "
361 "simpler cases themselves, and leave the difficult cases for humans. Usually "
362 "their behaviour is configurable."
364 "Es können noch weitaus kompliziertere Situationen entstehen. "
365 "Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und "
366 "überlassen die schwierigen uns Menschen. Üblicherweise ist deren Verhalten "