You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: TRANSLATION_NOTES_DE.asc
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -122,6 +122,8 @@ Projektbetreuer
122
122
betreuen
123
123
|to merge|
124
124
mergen; er/sie mergt; wir mergen; Vorzugsweise die englische Version nutzen, alternativ kann auch die deutsche Übersetzung "zusammenführen oder verschmelzen" verwendet werden.
125
+
|packfile|
126
+
packfile; Vorzugsweise die englische Version nutzen, alternativ kann auch die deutsche Übersetzung "Paketdatei" verwendet werden.
Copy file name to clipboardExpand all lines: book/09-git-and-other-scms/sections/import-svn.asc
+21-8Lines changed: 21 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,10 +3,10 @@
3
3
(((Subversion)))
4
4
(((Importing, from Subversion)))
5
5
Wenn Sie den vorherigen Abschnitt über die Verwendung von `git svn` gelesen haben, können Sie die Anweisungen zu `git svn clone` leicht dazu benutzen, um ein Repository zu klonen. Beenden Sie dann die Verwendung des Subversion-Servers, pushen Sie zu einem neuen Git-Server und starten Sie dessen Nutzung.
6
-
Der Verlauf kann in diesem Fall schnellstens aus dem Subversion-Server gezogen werden (was einige Zeit in Anspruch nehmen kann).
6
+
Der Verlauf kann in diesem Fall aus dem Subversion-Server gezogen werden (was einige Zeit in Anspruch nehmen kann - abhängig von der Geschwindigkeit, mit der Ihr SVN-Server die Historie ausliefern kann).
7
7
8
8
Allerdings ist der Import nicht perfekt. Da er aber so lange dauert, können Sie ihn genauso gut auch richtig machen.
9
-
Das erste Problem ist die Autoreninformation.
9
+
Das erste Problem sind die Autoreninformationen.
10
10
In Subversion hat jede Person, die einen Commit durchführt, auch einen Benutzer-Account auf dem System, der in den Commit-Informationen erfasst wird.
11
11
Die Beispiele im vorherigen Abschnitt zeigen an einigen Stellen `schacon`, wie z.B. der `blame` Output und das `git svn log`.
12
12
Wenn Sie diese auf bessere Git-Autorendaten abbilden möchten, benötigen Sie eine Zuordnung der Subversion-Benutzer zu den Git-Autoren.
Das erzeugt die Protokollausgabe im XML-Format, behält nur die Zeilen mit Autoreninformationen, verwirft Duplikate und entfernt die XML-Tags.
30
-
(Natürlich funktioniert das nur auf einem Computer, auf dem `grep`, `sort` und `perl` installiert sind.)
30
+
Natürlich funktioniert das nur auf einem Computer, auf dem `grep`, `sort` und `perl` installiert sind.
31
31
Leiten Sie diese Ausgabe dann in Ihre `users.txt` Datei um, damit Sie die entsprechenden Git-Benutzerdaten neben jedem Eintrag hinzufügen können.
32
32
33
+
[NOTE]
34
+
====
35
+
Wenn Sie dies auf einem Windows-Computer versuchen, treten an dieser Stelle Probleme auf. Microsoft hat unter https://docs.microsoft.com/en-us/azure/devops/repos/git/perform-migration-from-svn-to-git einige gute Ratschläge und Beispiele bereitgestellt.
36
+
====
37
+
33
38
Sie können diese Datei an `git svn` übergeben, um die Autorendaten genauer abzubilden.
34
-
Außerdem können Sie `git svn` anweisen, die Metadaten, die Subversion normalerweise importiert, nicht zu berücksichtigen. Dazu übergeben Sie `--no-metadata` an den `clone` oder `init` Befehl. Wenn Sie die Metadaten der Synchronisation aber behalten möchten, lassen Sie diesen Parameter einfach weg.
39
+
Außerdem können Sie `git svn` anweisen, die Metadaten, die Subversion normalerweise importiert, nicht zu berücksichtigen. Dazu übergeben Sie `--no-metadata` an den `clone` oder `init` Befehl.
40
+
Die Metadaten enthalten eine `git-svn-id` in jeder Commit-Nachricht, die Git während des Imports generiert.
41
+
Dies kann Ihr Git-Log aufblähen und es möglicherweise etwas unübersichtlich machen.
42
+
43
+
[NOTE]
44
+
Sie müssen die Metadaten beibehalten, wenn Sie im Git-Repository vorgenommene Commits wieder in das ursprüngliche SVN-Repository spiegeln möchten.
45
+
46
+
Wenn Sie die Synchronisierung nicht in Ihrem Commit-Protokoll möchten, können Sie den Parameter `--no-metadata` weglassen.
47
+
35
48
Dadurch sieht Ihr `import` Befehl so aus:
36
49
37
50
[source,console]
@@ -56,7 +69,7 @@ Date: Sun May 3 00:12:22 2009 +0000
56
69
be05-5f7a86268029
57
70
----
58
71
59
-
sehen sie jetzt so aus:
72
+
sehen diese jetzt so aus:
60
73
61
74
[source]
62
75
----
@@ -80,7 +93,7 @@ Damit die Tags zu richtigen Git-Tags werden, starten Sie:
80
93
$ for t in $(git for-each-ref --format='%(refname:short)' refs/remotes/tags); do git tag ${t/tags\//} $t && git branch -D -r $t; done
81
94
----
82
95
83
-
Dabei werden die Referenzen, die Remote-Branches waren und mit `refs/remotes/tags/` begonnen haben, genommen und zu richtigen (leichten) Tags gemacht.
96
+
Dabei werden die Referenzen, die Remote-Branches waren und mit `refs/remotes/tags/` begonnen haben zu richtigen (leichten) Tags gemacht.
84
97
85
98
Als nächstes verschieben Sie den Rest der Referenzen unter `refs/remotes` in lokale Branches:
86
99
@@ -91,8 +104,8 @@ $ for b in $(git for-each-ref --format='%(refname:short)' refs/remotes); do git
91
104
92
105
Es kann vorkommen, dass Sie einige zusätzliche Branches sehen, die durch `@xxx` ergänzt sind (wobei xxx eine Zahl ist), während Sie in Subversion nur einen Branch sehen.
93
106
Es handelt sich hierbei um eine Subversion-Funktion mit der Bezeichnung „peg-revisions“, für die Git einfach kein syntaktisches Gegenstück hat.
94
-
Daher fügt `git svn` einfach die svn-Versionsnummer zum Branch-Namen hinzu, genau so, wie Sie es in svn geschrieben hätten, um die peg-Revision dieses Branchs anzusprechen.
95
-
Wenn Sie sich nicht mehr um die peg-Revisionen sorgen wollen, entfernen Sie sie einfach:
107
+
Daher fügt `git svn` einfach die SVN-Versionsnummer zum Branch-Namen hinzu, genau so, wie Sie es in SVN geschrieben hätten, um die peg-Revision dieses Branchs anzusprechen.
108
+
Wenn Sie sich nicht mehr um die peg-Revisionen sorgen wollen, entfernen Sie diese einfach:
Copy file name to clipboardExpand all lines: book/10-git-internals/sections/packfiles.asc
+34-34Lines changed: 34 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
=== Packfiles
1
+
=== Packdateien (engl. Packfiles)
2
2
3
-
If you followed all of the instructions in the example from the previous section, you should now have a test Git repository with 11 objects -- four blobs, three trees, three commits, and one tag:
3
+
Wenn Sie alle Anweisungen im Beispiel aus dem vorherigen Abschnitt befolgt haben, sollten Sie jetzt ein Test-Git-Repository mit 11 Objekten haben - vier Blobs, drei Bäumen, drei Commits und einem Tag:
The blob is now a different blob, which means that although you added only a single line to the end of a 400-line file, Git stored that new content as a completely new object:
76
+
Der Blob ist jetzt ein anderer Blob. Das bedeutet, dass Git, obwohl Sie nur eine einzelne Zeile am Ende einer Datei mit 400 Zeilen hinzugefügt haben, diesen neuen Inhalt als ein komplett neues Objekt gespeichert hat:
You have two nearly identical 22K objects on your disk (each compressed to approximately 7K).
85
-
Wouldn't it be nice if Git could store one of them in full but then the second object only as the delta between it and the first?
84
+
Sie haben jetzt zwei nahezu identische 22-KB-Objekte auf Ihrer Festplatte (jedes auf ca. 7 KB komprimiert).
85
+
Wäre es nicht schön, wenn Git eines davon vollständig speichern könnte, aber dann das zweite Objekt nur als Delta zwischen dem ersten und dem anderen?
86
86
87
-
It turns out that it can.
88
-
The initial format in which Git saves objects on disk is called a ``loose'' object format.
89
-
However, occasionally Git packs up several of these objects into a single binary file called a ``packfile'' in order to save space and be more efficient.
90
-
Git does this if you have too many loose objects around, if you run the`git gc`command manually, or if you push to a remote server.
91
-
To see what happens, you can manually ask Git to pack up the objects by calling the `git gc`command:
87
+
Wie sich herausstellen wird, geht das.
88
+
Das ursprüngliche Format, in dem Git Objekte auf der Festplatte speichert, wird als „loses“ Objektformat bezeichnet.
89
+
Allerdings packt Git gelegentlich mehrere dieser Objekte in eine einzige Binärdatei namens „packfile“, um Platz zu sparen und effizienter zu sein.
90
+
Git tut dies, wenn Sie zu viele lose Objekte haben, wenn Sie den Befehl`git gc`manuell ausführen oder wenn Sie einen Push an einen Remote-Server senden.
91
+
Um zu sehen, was passiert, können Sie Git manuell auffordern, die Objekte zu packen, indem Sie den Befehl `git gc`aufrufen:
If you look in your`objects` directory, you'll find that most of your objects are gone, and a new pair of files has appeared:
103
+
Wenn Sie in Ihr`objects`-Verzeichnis schauen, werden Sie feststellen, dass die meisten Ihrer Objekte verschwunden sind und ein paar neue Dateien auftauchen:
The objects that remain are the blobs that aren't pointed to by any commit -- in this case, the ``what is up, doc?'' example and the ``test content'' example blobs you created earlier.
116
-
Because you never added them to any commits, they're considered dangling and aren't packed up in your new packfile.
115
+
Die verbleibenden Objekte sind die Blobs, auf die von keinem Commit referenziert werden. In diesem Fall die Blobs „what is up, doc?“ Und „test content“, die Sie zuvor erstellt haben.
116
+
Da Sie sie nie zu Commits hinzugefügt haben, gelten sie als unreferenziert und sind nicht in Ihrem neuen Packfile gepackt.
117
117
118
-
The other files are your new packfile and an index.
119
-
The packfile is a single file containing the contents of all the objects that were removed from your filesystem.
120
-
The index is a file that contains offsets into that packfile so you can quickly seek to a specific object.
121
-
What is cool is that although the objects on disk before you ran the `gc`command were collectively about 15K in size, the new packfile is only 7K.
122
-
You've cut your disk usage by half by packing your objects.
118
+
Die anderen Dateien sind Ihr neues packfile und ein Index.
119
+
Das packfile ist eine einzelne Datei, die den Inhalt aller Objekte enthält, die aus Ihrem Dateisystem entfernt wurden.
120
+
Der Index ist eine Datei, die Offsets in diesem packfile enthält, sodass Sie schnell nach einem bestimmten Objekt suchen können.
121
+
Ein weiterer Vorteil ist, dass, obwohl die Objekte auf der Festplatte vor dem Ausführen des Befehls `gc`insgesamt etwa 15 KB groß waren, die neue Paketdatei nur 7 KB groß ist.
122
+
Sie haben die Festplattennutzung halbiert, indem Sie Ihre Objekte gepackt haben.
123
123
124
-
How does Git do this?
125
-
When Git packs objects, it looks for files that are named and sized similarly, and stores just the deltas from one version of the file to the next.
126
-
You can look into the packfile and see what Git did to save space.
127
-
The `git verify-pack`plumbing command allows you to see what was packed up:
124
+
Wie macht Git das?
125
+
Wenn Git Objekte packt, sucht es nach Dateien mit ähnlichen Namen und Größen und speichert nur die Deltas von einer Version der Datei zur nächsten.
126
+
Sie können im packfile schauen und sehen, was Git getan hat, um Platz zu sparen.
127
+
Mit dem Befehl `git verify-pack`können Sie sehen, was gepackt wurde:
128
128
129
129
[source,console]
130
130
----
@@ -155,9 +155,9 @@ chain length = 1: 3 objects
155
155
.git/objects/pack/pack-978e03944f5c581011e6998cd0e9e30000905586.pack: ok
156
156
----
157
157
158
-
Here, the `033b4` blob, which if you remember was the first version of your `repo.rb` file, is referencing the `b042a` blob, which was the second version of the file.
159
-
The third column in the output is the size of the object in the pack, so you can see that `b042a`takes up 22K of the file, but that `033b4`only takes up 9 bytes.
160
-
What is also interesting is that the second version of the file is the one that is stored intact, whereas the original version is stored as a delta -- this is because you're most likely to need faster access to the most recent version of the file.
158
+
Hier verweist der `033b4`-Blob, der, wenn Sie sich erinnern, die erste Version Ihrer `repo.rb`-Datei war, auf den `b042a`-Blob, der die zweite Version der Datei war.
159
+
Die dritte Spalte in der Ausgabe ist die Größe des Objekts im Paket. Sie können also sehen, dass `b042a`22 KB der Datei belegt, `033b4`jedoch nur 9 Byte.
160
+
Interessant ist auch, dass die zweite Version der Datei als Ganzes gespeichert wird, während die Originalversion als Delta gespeichert wird. Dies liegt daran, dass Sie mit größter Wahrscheinlichkeit einen schnelleren Zugriff auf die neueste Version der Datei benötigen.
161
161
162
-
The really nice thing about this is that it can be repacked at any time.
163
-
Git will occasionally repack your database automatically, always trying to save more space, but you can also manually repack at any time by running `git gc`by hand.
162
+
Das Schöne daran ist, dass es jederzeit umgepackt werden kann.
163
+
Git packt Ihre Datenbank gelegentlich automatisch neu und versucht dabei immer, mehr Speicherplatz zu sparen. Sie können das Packen jedoch auch jederzeit manuell durchführen, indem Sie `git gc`manuell ausführen.
0 commit comments