From 1c5c77264f1cedc7374e682c9f005396cfffab4a Mon Sep 17 00:00:00 2001 From: Oscar Santiago <6805462+pastatopf@users.noreply.github.com> Date: Mon, 21 Oct 2024 07:30:15 +0200 Subject: [PATCH] appendix b - vom sie zum du (#404) --- B-embedding-git-in-your-applications.asc | 6 +- CONTRIBUTING.asc | 34 +++++------ README.asc | 20 +++---- Special_Characters.asc | 2 +- TRANSLATING.md | 53 +++++++++--------- TRANSLATION_NOTES.asc | 10 ++-- TRANSLATION_NOTES_DE.asc | 35 ++++++------ .../B-embedding-git/sections/command-line.asc | 6 +- book/B-embedding-git/sections/dulwich.asc | 2 +- book/B-embedding-git/sections/go-git.asc | 8 +-- book/B-embedding-git/sections/jgit.asc | 42 +++++++------- book/B-embedding-git/sections/libgit2.asc | 56 +++++++++---------- 12 files changed, 138 insertions(+), 136 deletions(-) diff --git a/B-embedding-git-in-your-applications.asc b/B-embedding-git-in-your-applications.asc index b3a9af56..40ab2bae 100644 --- a/B-embedding-git-in-your-applications.asc +++ b/B-embedding-git-in-your-applications.asc @@ -1,11 +1,11 @@ [[B-embedding-git-in-your-applications]] [appendix] -== Git in Ihre Anwendungen einbetten +== Git in deine Anwendungen einbetten -Wenn Ihre Anwendung für Software-Entwickler gedacht ist, stehen die Chancen gut, dass sie von der Integration mit der Quellcode-Versionsverwaltung profitieren kann. +Wenn deine Anwendung für Software-Entwickler gedacht ist, stehen die Chancen gut, dass sie von der Integration mit der Quellcode-Versionsverwaltung profitieren kann. Auch Anwendungen, die nicht für Entwickler bestimmt sind, wie z.B. Texteditoren, könnten potenziell von Funktionen der Versionskontrolle profitieren. Das Git-System funktioniert sehr gut für viele unterschiedliche Einsatzszenarien. -Wenn Sie Git in Ihre Anwendung integrieren müssen, haben Sie im Wesentlichen zwei Möglichkeiten: eine Shell zu erzeugen und damit das Git-Kommandozeilenprogramm aufzurufen oder eine Git-Bibliothek in Ihre Anwendung einzubetten. +Wenn du Git in deiner Anwendung integrieren musst, hast du im Wesentlichen zwei Möglichkeiten: eine Shell zu erzeugen und damit das Git-Kommandozeilenprogramm aufzurufen oder eine Git-Bibliothek in deine Anwendung einzubetten. Hier werden wir die Befehlszeilenintegration und einige der beliebtesten, integrierbaren Git-Bibliotheken behandeln. include::book/B-embedding-git/sections/command-line.asc[] diff --git a/CONTRIBUTING.asc b/CONTRIBUTING.asc index cf41821d..a674c6b9 100644 --- a/CONTRIBUTING.asc +++ b/CONTRIBUTING.asc @@ -1,31 +1,31 @@ = Zur Übersetzung der zweiten Auflage von Git Pro beitragen -== Ihre Arbeit an uns lizenzieren +== Deine Arbeit an uns lizenzieren -Wenn Sie einen Pull-Request öffnen, erklären Sie sich damit einverstanden, dass Ihre Arbeit unter der link:LICENSE.asc[Projektlizenz] veröffentlicht wird. -Außerdem erklären Sie sich damit einverstanden, eine solche Lizenz an Ihrer Arbeit den Hauptautoren @ben und @schacon zu gewähren, die sie für zukünftige, gedruckte Ausgaben benötigen. -Sollten Ihre Änderungen in einer gedruckten Fassung erscheinen, so werden Sie in die Liste der link:book/contributors.asc[Mitwirkenden] aufgenommen. +Wenn du einen Pull-Request öffnest, erklärst du dich damit einverstanden, dass deine Arbeit unter der link:LICENSE.asc[Projektlizenz] veröffentlicht wird. +Außerdem erklärst du dich damit einverstanden, eine solche Lizenz an deiner Arbeit den Hauptautoren @ben und @schacon zu gewähren, die sie für zukünftige, gedruckte Ausgaben benötigen. +Sollten deine Änderungen in einer gedruckten Fassung erscheinen, so wirst du in die Liste der link:book/contributors.asc[Mitwirkenden] aufgenommen. == Ein Problem (Issue) melden -Suchen Sie nach ähnlichen Issues, bevor Sie ein neues erstellen. +Suche bitte nach ähnlichen Issues, bevor du ein neues erstellst. -Wenn Sie das Problem auch auf der link:https://git-scm.com[Git-Website] entdeckt haben, überprüfen Sie bitte, ob das Problem auch in der PDF-Version vorhanden ist. +Wenn du das Problem auch auf der link:https://git-scm.com[Git-Website] entdeckt hast, überprüfe bitte, ob das Problem auch in der PDF-Version vorhanden ist. Möglicherweise wurde das Problem bereits in den Quelldateien korrigiert, aber noch nicht auf der link:https://git-scm.com[Git-Website] veröffentlicht. == Kleinere Korrekturen Fehlerkorrekturen und grundlegende Klarstellungen werden akzeptiert, wenn wir uns einig sind, dass sie den Inhalt verbessern. -Sie können auch ein Issue öffnen, so dass wir diskutieren können, wie oder ob das Issue gelöst werden muss. +Du kannst auch ein Issue öffnen, so dass wir diskutieren können, wie oder ob das Issue gelöst werden muss. -Wenn Sie dies noch nie zuvor getan haben, kann der link:https://guides.github.com/introduction/flow/[Flow Guide] hilfreich sein. +Wenn du dies noch nie zuvor getan hast, kann der link:https://guides.github.com/introduction/flow/[Flow Guide] hilfreich sein. == Größere Änderungen -Öffnen Sie ein Issue zur Diskussion, bevor Sie beginnen. +Öffnen einen Issue zur Diskussion, bevor du beginnst. Eine umfangreiche Korrektur neigt dazu, sehr subjektiv zu sein und die Dinge oft nur für eine kleinere Anzahl von Lesern zu verbessern. Professionelle Textredakteure haben diesen Inhalt bereits mehrfach überprüft. -Es ist unwahrscheinlich, dass Ihre neue Textfassung *so* viel besser wird, dass es sich lohnt, große Teile des Inhalts zu ändern. +Es ist unwahrscheinlich, dass deine neue Textfassung *so* viel besser wird, dass es sich lohnt, große Teile des Inhalts zu ändern. == Abbildungen @@ -33,16 +33,16 @@ Die Bilder in diesem Buch wurden mit link:https://www.sketchapp.com/[Sketch 3] u Um eine Abbildung zu erstellen: -1. Fügen Sie eine Seite zum Sketchbook hinzu. -Verwenden Sie, wo immer möglich, die mitgelieferten Symbole. -2. Fügen Sie Ihrer Seite einen „Slice“ hinzu. -Geben Sie ihm einen Namen, der mit dem PNG-Dateinamen des Ziels übereinstimmt, relativ zur Root des Quellverzeichnisses. -3. Stellen Sie den Export Ihres Slice auf „800w“ ein. +1. Füge eine Seite zum Sketchbook hinzu. +Verwende, wo immer möglich, die mitgelieferten Symbole. +2. Füge deine Seite einen „Slice“ hinzu. +Gib ihm einen Namen, der mit dem PNG-Dateinamen des Ziels übereinstimmt, relativ zur Root des Quellverzeichnisses. +3. Stelle den Export Ihres Slice auf „800w“ ein. == Übersetzungen -Wenn Sie einen Beitrag zur Übersetzung von Pro Git in Ihre Sprache leisten möchten, werfen Sie einen Blick auf link:https://github.com/progit/progit2-de/blob/master/TRANSLATING.md[TRANSLATING.md]. +Wenn du einen Beitrag zur Übersetzung von Pro Git in deiner Sprache leisten möchtest, wirf einen Blick auf link:https://github.com/progit/progit2-de/blob/master/TRANSLATING.md[TRANSLATING.md]. == Weiterführende Hinweise zur deutschen Übersetzung -Alle weiterführenden Hinweise zur deutschen Übersetzung finden Sie im Dokument link:TRANSLATION_NOTES_DE.asc[Hinweise zur deutschen Übersetzung]. +Alle weiterführenden Hinweise zur deutschen Übersetzung findest du im Dokument link:TRANSLATION_NOTES_DE.asc[Hinweise zur deutschen Übersetzung]. diff --git a/README.asc b/README.asc index 67a7f213..14c880b3 100644 --- a/README.asc +++ b/README.asc @@ -2,20 +2,20 @@ Herzlich willkommen bei der zweiten Auflage des Buchs „Pro Git“. -Sie finden dieses Buch online unter: https://git-scm.com/book/de/v2 +Du findest dieses Buch online unter: https://git-scm.com/book/de/v2 Wie die erste, ist auch die zweite Auflage von *Pro Git* Open Source und steht unter der Creative Commons-Lizenz. Im Vergleich zur ersten Auflage haben sich in der zweiten Auflage allerdings ein paar Dinge geändert: -Unter anderem haben wir von Markdown auf das fantastische AsciiDoc-Format für den Text des Buches umgestellt. Sie finden unter https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/[AsciiDoc Syntax Quick Reference] eine kleine Starthilfe +Unter anderem haben wir von Markdown auf das fantastische AsciiDoc-Format für den Text des Buches umgestellt. Du findest unter https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/[AsciiDoc Syntax Quick Reference] eine kleine Starthilfe Statt eines großen Repositorys für alle Sprachen wird jede Sprache mittlerweile in einem eigenen Repository verwaltet. -In den Dokumenten link:TRANSLATING.md[Pro Git Übersetzung] und link:TRANSLATION_NOTES_DE.asc[Hinweise zur deutschen Übersetzung] finden Sie weitere Informationen. +In den Dokumenten link:TRANSLATING.md[Pro Git Übersetzung] und link:TRANSLATION_NOTES_DE.asc[Hinweise zur deutschen Übersetzung] findest du weitere Informationen. == Wie kann das Buch erstellt werden? -Sie können die E-Book-Dateien manuell mit Asciidoctor erzeugen. -Wenn Sie die folgenden Befehle ausführen, können Sie auch HTML-, Epub-, Mobi- und PDF-Ausgabedateien erhalten: +Du kannst die E-Book-Dateien manuell mit Asciidoctor erzeugen. +Wenn du die folgenden Befehle ausführst, kannst du auch HTML-, Epub-, Mobi- und PDF-Ausgabedateien erhalten: ---- $ bundle install @@ -30,8 +30,8 @@ Converting to PDF... -- PDF output at progit.pdf ---- -Sie können auch nur eins der unterstützten Formate (HTML, EPUB, mobi, or PDF) erstellen. -Nutzen sie eins der folgenden Kommandos: +Du kannst auch nur eins der unterstützten Formate (HTML, EPUB, mobi, or PDF) erstellen. +Nutze eins der folgenden Kommandos: Um das HTML Buch zu erstellen: @@ -59,11 +59,11 @@ $ bundle exec rake book:build_pdf == Ein Problem melden -Bevor Sie ein Problem melden, bitten wir Sie zu überprüfen, ob sich nicht ein ähnliches oder gar dasselbe Problem bereits im Bugtracking-System befindet. +Bevor du ein Problem meldest, überprüfe bitte, ob sich nicht ein ähnliches oder gar dasselbe Problem bereits im Bugtracking-System befindet. -Wenn Sie dieses Problem auf der Website git-scm.com entdeckt haben, überprüfen Sie bitte nochmals, ob es in diesem Repo noch vorhanden ist. +Wenn du dieses Problem auf der Website git-scm.com entdeckt hast, überprüfe bitte nochmals, ob es in diesem Repo noch vorhanden ist. Das Problem wurde eventuell schon behoben, aber die Änderungen noch nicht eingespielt. == Mithelfen -Wenn Sie uns bei der Übersetzung helfen wollen, sei es um einen Text neu zu übersetzen oder einen Rechtschreibfehler zu verbessern, finden Sie in dem Dokument link:CONTRIBUTING.asc[Contributor Guide] weitere Informationen. +Wenn du uns bei der Übersetzung helfen willst, sei es um einen Text neu zu übersetzen oder einen Rechtschreibfehler zu verbessern, findest du in dem Dokument link:CONTRIBUTING.asc[Contributor Guide] weitere Informationen. diff --git a/Special_Characters.asc b/Special_Characters.asc index 6198c39b..7579a4da 100644 --- a/Special_Characters.asc +++ b/Special_Characters.asc @@ -8,7 +8,7 @@ Die Eingabe von Sonderzeichen mit der normalen Standard-Tastatur ist je nach Bet Das Ziel dieser Datei ist es, für die häufigsten Sonderzeichen ein `copy + paste` zu ermöglichen. -Falls für ein notwendiges Sonderzeichen in der folgenden Tabelle kein Eintrag vorhanden ist, sollten Sie entweder selbst einen Vorschlag machen oder über „New Issue“ eine Nachricht hinterlassen. +Falls für ein notwendiges Sonderzeichen in der folgenden Tabelle kein Eintrag vorhanden ist, solltest du entweder selbst einen Vorschlag machen oder über „New Issue“ eine Nachricht hinterlassen. [TIP] ==== diff --git a/TRANSLATING.md b/TRANSLATING.md index 39b9ff68..2f5918e3 100644 --- a/TRANSLATING.md +++ b/TRANSLATING.md @@ -6,19 +6,19 @@ Die Übersetzungen werden dezentral verwaltet. Jedes Übersetzungsteam pflegt se Pro Git ist ein Buch über ein technisches Werkzeug, daher ist die Übersetzung im Vergleich zu einer nicht-technischen Übersetzung schwierig. -Die folgenden Richtlinien sollen Ihnen auf Ihrem Weg helfen: -* Bevor Sie beginnen, lesen Sie das gesamte Git Pro Buch auf Englisch, damit Sie den Inhalt kennen und mit dem verwendeten Stil vertraut werden. -* Stellen Sie sicher, dass Sie über gute Grundkenntnisse in git verfügen, so dass die Erklärung der Fachbegriffe möglich ist. -* Halten Sie sich an einen gemeinsamen Stil und ein gemeinsames Format für die Übersetzung. -* Lesen und verstehen Sie unbedingt die Grundlagen der [Asciidoc-Formatierung](https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/). Die Nichteinhaltung der asciidoc-Syntax kann zu Problemen beim Erstellen/Kompilieren der für das Buch benötigten pdf-, epub- und html-Dateien führen. +Die folgenden Richtlinien sollen dir auf deinem Weg helfen: +* Bevor du beginnst, lies das gesamte Git Pro Buch auf Englisch, damit du den Inhalt kennst und mit dem verwendeten Stil vertraut wirst. +* Stelle sicher, dass du über gute Grundkenntnisse in git verfügst, so dass die Erklärung der Fachbegriffe möglich ist. +* Halte dich an einen gemeinsamen Stil und ein gemeinsames Format für die Übersetzung. +* Lese und verstehe unbedingt die Grundlagen der [Asciidoc-Formatierung](https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/). Die Nichteinhaltung der asciidoc-Syntax kann zu Problemen beim Erstellen/Kompilieren der für das Buch benötigten pdf-, epub- und html-Dateien führen. ## Das Buch in eine andere Sprache übersetzen ### Mithilfe bei einem bestehenden Projekt -* Suchen Sie in der folgenden Tabelle nach einem bereits vorhandenen Projekt. -* Gehen Sie auf die GitHub-Projektseite. -* Eröffnen Sie ein Issue, stellen Sie sich vor und fragen Sie, wo Sie helfen können. +* Suche in der folgenden Tabelle nach einem bereits vorhandenen Projekt. +* Gehe auf die GitHub-Projektseite. +* Eröffne ein Issue, stelle dich vor und frage, wo du helfen kannst. | Sprache | GitHub Projektseite | | :------------- | :------------- | @@ -54,17 +54,17 @@ Die folgenden Richtlinien sollen Ihnen auf Ihrem Weg helfen: ### Eine neue Übersetzung beginnen -Wenn es noch kein Projekt für Ihre Sprache gibt, können Sie eine eigene Übersetzung starten. +Wenn es noch kein Projekt für deine Sprache gibt, kannst du eine eigene Übersetzung starten. -Grundlage Ihrer Arbeit ist die zweite Ausgabe des Buches, die [hier](https://github.com/progit/progit2) verfügbar ist. So sollten Sie vorgehen: - 1. Wählen Sie den richtigen [ISO 639-Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) für Ihre Sprache. - 1. Erstellen Sie eine [GitHub-Organisation](https://docs.github.com/en/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch), z.B. `progit2-[Ihr_Code]` auf GitHub. - 1. Erstellen Sie ein Projekt ``progit2``. - 1. Kopieren Sie die Struktur von progit/progit2 (dieses Projekt) in Ihr Projekt und beginnen Sie mit der Übersetzung. +Grundlage deiner Arbeit ist die zweite Ausgabe des Buches, die [hier](https://github.com/progit/progit2) verfügbar ist. So solltest du vorgehen: + 1. Wähle den richtigen [ISO 639-Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) für deine Sprache. + 1. Erstelle eine [GitHub-Organisation](https://docs.github.com/en/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch), z.B. `progit2-[Ihr_Code]` auf GitHub. + 1. Erstelle ein Projekt ``progit2``. + 1. Kopiere die Struktur von progit/progit2 (dieses Projekt) in dein Projekt und beginne mit der Übersetzung. -### Den Bearbeitungsstatus Ihrer Übersetzung aktualisieren +### Den Bearbeitungsstatus deiner Übersetzung aktualisieren -Auf https://git-scm.com sind die Übersetzungen in drei Kategorien eingeteilt. Sobald Sie eine dieser Levels erreicht haben, kontaktieren Sie die Betreuer von https://git-scm.com/, damit sie die Änderungen übernehmen können. +Auf https://git-scm.com sind die Übersetzungen in drei Kategorien eingeteilt. Sobald du eine dieser Levels erreicht hast, kontaktiere die Betreuer von https://git-scm.com/, damit sie die Änderungen übernehmen können. | Kategorie | fertiggestellt | | :------------- | :------------- | @@ -76,22 +76,23 @@ Auf https://git-scm.com sind die Übersetzungen in drei Kategorien eingeteilt. S GitHub Actions ist ein [Continuous Integration](https://de.wikipedia.org/wiki/Kontinuierliche_Integration)-Dienst, der in GitHub integriert ist. GitHub Actions wird verwendet, um sicherzustellen, dass ein Pull-Request den Build oder die Kompilierung nicht unterbricht. GitHub Actions kann auch kompilierte Versionen des Buchs bereitstellen. -Die Konfiguration für GitHub-Aktionen ist im Verzeichnis `.github/workflows` enthalten, und wenn Sie den `main`-Branch des Root-Repositorys einbinden, erhalten Sie sie kostenlos. -Wenn Sie jedoch Ihr Übersetzungsrepo erstellt haben, indem Sie das Root-Repository _geforked_ haben, müssen Sie einen zusätzlichen Schritt ausführen (wenn Sie keinen Fork gemacht haben, können Sie diesen Teil überspringen). -GitHub geht davon aus, dass Forks verwendet werden, um zu dem Repository beizutragen, aus dem sie geforked wurden. Sie müssen also die Registerkarte „Aktionen“ in Ihrem geforktem Repository aufrufen und auf die Schaltfläche „Ich verstehe meine Workflows“ klicken, um die Aktionen zuzulassen. +Die Konfiguration für GitHub-Aktionen ist im Verzeichnis `.github/workflows` enthalten, und wenn du den `main`-Branch des Root-Repositorys einbindest, erhältst du sie kostenlos. +Wenn du jedoch dein Übersetzungsrepo erstellt hast, indem du das Root-Repository _geforked_ hast, musst di einen zusätzlichen Schritt ausführen (wenn du keinen Fork gemacht hast, kannst du diesen Teil überspringen). +GitHub geht davon aus, dass Forks verwendet werden, um zu dem Repository beizutragen, aus dem sie geforked wurden. Du musst also die Registerkarte „Aktionen“ in deinem geforktem Repository aufrufen und auf die Schaltfläche „Ich verstehe meine Workflows“ klicken, um die Aktionen zuzulassen. -## Einrichtung einer Publikationskette für E-Books +## Einrichtung einer Veröffentlichungs-Pipelne für E-Books -Das ist eine technische Sache, bitte kontaktieren Sie @jnavila, um mit der Veröffentlichung von epub zu beginnen. +Das ist eine technische Sache, bitte kontaktiere @jnavila, um mit der Veröffentlichung von epub zu beginnen. ## Abgesehen von Pro Git -Die Übersetzung des Buches ist der erste Schritt. Sobald das fertig ist, können Sie die Benutzeroberfläche von Git selbst übersetzen. +Die Übersetzung des Buches ist der erste Schritt. Sobald das fertig ist, kannst du die Benutzeroberfläche von Git selbst übersetzen. -Diese Aufgabe erfordert ein besseres technisches Wissen über das Tool als das Buch. Hoffentlich können Sie nach der Übersetzung des gesamten Buchinhalts die in der Anwendung verwendeten Begriffe verstehen. Wenn Sie sich der Aufgabe technisch gewachsen fühlen, ist das Repo [hier](https://github.com/git-l10n/git-po) und Sie müssen nur dieser [Anleitung](https://github.com/git-l10n/git-po/blob/master/po/README.md) folgen. +Diese Aufgabe erfordert ein besseres technisches Wissen über das Tool als das Buch. Hoffentlich kannst du nach der Übersetzung des gesamten Buchinhalts die in der Anwendung verwendeten Begriffe verstehen. Wenn du dich der Aufgabe technisch gewachsen fühlst, ist das Repo [hier](https://github.com/git-l10n/git-po) und du musst nur dieser [Anleitung](https://github.com/git-l10n/git-po/blob/master/po/README.md) folgen. -Beachten Sie jedoch, dass +Beachte jedoch, dass - * Sie speziellere Tools verwenden müssen, um die Lokalisierungs-Po-Dateien zu handhaben (z.B. um sie mit [poedit](https://poedit.net/) zu bearbeiten) und sie zusammenzuführen. Möglicherweise müssen Sie git kompilieren, um Ihre Arbeit zu überprüfen. + * du speziellere Tools verwenden musst, um die Lokalisierungs-Po-Dateien zu handhaben (z.B. um sie mit [poedit](https://poedit.net/) zu bearbeiten) und sie zusammenzuführen. Möglicherweise musst du git kompilieren, um deine Arbeit zu überprüfen. * ein grundlegendes Verständnis über die Übersetzung von Anwendungen erforderlich ist, die sich deutlich von der Übersetzung von Büchern unterscheidet. - * das Core-Projekt Git strengere [Vorschriften](https://github.com/git-l10n/git-po/blob/master/Documentation/SubmittingPatches) für die Annahme von Beiträgen anwendet. Achten Sie darauf, diese einzuhalten. + * das Core-Projekt Git strengere [Vorschriften](https://github.com/git-l10n/git-po/blob/master/Documentation/SubmittingPatches) für die Annahme von Beiträgen anwendet. Achte darauf, diese einzuhalten. + \ No newline at end of file diff --git a/TRANSLATION_NOTES.asc b/TRANSLATION_NOTES.asc index 592ac9bd..da7528e7 100644 --- a/TRANSLATION_NOTES.asc +++ b/TRANSLATION_NOTES.asc @@ -3,11 +3,11 @@ Nachdem dieses Repository für die Übersetzung der Arbeit freigegeben wurde, werden in dieser Datei die Hinweise zur Koordination der Übersetzungsarbeit angezeigt. Zum Beispiel die Standardisierung von Wörtern und Ausdrücken, damit die Arbeit konsistent ist, oder Hinweise darauf, wie der beitragende Prozess zu handhaben ist. -Als Übersetzungsmanager können Sie die README-Datei auch ändern oder komplett neu schreiben, mit Anweisungen, die speziell auf Ihre Übersetzung zugeschnitten sind. +Als Übersetzungsmanager kannst du die README-Datei auch ändern oder komplett neu schreiben, mit Anweisungen, die speziell auf deine Übersetzung zugeschnitten sind. -In den Dokumenten link:TRANSLATING.md[Pro Git Übersetzung] und link:TRANSLATION_NOTES_DE.asc[Hinweise zur deutschen Übersetzung] finden Sie weitere Informationen. +In den Dokumenten link:TRANSLATING.md[Pro Git Übersetzung] und link:TRANSLATION_NOTES_DE.asc[Hinweise zur deutschen Übersetzung] findest du weitere Informationen. -=== Translation Status += Translation Status -Wenn die Arbeit übersetzt ist, aktualisieren Sie bitte die Datei `status.json`, um den groben Prozentsatz der Fertigstellung jeder Datei anzugeben. -Dies wird auf verschiedenen Seiten gezeigt, um den Leuten mitzuteilen, wie viel Arbeit noch zu tun ist. +Wenn die Arbeit übersetzt ist, aktualisiere bitte die Datei `status.json`, um den groben Prozentsatz der Fertigstellung jeder Datei anzugeben. +Dies wird auf verschiedenen Seiten gezeigt, um den Beteiligten mitzuteilen, wie viel Arbeit noch zu tun ist. diff --git a/TRANSLATION_NOTES_DE.asc b/TRANSLATION_NOTES_DE.asc index 159d86fc..0849699e 100644 --- a/TRANSLATION_NOTES_DE.asc +++ b/TRANSLATION_NOTES_DE.asc @@ -8,31 +8,32 @@ Beim Übersetzen sollte, zusätzlich zur eigentlichen Übersetzung, der Fortschr == Workflow Git -Wenn Sie an der deutschen Übersetzung mitarbeiten wollen, können Sie dazu ein link:https://git-scm.com/book/de/v1/Distribuierte-Arbeit-mit-Git-xxx-An-einem-Projekt-mitarbeiten#Kleine,-öffentliche-Projekte[Fork] erstellen und in diesem weiterarbeiten. +Wenn du an der deutschen Übersetzung mitarbeiten möchtest, kannst du dazu einen link:https://git-scm.com/book/de/v1/Distribuierte-Arbeit-mit-Git-xxx-An-einem-Projekt-mitarbeiten#Kleine,-öffentliche-Projekte[Fork] erstellen und in diesem weiterarbeiten. -* Bitte erstellen Sie erst dann einen Pull-Request, wenn Sie ein Arbeitspaket abgeschlossen haben. Bitte beschreiben Sie im Pull-Request, was Ihr zu mergender Branch enthält (neue Übersetzungen, Korrekturen usw.). +* Bitte erstelle erst dann einen Pull-Request, wenn du ein Arbeitspaket abgeschlossen hast. Bitte beschreibe im Pull-Request, was dein zu mergender Branch enthält (neue Übersetzungen, Korrekturen usw.). -* Wir werden Ihren Beitrag prüfen und ein weiterer Helfer wird Ihr Ergebnis Korrektur lesen (Review). Das kann dazu führen, dass Sie Ihre Arbeit noch einmal überarbeiten müssen. Bitte sehen Sie das Review als positive Hilfestellung, damit das Ergebnis insgesamt besser wird, und nehmen Sie die Kritik nicht negativ auf. Wir wollen damit sicherstellen, dass die deutsche Übersetzung einheitlicher wird und in einer guten Qualität zur Verfügung steht. Wenn alles passt, nehmen wir das Ergebnis in den Haupt-Branch auf und veröffentlichen es für die bekannten Seiten. +* Wir werden deinen Beitrag prüfen und ein weiterer Helfer wird dein Ergebnis Korrektur lesen (Review). Das kann dazu führen, dass du deine Arbeit noch einmal überarbeiten musst. Bitte sieh das Review als positive Hilfestellung, damit das Ergebnis insgesamt besser wird, und nimm die Kritik nicht negativ auf. Wir wollen damit sicherstellen, dass die deutsche Übersetzung einheitlicher wird und in einer guten Qualität zur Verfügung steht. Wenn alles passt, nehmen wir das Ergebnis in den Haupt-Branch auf und veröffentlichen es in den entsprechenden Seiten. -* Wenn Ihr Ergebnis sehr weit vom Master-Branch abweicht, kann es passieren, dass wir Sie um einen link:https://git-scm.com/book/de/v1/Git-Branching-Rebasing[Rebase] bitten. +* Wenn dein Ergebnis sehr weit vom Master-Branch abweicht, kann es passieren, dass wir dich um einen link:https://git-scm.com/book/de/v1/Git-Branching-Rebasing[Rebase] bitten. -* Da bei der deutschen Übersetzung ausschließlich deutschsprachige Mitarbeiter mitwirken, sollte die Commit-Beschreibung auf Deutsch erfolgen. Bitte wenden Sie die üblichen Git Commit-Beschreibungskonventionen an. +* Da bei der deutschen Übersetzung ausschließlich deutschsprachige Mitarbeiter mitwirken, sollte die Commit-Beschreibung auf Deutsch erfolgen. Bitte wende die üblichen Git Commit-Beschreibungskonventionen an. == Allgemeine Regeln -* Falls Sie einen Abschnitt übersetzen möchten, der noch nicht übersetzt wurde, sollten Sie nach der Übersetzung den englischen Text entfernen. Bitte entfernen Sie den englischen Text nur für die Passagen, die Sie auch tatsächlich bereits übersetzt haben. -* Kommandozeilenausgaben sollten so übersetzt werden, dass sie mit der deutschen Version von Git übereinstimmen. Im Zweifel belassen Sie bitte die Kommandozeilenausgabe in Englisch. +* Falls du einen Abschnitt übersetzen möchtest, der noch nicht übersetzt wurde, solltest du nach der Übersetzung den englischen Text entfernen. Bitte entferne den englischen Text nur für die Passagen, die du auch tatsächlich bereits übersetzt hast. +* Kommandozeilenausgaben sollten so übersetzt werden, dass sie mit der deutschen Version von Git übereinstimmen. Im Zweifel belasse bitte die Kommandozeilenausgabe in Englisch. * Der Leser wird formal mit „Sie“ angesprochen, wobei das „Sie“ auch großgeschrieben wird. Bitte beachten Sie dies auch bei Possessivpronomen, wie beispielsweise „Ihr“, „Ihre“ usw. gilt. Siehe hierzu auch link:https://www.duden.de/sprachwissen/sprachratgeber/Gross-oder-Kleinschreibung-von-sieSie[folgender Link]. Andere Sprachen verwenden ebenfalls die formelle Form, wie link:https://github.com/progit/progit2/issues/151[hier] beschrieben. +* Update 20.10.2024: Die Autoren des Repos haben beschlossen, Leser nun zu 'duzen'. In der heutigen Zeit hat es sich im IT eingebürgert, sich mit 'Du' anzusprechen, da die formelle 'Sie' Form nicht mehr zeitgemäß erscheint. Die Umstellung erfolgte im Jahr 2024 == Übersetzungs-Workflow -* Falls Sie eine Live-Vorschau der von Ihnen bearbeiteten Datei möchten: nutzen Sie die Vorschau der exzellenten Plugins von beispielsweise https://code.visualstudio.com/[VS Code] (https://github.com/asciidoctor/asciidoctor-vscode[Plugin]) oder https://atom.io/[Atom] (https://atom.io/packages/asciidoc-preview[Plugin]). Alternativ können Sie https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/[AsciiDoc Live Preview] im Browser Ihrer Wahl installieren und die zu übersetzende .asc-Datei dann im Browser öffnen. AsciiDoc Live Preview lädt Dateien automatisch neu, wenn diese überschrieben werden. -* Öffnen Sie die .asc-Datei mit einem Texteditor Ihrer Wahl. -* Für einen ersten Übersetzungsvorschlag können Sie einen Absatz von Ihrem Browser in einen Übersetzer Ihrer Wahl kopieren. Vorschläge für Übersetzer-Tools: -** https://www.deepl.com/translator[DeepL] übersetzt erstaunlich gut, auch mit englischen Fachbegriffen. Die Seite gibt sinnvolle Alternativen, wenn Sie auf ein übersetztes Wort klicken (z.B. bei du/Sie). In diversen (https://www.golem.de/news/deepl-im-hands-on-neues-tool-uebersetzt-viel-besser-als-google-und-microsoft-1708-129715.html[Kurz]-)https://www.reddit.com/r/TranslationStudies/comments/9ww6lo/google_translate_vs_deeplcom_which_is_better/[Tests] für teils deutlich besser als Google Translate befunden. +* Falls du eine Live-Vorschau der von dir bearbeiteten Datei möchtest: nutze die Vorschau der Plugins von beispielsweise https://code.visualstudio.com/[VS Code] (https://github.com/asciidoctor/asciidoctor-vscode[Plugin]) oder https://atom.io/[Atom] (https://atom.io/packages/asciidoc-preview[Plugin]). Alternativ kannst du https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/[AsciiDoc Live Preview] im Browser deiner Wahl installieren und die zu übersetzende .asc-Datei dann im Browser öffnen. AsciiDoc Live Preview lädt Dateien automatisch neu, wenn diese überschrieben werden. +* Öffne die .asc-Datei mit einem Texteditor deiner Wahl. +* Für einen ersten Übersetzungsvorschlag kannst du einen Absatz von deinem Browser in einen Übersetzer deiner Wahl kopieren. Vorschläge für Übersetzer-Tools: +** https://www.deepl.com/translator[DeepL] übersetzt erstaunlich gut, auch mit englischen Fachbegriffen. Die Seite gibt sinnvolle Alternativen, wenn du auf ein übersetztes Wort klickst (z.B. bei du/Sie). In diversen (https://www.golem.de/news/deepl-im-hands-on-neues-tool-uebersetzt-viel-besser-als-google-und-microsoft-1708-129715.html[Kurz]-)https://www.reddit.com/r/TranslationStudies/comments/9ww6lo/google_translate_vs_deeplcom_which_is_better/[Tests] für teils deutlich besser als Google Translate befunden. ** https://translate.google.com/[Google Translate], robuster Übersetzer -** https://www.linguee.de/[Linguee] bietet Beispiel-Übersetzungen, die einen gesuchten Begriff enthalten. So kann man, je nach Kontext, entdecken wie der Begriff verwendet werden kann oder sollte. -* Kopieren Sie den von DeepL übersetzten Text in Ihren Texteditor und nehmen Sie letzte Korrekturen wie das Markieren von Code mit Backticks (`) vor. +** https://www.linguee.de/[Linguee] bietet Beispiel-Übersetzungen, die einen gesuchten Begriff enthalten. So kann man, je nach Kontext, prüfen wie der Begriff verwendet werden kann oder sollte. +* Kopiere den von DeepL übersetzten Text in deinen Texteditor und nimm letzte Korrekturen wie das Markieren von Code mit Backticks (`) vor. == Schreibweise und Übersetzung von Fachbegriffen @@ -48,7 +49,7 @@ Unter Windows (schon seit dem Urahn Windows 3.11) gibt man mit `alt + ` Tag (dt. Abhängigkeiten) in Ihrer pom.xml Datei erreicht: +Es gibt eine Reihe von Möglichkeiten, dein Projekt mit JGit zu verbinden und damit Code zu schreiben. +Die wahrscheinlich einfachste ist die Verwendung von Maven – die Integration wird durch das Hinzufügen des folgenden Snippets zum `` Tag (dt. Abhängigkeiten) in deiner pom.xml Datei erreicht: [source,xml] ---- @@ -19,11 +19,11 @@ Die wahrscheinlich einfachste ist die Verwendung von Maven – die Integration w ---- -Die `version` wird höchstwahrscheinlich schon weiter fortgeschritten sein, wenn Sie das hier lesen. Unter https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit[^] finden Sie aktuelle Informationen zum Repository. -Sobald dieser Schritt abgeschlossen ist, wird Maven automatisch die von Ihnen benötigten JGit-Bibliotheken herunterladen und verwenden. +Die `version` wird höchstwahrscheinlich schon weiter fortgeschritten sein, wenn du das hier liest. Unter https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit[^] findest du aktuelle Informationen zum Repository. +Sobald dieser Schritt abgeschlossen ist, wird Maven automatisch die von dir benötigten JGit-Bibliotheken herunterladen und verwenden. -Wenn Sie die binären Abhängigkeiten lieber selbst verwalten möchten, sind vorkompilierte JGit-Binärdateien unter https://www.eclipse.org/jgit/download[^] erhältlich. -Sie können diese in Ihr Projekt einbauen, indem Sie einen Befehl wie den folgenden ausführen: +Wenn du die binären Abhängigkeiten lieber selbst verwalten möchtest, sind vorkompilierte JGit-Binärdateien unter https://www.eclipse.org/jgit/download[^] erhältlich. +Du kannst diese in deinem Projekt einbauen, indem du bspw. folgenden Befehl ausführst: [source,console] ---- @@ -36,7 +36,7 @@ java -cp .:org.eclipse.jgit-3.5.0.201409260305-r.jar App JGit hat zwei grundsätzliche API-Ebenen: Basis und Standard (plumbing und porcelain). Die Terminologie dafür stammt von Git direkt und JGit ist in etwa die gleichen Bereiche unterteilt. Standardbefehl-APIs bieten ein benutzerfreundliches Front-End für allgemeine Funktionen auf Benutzerebene (die Art von Aktionen, für die ein normaler Benutzer das Git-Befehlszeilen-Tool verwenden würde). Die Basisbefehl-APIs dienen der direkten Interaktion mit Repository-Objekten auf der unteren Anwendungsebene. -Der Ausgangspunkt für die meisten JGit-Sitzungen ist die Klasse `Repository`. Das erste, was Sie tun sollten, ist davon eine Instanz zu erstellen. +Der Ausgangspunkt für die meisten JGit-Sitzungen ist die Klasse `Repository`. Das erste, was du tun solltest, ist davon eine Instanz zu erstellen. Für ein dateisystem-basiertes Repository (ja, JGit erlaubt andere Speichermodelle) wird das mit dem `FileRepositoryBuilder` erreicht: [source,java] @@ -52,10 +52,10 @@ Repository existingRepo = new FileRepositoryBuilder() .build(); ---- -Der Builder verfügt über ein flexibles API, um alle notwendigen Funktionen zum Auffinden eines Git-Repositorys bereitzustellen, unabhängig von der Frage, wo Ihr Programm sich genau befindet. +Der Builder verfügt über ein flexibles API, um alle notwendigen Funktionen zum Auffinden eines Git-Repositorys bereitzustellen, unabhängig von der Frage, wo dein Programm sich genau befindet. Er kann Umgebungsvariablen verwenden (`.readEnvironment()`), von einem Ort im Arbeitsverzeichnis starten und suchen (`.setWorkTree(…).findGitDir()`) oder einfach, wie oben beschrieben, ein bekanntes `.git` Verzeichnis öffnen. -Sobald Sie eine `Repository` Instanz eingerichtet haben, können Sie alles Erdenkliche damit machen. +Sobald du eine `Repository` Instanz eingerichtet hast, kannst du alles Erdenkliche damit machen. Hier ist eine kurze Aufstellung: [source,java] @@ -88,30 +88,30 @@ Config cfg = repo.getConfig(); String name = cfg.getString("user", null, "name"); ---- -Hier gibt es eine Menge zu sagen, lassen Sie uns die Abschnitte nacheinander durchgehen. +Hier gibt es eine Menge zu sagen, lasse uns die Abschnitte nacheinander durchgehen. Die erste Zeile erhält einen Pointer auf die Referenz `master`. -JGit erfasst automatisch den _aktuellen_ `master` Ref, der bei `refs/heads/master` liegt und gibt ein Objekt zurück, mit dem Sie Informationen über die Referenz fetchen können. -Sie können den Namen (`.getName()`) und entweder das Zielobjekt einer direkten Referenz (`.getObjectId()`) oder die Referenz, auf die eine symbolische Referenz zeigt (`.getTarget()`), erhalten. -Ref-Objekte werden auch zur Darstellung von Tag-Refs und -Objekten verwendet, so dass Sie abfragen können, ob der Tag „gepeelt“ ist, d.h. ob er auf das endgültige Ziel einer (potenziell langen) Kette von Tag-Objekten zeigt. +JGit erfasst automatisch den _aktuellen_ `master` Ref, der bei `refs/heads/master` liegt und gibt ein Objekt zurück, mit dem du Informationen über die Referenz fetchen kannst. +Du kannst den Namen (`.getName()`) und entweder das Zielobjekt einer direkten Referenz (`.getObjectId()`) oder die Referenz, auf die eine symbolische Referenz zeigt (`.getTarget()`), erhalten. +Ref-Objekte werden auch zur Darstellung von Tag-Refs und -Objekten verwendet, so dass du abfragen kannst, ob der Tag „gepeelt“ ist, d.h. ob er auf das endgültige Ziel einer (potenziell langen) Kette von Tag-Objekten zeigt. Die zweite Zeile ermittelt das Ziel der `master` Referenz, die als ObjectId-Instanz zurückgegeben wird. ObjectId repräsentiert den SHA-1-Hash eines Objekts, der in der Objektdatenbank von Git möglicherweise vorhanden sein könnte. -Die dritte Zeile ist vergleichbar, zeigt aber, wie JGit die Rev-Parse-Syntax behandelt (mehr dazu in <>). Sie können jeden beliebigen Objektbezeichner übergeben, den Git versteht und JGit gibt entweder eine gültige ObjectId für dieses Objekt oder `null` zurück. +Die dritte Zeile ist vergleichbar, zeigt aber, wie JGit die Rev-Parse-Syntax behandelt (mehr dazu in <>). Du kannst jeden beliebigen Objektbezeichner übergeben, den Git versteht und JGit gibt entweder eine gültige ObjectId für dieses Objekt oder `null` zurück. Die nächsten beiden Zeilen zeigen, wie der Rohinhalt eines Objekts geladen wird. In diesem Beispiel rufen wir `ObjectLoader.copyTo()` auf, um den Inhalt des Objekts direkt nach stdout zu übertragen. Der ObjectLoader verfügt jedoch auch über Funktionen, um den Typ und die Größe eines Objekts zu lesen und es als Byte-Array zurückzugeben. -Für größere Objekte ( bei denen `true` den Wert `.isLarge()` zurückgibt) können Sie `.openStream()` aufrufen, um ein InputStream-ähnliches Objekt zu erhalten, das die Rohdaten des Objekts lesen kann, ohne alles auf einmal in den Arbeitsspeicher zu ziehen. +Für größere Objekte ( bei denen `true` den Wert `.isLarge()` zurückgibt) kannst du `.openStream()` aufrufen, um ein InputStream-ähnliches Objekt zu erhalten, das die Rohdaten des Objekts lesen kann, ohne alles auf einmal in den Arbeitsspeicher zu ziehen. Die nächsten paar Zeilen beschreiben, was man für die Erstellung eines neuen Branchs benötigt. Wir generieren eine RefUpdate-Instanz, konfigurieren einige Parameter und rufen `.update()` auf, um die Änderung anzustoßen. Direkt danach folgt der Code zum Löschen desselben Branches. -Beachten Sie, dass `.setForceUpdate(true)` erforderlich ist, damit das funktioniert. Ansonsten gibt der Aufruf von `.delete()` den Wert `REJECTED` zurück, und es passiert nichts. +Beachte, dass `.setForceUpdate(true)` erforderlich ist, damit das funktioniert. Ansonsten gibt der Aufruf von `.delete()` den Wert `REJECTED` zurück, und es passiert nichts. Die letzten Beispielzeilen zeigen, wie der Wert `user.name` aus den Git-Konfigurationsdateien abgerufen werden kann. Diese Config-Instanz verwendet das Repository, das wir zuvor für die lokale Konfiguration geöffnet haben, erkennt auch die Dateien der Global- und System-Konfiguration. Sie übernimmt automatisch die Werte aus diesen Dateien. -Das ist nur ein kleiner Ausschnitt der vollständigen API für die Sanitärtechnik. Es sind noch viele weitere Methoden und Klassen verfügbar. +Das ist nur ein kleiner Ausschnitt der vollständigen API für die Basisbefehle. Es sind noch viele weitere Methoden und Klassen verfügbar. Auch die Art und Weise, wie JGit Fehler behandelt, wird hier nicht aufgezeigt. Das geschieht nämlich über die Verwendung von Exceptions. JGit-APIs werfen manchmal Standard-Java-Exceptions aus (wie `IOException`), aber es gibt eine Vielzahl von JGit-spezifischen Exception-Typen, die ebenfalls zur Verfügung stehen (wie z.B. `NoRemoteRepositoryException`, `CorruptObjectException` und `NoMergeBaseException`). @@ -144,7 +144,7 @@ for (Ref ref : remoteRefs) { } ---- -Das ist ein typisches Muster mit der Git-Klasse. Die Methoden geben ein Befehlsobjekt zurück, mit dem Sie Methodenaufrufe verketten können, um Parameter zu setzen, die beim Aufruf von `.call()` ausgeführt werden. +Das ist ein typisches Muster mit der Git-Klasse. Die Methoden geben ein Befehlsobjekt zurück, mit dem du Methodenaufrufe verketten kannst, um Parameter zu setzen, die beim Aufruf von `.call()` ausgeführt werden. Hier befragen wir den `origin` Remote nach Tags, nicht nach Heads. Beachten Sie auch die Verwendung des Objekts `CredentialsProvider` zur Authentifizierung. @@ -153,8 +153,8 @@ Viele andere Befehle sind über die Git-Klasse verfügbar, einschließlich, aber ==== Weiterführende Informationen Das ist lediglich ein kleiner Ausschnitt der umfassenden Funktionalität von JGit. -Wenn Sie Interesse haben und mehr erfahren möchten, finden Sie hier Informationen und Anregungen: +Wenn du Interesse hast und mehr erfahren möchtest, findest du hier Informationen und Anregungen: * Die offizielle JGit-API-Dokumentation ist unter https://www.eclipse.org/jgit/documentation[^] zu finden: - Es handelt sich dabei um Standard-Javadoc, so dass Ihre bevorzugte JVM-IDE in der Lage sein wird, diese auch lokal zu installieren. + Es handelt sich dabei um Standard-Javadoc, so dass deine bevorzugte JVM-IDE in der Lage sein wird, diese auch lokal zu installieren. * Das JGit Cookbook bei https://github.com/centic9/jgit-cookbook[^] enthält viele Beispiele, wie bestimmte Aufgaben mit JGit erledigt werden können. diff --git a/book/B-embedding-git/sections/libgit2.asc b/book/B-embedding-git/sections/libgit2.asc index 738e6f35..599c0a55 100644 --- a/book/B-embedding-git/sections/libgit2.asc +++ b/book/B-embedding-git/sections/libgit2.asc @@ -1,12 +1,12 @@ === Libgit2 (((libgit2)))((("C"))) -Eine weitere Möglichkeit, die Ihnen zur Verfügung steht, ist die Verwendung von Libgit2. +Eine weitere Möglichkeit, die dir zur Verfügung steht, ist die Verwendung von Libgit2. Mit Libgit2 ist eine von Abhängigkeiten freie Implementierung von Git, wobei der Schwerpunkt auf einer ansprechenden API zur Integration in andere Anwendungen liegt. -Sie finden das Programm unter https://libgit2.org[^]. +Du findest das Programm unter https://libgit2.org[^]. -Lassen Sie uns zunächst einen Blick auf die C-API werfen. -Hier ist eine schnelle Tour: +Lass uns zunächst einen Blick auf die C-API werfen. +Hier ist eine kurzer Überblick: [source,c] ---- @@ -37,22 +37,22 @@ Es gibt auch `git_repository_open_ext`, das Optionen für die Suche enthält, `g Der zweite Teil des Codes verwendet die `rev-parse` Syntax (siehe auch <>), um den Commit zu erhalten, auf den HEAD letztlich zeigt. Der zurückgegebene Typ ist ein `git_object` Pointer, der ein Objekt repräsentiert, das in der Git-Objekt-Datenbank für ein Repository steht. -Bei `git_object` handelt es sich eigentlich um einen „Parent“-Typ für mehrere verschiedene Arten von Objekten. Das Speicher-Layout für jeden der „Child“-Typen ist das Gleiche wie bei `git_object`, so dass Sie sicher auf den richtigen Typ verweisen können. -In diesem Fall würde `git_object_type(commit)` ein `GIT_OBJ_COMMIT` zurückgeben, so dass es sicher auf einen `git_commit` Pointer zu zeigt. +Bei `git_object` handelt es sich eigentlich um einen „Parent“-Typ für mehrere verschiedene Arten von Objekten. Das Speicher-Layout für jeden der „Child“-Typen ist das Gleiche wie bei `git_object`, so dass du sicher auf den richtigen Typ verweisen kannst. +In diesem Fall würde `git_object_type(commit)` ein `GIT_OBJ_COMMIT` zurückgeben, so dass es sicher auf einen `git_commit` Pointer zeigt. Der nächste Abschnitt zeigt, wie auf die Eigenschaften des Commits zugegriffen werden kann. Die letzte Zeile, hier, verwendet einen `git_oid` Typ; das ist das Anzeige-Format von Libgit2 für einen SHA-1-Hash. -From this sample, a couple of patterns have started to emerge: +Aus diesem Beispiel, wurden einige Pattern erstellt: -* Wenn Sie einen Pointer definieren und ihm eine Referenz in einem Libgit2-Aufruf übergeben, wird dieser Aufruf wahrscheinlich einen ganzzahligen Fehlercode zurückgeben. +* Wenn du einen Pointer definieren und ihm eine Referenz in einem Libgit2-Aufruf übergibst, wird dieser Aufruf wahrscheinlich einen ganzzahligen Fehlercode zurückgeben. Ein Wert von `0` zeigt den Erfolg an; alles andere signalisiert einen Fehler. -* Auch wenn Libgit2 einen Zeiger für Sie erstellt, Sie sind dafür verantwortlich, ihn freizugeben. -* Wenn Libgit2 einen `const` Pointer aus einem Aufruf zurückgegeben hat, müssen Sie ihn nicht freigeben, aber er wird ungültig, wenn das Objekt, zu dem er gehört, freigegeben wird. +* Auch wenn Libgit2 einen Zeiger für dich erstellt, du bist dafür verantwortlich, ihn freizugeben. +* Wenn Libgit2 einen `const` Pointer aus einem Aufruf zurückgegeben hat, musst du ihn nicht freigeben, aber er wird ungültig, wenn das Objekt, zu dem er gehört, freigegeben wird. * Das Schreiben in *C* kann ein bisschen mühselig sein. (((Ruby))) -Das letzte Argument bedeutet, dass es nicht sehr wahrscheinlich ist, dass Sie einen C-Code schreiben werden, wenn Sie Libgit2 verwenden. +Das letzte Argument kann bedeuten, dass du eventuell keinen C-Code schreiben wirst, wenn du Libgit2 verwendest. Glücklicherweise gibt es eine Reihe von sprachspezifischen Anbindungen, die es ziemlich einfach machen, mit Git-Repositorys in Ihrer spezifischen Programmier-Sprache und -Umgebung zu arbeiten. Schauen wir uns das obige Beispiel an, das mit den Ruby-Anbindungen für Libgit2 geschrieben wurde, die Rugged genannt werden und unter https://github.com/libgit2/rugged[^] zu finden sind. @@ -65,7 +65,7 @@ puts "#{commit.author[:name]} <#{commit.author[:email]}>" tree = commit.tree ---- -Wie Sie sehen können, ist der Code viel weniger verwirrend. +Wie du siehst, ist der Code viel weniger verwirrend. Erstens verwendet Rugged Ausnahmeregeln; es kann Dinge wie `ConfigError` oder `ObjectError` aktivieren, um so Fehlerzustände zu signalisieren. Zweitens gibt es keine explizite Freigabe von Ressourcen, da in Ruby eine automatische Speicherbereinigung aktiv ist. Schauen wir uns ein etwas komplexeres Beispiel an: einen Commit von Grund auf neu zu erstellen @@ -96,22 +96,22 @@ commit = repo.lookup(commit_id) # <8> ---- <1> Einen neuen Blob erstellen, der den Inhalt einer neuen Datei enthält. -<2> Ergänzen Sie den Index mit dem ersten Wert des Commit-Baums und fügen Sie die Datei im Pfad `newfile.txt` hinzu. +<2> Ergänze den Index mit dem ersten Wert des Commit-Baums und füge die Datei im Pfad `newfile.txt` hinzu. <3> Damit wird ein neuer Baum in der Objektdatenbank (ODB) erstellt und für den neuen Commit verwendet. <4> Wir verwenden die gleiche Signatur für das Autoren- und das Committer-Feld. <5> Die Commit-Beschreibung. -<6> Wenn Sie einen Commit erstellen, müssen Sie die Elternteile des neuen Commits angeben. +<6> Wenn du einen Commit erstellst, musst du die Elternteile des neuen Commits angeben. Dazu wird das Ende von HEAD für den einzelnen Elternteil verwendet. <7> Rugged (und Libgit2) können optional eine Referenz aktualisieren, wenn sie einen Commit erstellen. -<8> Der Rückgabewert entspricht dem SHA-1-Hash eines neuen Commit-Objekts, mit dem Sie dann ein `Commit` Objekt erzeugen können. +<8> Der Rückgabewert entspricht dem SHA-1-Hash eines neuen Commit-Objekts, mit dem du dann ein `Commit` Objekt erzeugen kannst. Der Ruby-Code ist zwar ganz nett und klar und da Libgit2 die Ausführung übernimmt, wird dieser Code auch relativ schnell laufen. -Falls Sie kein Ruby-Anhänger sind, dann zeigen wir Alternativen in <<_libgit2_bindings>>. +Falls du kein Ruby-Anhänger bist, dann zeigen wir Alternativen in <<_libgit2_bindings>>. ==== Erweiterte Funktionalität Libgit2 verfügt über einige Funktionen, die nicht zum eigentlichen Umfang von Git gehören. -Ein Beispiel ist die Erweiterbarkeit: Libgit2 erlaubt es Ihnen, benutzerdefinierte „Backends“ für unterschiedliche Betriebsarten anzubieten, so dass Sie Dinge auf eine andere Art speichern können, als es mit Git möglich ist. +Ein Beispiel ist die Erweiterbarkeit: Libgit2 erlaubt es dir, benutzerdefinierte „Backends“ für unterschiedliche Betriebsarten anzubieten, so dass du Dinge auf eine andere Art speichern kannst, als es mit Git möglich ist. Libgit2 erlaubt benutzerdefinierte Backends unter anderem zum Konfigurieren, die Ref-Speicherung und für die Objektdatenbank. Schauen wir uns an, wie das genau funktioniert. @@ -133,7 +133,7 @@ error = git_repository_open(&repo, "some-path"); error = git_repository_set_odb(repo, odb); // <4> ---- -_Beachten Sie, dass Fehler zwar erfasst, aber nicht bearbeitet werden. Wir hoffen, dass Ihr Code besser als unserer ist._ +_Beachte, dass Fehler zwar erfasst, aber nicht bearbeitet werden. Wir hoffen, dass dein Code besser als unserer ist._ <1> Erzeugen einer leeren Objektdatenbank (ODB) „Frontend“, die als eine Art Container für die „Backends“ dient, mit denen die eigentliche Arbeit erledigt wird. <2> Ein benutzerdefiniertes ODB-Backend einrichten. @@ -141,7 +141,7 @@ _Beachten Sie, dass Fehler zwar erfasst, aber nicht bearbeitet werden. Wir hoffe <4> Ein Repository öffnen und so einrichten, dass es unsere ODB zum Suchen von Objekten verwendet. Aber was ist das für ein `git_odb_backend_mine`? -Nun, das ist der Konstruktor für Ihre eigene ODB-Implementation. Sie können dort machen, was immer Sie wollen, solange Sie die `git_odb_backend` Struktur richtig eingeben. +Nun, das ist der Konstruktor für Ihre eigene ODB-Implementation. Du kannst dort machen, was immer du willst, solange du die `git_odb_backend` Struktur richtig eingibst. Hier sieht man, wie es ausschauen _könnte_: [source,c] @@ -173,23 +173,23 @@ int git_odb_backend_mine(git_odb_backend **backend_out, /*…*/) ---- Die wichtigste Bedingung dabei ist, dass das erste Element von ``my_backend_struct`` eine ``git_odb_backend`` Struktur sein muss. Dadurch wird sichergestellt, dass das Speicherlayout dem entspricht, was der Libgit2-Code erwartet. -Der restliche Teil ist beliebig. Diese Struktur kann so groß oder klein sein, wie Sie es brauchen. +Der restliche Teil ist beliebig. Diese Struktur kann so groß oder klein sein, wie du es brauchst. Die Initialisierungsfunktion weist der Struktur Speicherplatz zu, richtet den benutzerdefinierten Kontext ein und fügt dann die Mitglieder der von ihr unterstützten `parent` Struktur ein. -Schauen Sie sich die Datei `include/git2/sys/odb_backend.h` im Libgit2-Quelltext an, um einen vollständigen Satz von Aufrufsignaturen zu erhalten. Ihr spezieller Anwendungszweck wird Ihnen helfen, zu bestimmen, welche dieser Signaturen Sie dann benötigen. +Schaue dir die Datei `include/git2/sys/odb_backend.h` im Libgit2-Quelltext an, um einen vollständigen Satz von Aufrufsignaturen zu erhalten. Dein spezieller Anwendungszweck wird dir helfen, zu bestimmen, welche dieser Signaturen du dann benötigst. [[_libgit2_bindings]] ==== Andere Anbindungen Libgit2 hat Anbindungen für viele Programmier-Sprachen. -Hier zeigen wir eine kleine Auswahl der wichtigsten Pakete, die zum Zeitpunkt der Erstellung dieses Textes verfügbar waren. Es gibt Bibliotheken für viele andere Sprachen, darunter C++, Go, Node.js, Erlang und die JVM, die alle in unterschiedlich weit entwickelt sind. +Hier zeigen wir eine kleine Auswahl der wichtigsten Pakete, die zum Zeitpunkt der Erstellung dieses Textes verfügbar waren. Es gibt Bibliotheken für viele andere Sprachen, darunter C++, Go, Node.js, Erlang und die JVM, die alle unterschiedlich weit entwickelt sind. Die offizielle Kollektion von Anbindungen kann in den Repositorys unter https://github.com/libgit2[^] gefunden werden. Der Code, den wir schreiben werden, wird die Commit-Nachricht des Commits zurückliefern, auf den HEAD letztlich zeigt (etwa so wie `git log -1`). ===== LibGit2Sharp (((.NET)))(((C#)))(((Mono))) -Wenn Sie eine .NET- oder Mono-Anwendung schreiben, ist LibGit2Sharp (https://github.com/libgit2/libgit2sharp[^]) das Richtige für Sie. +Wenn du eine .NET- oder Mono-Anwendung schreibst, ist LibGit2Sharp (https://github.com/libgit2/libgit2sharp[^]) das Richtige für dich. Die Anbindungen sind in C# geschrieben und es wurde große Sorgfalt darauf verwendet die unverarbeiteten Libgit2-Aufrufe in CLR-APIs mit der ursprünglichen Funktionalität zu verpacken. So sieht unser Beispielprogramm aus: @@ -198,12 +198,12 @@ So sieht unser Beispielprogramm aus: new Repository(@"C:\path\to\repo").Head.Tip.Message; ---- -Für Windows-Desktop-Anwendungen gibt es außerdem ein NuGet-Paket, das Ihnen einen schnellen Einstieg ermöglicht. +Für Windows-Desktop-Anwendungen gibt es außerdem ein NuGet-Paket, das dir einen schnellen Einstieg ermöglicht. ===== objective-git (((Apple)))(((Objective-C)))(((Cocoa))) -Wenn Ihre Anwendung auf einer Apple-Plattform läuft, verwenden Sie wahrscheinlich Objective-C als Programmiersprache. +Wenn deine Anwendung auf einer Apple-Plattform läuft, verwendest du wahrscheinlich Objective-C als Programmiersprache. Objective-Git (https://github.com/libgit2/objective-git[^]) ist der Name der Libgit2-Anbindungen für diese Umgebung. Das Beispielprogramm sieht wie folgt aus: @@ -214,7 +214,7 @@ GTRepository *repo = NSString *msg = [[[repo headReferenceWithError:NULL] resolvedTarget] message]; ---- -Objective-git ist vollständig kompatibel mit Swift. Sie brauchen also keine Angst zu haben, wenn Sie Objective-C aufgegeben haben. +Objective-git ist vollständig kompatibel mit Swift. du brauchst also keine Angst zu haben, wenn du Objective-C aufgegeben hast. ===== pygit2 @@ -233,5 +233,5 @@ pygit2.Repository("/path/to/repo") # open repository ==== Weiterführende Informationen Eine vollständige Beschreibung der Funktionen von Libgit2 liegt natürlich nicht im Rahmen dieses Buches. -Wenn Sie weitere Informationen über Libgit2 selbst wünschen, finden Sie eine API-Dokumentation unter https://libgit2.github.com/libgit2[^] und eine Reihe von Anleitungen unter https://libgit2.github.com/docs[^]. -Für die anderen Anbindungen schauen Sie sich das enthaltene README und die Tests an. Häufig gibt es auch kleine Tutorials und Hinweise zum Weiterlesen. +Wenn du weitere Informationen über Libgit2 selbst wünschst, findest du eine API-Dokumentation unter https://libgit2.github.com/libgit2[^] und eine Reihe von Anleitungen unter https://libgit2.github.com/docs[^]. +Für die anderen Anbindungen schaue dir das enthaltene README und die Tests an. Häufig gibt es auch kleine Tutorials und Hinweise zum Weiterlesen.