Commits

Johnny Graber committed 8733f4a

de: translated more advanced tips

Comments (0)

Files changed (4)

advanced/2009-10-01-configuring-user-auth-https.html

 {% extends "_tip.html" %}
 {%hyde
-    title: Configuring User Auth for HTTPS
+    title: Konfigurieren der Benutzerauthentifizierung für HTTPS
     author_name: Zachary Voase
     author_link: http://zacharyvoase.com/
     created: 2009-10-01
 
 
 {% block excerpt %}
-Configure Mercurial to not prompt for your password every time you push/pull
-via HTTPS.
+Konfigurieren Sie Mercurial so dass sie nicht mehr nach ihrem Passwort für
+die Befehle push und pull über HTTPS gefragt werden.
 {% endblock %}
 
 
 {% block tip %}
 
-If you use HTTPS as your chosen method of pushing/pulling to a repo, you'll
-find that every time you do so, Mercurial will ask for your credentials.
-Fortunately, a simple piece of configuration in your `~/.hgrc` file can fix
-this.
+Wenn Sie HTTPS als Methode für das publizieren und abholen von Änderungen in
+ihrem Repository nutzen, werden Sie von Mercurial immer nach ihrem 
+Benutzernamen und Passwort gefragt. Glücklicherweise können Sie mit einer 
+einfachen Einstellung in ihrer `~/.hgrc` Datei dies beheben.
 
-**Note**: This is a new feature that was introduced in Mercurial 1.3. If you
-have an older version you'll need to update to use this tip!
+**Hinweis**: Dies ist eine neue Funktionalität die mit Mercurial 1.3 eingeführt
+wurde. Wenn Sie eine ältere Version haben müssen sie erst Mercurial 
+aktualisieren.
 
-**Note**: This tip involves putting your username and password in plain text
-in your `~/.hgrc`. It's usually a lot more secure to either:
+**Hinweis**: Dieser Tipp wird ihren Benutzernamen und Passwort als Klartext in
+der Datei `~/.hgrc` hinterlegen. Es ist im allgemeinen deutlich sicherer 
+entweder
 
-* Use SSH and `ssh-agent` (see [this article][gg-ssh]), or
-* Enter your password every time.
+* SSH und `ssh-agent` zu nutzen (siehe  [diesen Artikel][gg-ssh]), oder
+* das Passwort jedes Mal einzugeben.
 
-If you are not **100%** sure that you are the only one with access to your
-`~/.hgrc` file, then stop now.
+Wenn Sie nicht **100%** davon überzeugt sind, dass nur sie zugriff auf ihre
+`~/.hgrc` Datei haben, sollten Sie hier aufhören.
 
-The `[auth]` section in your `~/.hgrc` file contains credentials for HTTP
-authentication. Each set of credentials can be given an arbitrary name; for
-the purposes of this tip we'll assume you're using BitBucket to host your
-repository, so this set of credentials will be called `bb`.
+Der Abschnitt `[auth]` in ihrer `~/.hgrc` Datei beinhaltet die Kombination von
+Benutzernamen und Passwort für die Authentifizierung. Jeder solcher Kombination
+kann ein beliebiger Name gegeben werden. Für die folgenden Beispiele nehmen wir
+an, dass Sie BitBucket für das Hosting ihrer Repositories verwenden. Die 
+Kombination nennen wir daher `bb`.
 
-[Add the following to your `~/.hgrc`]({{ links.tip_edit_hgrc }}):
+[Fügen Sie die folgenden Zeilen in ihre `~/.hgrc` 
+Datei]({{ links.tip_edit_hgrc }}):
+
 
     [auth]
     bb.prefix = https://bitbucket.org
-    bb.username = {username}
-    bb.password = {password}
+    bb.username = {Benutzername}
+    bb.password = {Passwort}
 
-Replacing `{username}` and `{password}` with your BitBucket credentials.
+Ersetzen Sie `{Benutzername}` und `{Passwort}` mit den entsprechenden Angaben 
+ihres Zugangs bei BitBucket.
 
-You can also specify multiple sets of credentials with different prefixes. For
-example, if you have two BitBucket accounts:
+Sie können auch mehrere Kombinationen von Zugangsdaten mit verschiedenen 
+Präfixen ablegen. Ein Beispiel mit 2 Accounts bei BitBucket:
 
     [auth]
     bb1.prefix = https://bitbucket.org/foo/
     bb2.username = bar
     bb2.password = bar_passwd
 
-Pushing to any repo whose URI starts with `https://bitbucket.org/foo/` will
-use the 'foo' account, and likewise for 'bar'. In this case, however, you can
-take advantage of the fact that Mercurial will always choose the set of
-credentials with the most specific matching prefix. Therefore, if you have:
+Wenn Sie nun auf eine URI die mit `https://bitbucket.org/foo/` publizieren
+wird ihr 'foo' Account genommen. Dies funktioniert nach den gleichen Muster 
+für ihren 'bar' Account. In diesem Beispiel können Sie das Verhalten von 
+Mercurial ausnutzen, dass immer die Kombination wählen wird, die am genausten 
+dem Muster entspricht. Somit können Sie auch dies angeben:
 
     [auth]
     bb1.prefix = https://bitbucket.org/
     bb2.username = bar
     bb2.password = bar_passwd
 
-Then any non-`/bar/` repos will use the 'foo' account, because it is the only
-matching prefix. `/bar/` repos will use the 'bar' account, since both of them
-match but 'bar' is more specific.
+So wird überall wo Sie nicht explizit `/bar/` angeben der 'foo' Account 
+verwendet - da die URL nur auf den Account passt. Die Repositories unterhalb
+von `/bar/` werden den 'bar' Account nehmen, da beide passen wird derjenige 
+genommen, der spezifischer ist.
 
-Finally, you can tell Mercurial that a given prefix should match for *both*
-HTTP and HTTPS by stripping the scheme part from the prefix and adding a
-`schemes` section to the credentials:
+Zum Abschluss können Sie Mercurial auch mitteilen, dass die Daten bei *beiden*
+Protokollen HTTP und HTTPS verwendet werden soll. Dazu braucht es einen Eintrag
+für `schemes` im Abschnitt für die Authentifizierung:
 
     [auth]
     bb.prefix = bitbucket.org
     bb.password = foo_passwd
     bb.schemes = http https
 
-For detailed reference information, consult the
-[hgrc `auth` documentation][hgrc-auth-docs].
+Für weitere Informationen schauen Sie bitte die Dokumentation von 
+[hgrc `auth`][hgrc-auth-docs] an.
 
 [gg-ssh]: http://github.com/guides/how-to-not-have-to-type-your-password-for-every-push
 [hgrc-auth-docs]: http://www.selenic.com/mercurial/hgrc.5.html#auth

advanced/2009-11-17-combining-repositories.html

 {% extends "_tip.html" %}
 {%hyde
-    title: Combining Repositories
+    title: Repositories kombinieren
     author_name: Steve Losh
     author_link: http://stevelosh.com/
     created: 2009-11-17
 
 
 {% block excerpt %}
-What can you do when you realize: "Oh, maybe the documentation should be in
-the same repository as the code?"
+Was können Sie machen, wenn Sie bemerken: "Oh, vielleicht sollte die 
+Dokumentation im gleichen Repository sein wie der Code?"
 {% endblock %}
 
 
 {% block tip %}
 
-Thomas' last tip about [decomposing repositories][decomp] made me want to
-write about the inverse: combining two separate repositories into a single
-repository.
+Der letzte Tipp von Thomas [decomposing repositories][decomp] weckte bei mir 
+das Bedürfnis, das Gegenteil zu beschreiben: Die Kombination von zwei 
+unabhängigen Repositories in ein gemeinsames.
 
 [decomp]: /tips/advanced/2009-11-16-using-convert-to-decompose-your-repository/
 
-Let's say you've working on a project. The code lives in `project` while the
-documentation lives in `docs`. You might decide that it would be nice to have
-them in the same repository, so when someone clones your project's code they
-get the documentation too.
+Wir nehmen an Sie arbeiten an einem Projekt. Der Code liegt in `project`
+und die Dokumentation in `docs`. Sie stellen fest, dass es praktischer wäre
+die beiden Teile nur in einem Repository zu haben. So hätte jeder der ihren
+Code klont auch die dazugehörige Dokumentation.
 
-You *could* just create a new repository and copy all the data into it, but
-that wouldn't let you keep your nice history of changesets. Let's take a look
-at how to combine these separate repositories.
+Sie *könnten* einfach ein neues Repository erzeugen und alle Dateien hinein 
+kopieren. Dies würde aber den Verlust des Änderungsverlaufes bedeuten. Lassen
+Sie uns anschauen, wie wir die beiden unabhängigen Repositories zusammenführen
+können.
 
-Create the New, Combined Repository
+Erzeugen Sie das neue, kombinierte Repository
 -----------------------------------
 
-First we'll create the new repository where everything is going to live:
+Als erstes erzeugen wir das neue Repository, das alles beinhalten wird:
 
     $ ls
     total 24
     drwxr-xr-x  3 sjl   102B Nov 17 20:04 project
     drwxr-xr-x  4 sjl   136B Nov 17 19:58 project-code
 
-We've moved `project` to `project-code` to get it out of the way for the
-moment.
+Wir haben `project` in `project-code` umbenannt, damit das neue Projekt in
+`project` liegen kann.
 
-Prepare Each Repository
+Jedes Repository vorbereiten
 -----------------------
 
-We probably don't want to just dump everything into the root folder of the new
-repository, so let's move things around a bit. First we'll move everything in
-the `project` repository into a `src/` directory:
+Wir wollen wohl meistens nicht einfach alles zusammen in den Hauptordner 
+werfen. Lassen Sie uns daher erst ein wenig aufräumen. Zunächst verschieben wir 
+alles im ursprünglichen `project` Repository (jetzt `project-code`) in den 
+`src/` Ordner:
 
     $ cd project-code
     
     
     $ hg commit -m 'Move the code into the src/ directory.'
 
-Now we'll do the same for the `docs` repository:
+Nun machen wir das gleiche im `docs` Repository:
 
     $ cd ../docs
     
     
     $ hg commit -m 'Move the documentation into the docs/ directory.'
 
-Pull Both Repositories
+Beide Repositories verbinden
 ----------------------
 
-Now that we've adjusted the structure to our liking, we need to pull both
-repositories into `project`:
+Nun da beide Repositories aufgeräumt sind, können diese mit pull ins neue 
+`project` Repository übernommen werden:
 
     $ cd ..
     
     total 0
     drwxr-xr-x  3 sjl   102B Nov 17 20:15 src
 
-Notice that we used the `--force` flag with `hg pull` to say to Mercurial:
-"It's okay, I know what I'm doing, I really do want to combine these
-repositories."
+Wie Sie bemerken haben wir die Option `--force` genutzt. Diese sagt Mercurial
+das wir wirklich 2 unabhängige Repositories verbinden wollen.
 
-Merge the Repositories
+Mergen der Repositories
 ----------------------
 
-Take a look at the output of the last `ls` command. See how there's still just
-the `src/` directory? We need to merge the two repositories together to get a
-truly "combined" repository.
+Schauen Sie sich die Ausgabe des letzten `ls` Befehls an. Sie sehen das nur das
+`src/` Verzeichnis angezeigt wird. Wir müssen nun die beiden Repositories mergen
+um sie endgültig zu kombinieren.
 
-To make this a bit more clear, let's look at the graph of our new repository:
+Um dies ein wenig klarer zu machen, werfen wir einen Blick auf den Grafen des 
+neuen Repository:
 
     $ hg glog
     o  6 Move the documentation into the docs/ directory. (7 minutes ago by Steve Losh) tip
     |
     o  0 Start the project. (21 minutes ago by Steve Losh)
 
-See how we have two separate graphs? Changesets 0 to 3 are linked, and
-changesets 4 to 6 are linked. Now we need to merge these two graphs together.
-This should be trivial because we've organized the folder structure beforehand
-so there won't be any conflicts:
+Sehen Sie die beiden unabhängigen Grafen? ChangeSet 0 bis 3 sind verbunden 
+und ebenfalls 4 bis 6. Wir müssen nun die beiden Grafen zusammen mergen. Dies 
+sollte problemlos möglich sein, da wir die Verzeichnisstruktur vorgängig 
+aufgeräumt haben:
 
     $ hg update 6
     2 files updated, 0 files merged, 1 files removed, 0 files unresolved
     
     $ hg commit -m 'Combine the source and docs repositories.'
 
-Now take a look at the graph:
+Schauen wir uns nun wieder den Grafen an:
 
     $ hg glog
     @    7 Combine the source and docs repositories. (37 seconds ago by Steve Losh) tip
     drwxr-xr-x  4 sjl   136B Nov 17 20:22 docs
     drwxr-xr-x  3 sjl   102B Nov 17 20:22 src
 
-Our two separate repositories are now nicely merged into one, with the
-changesets intact! Now we can delete the old repositories and push the new one
-to our public server for people to use.
+Unsere beiden unabhängigen Repositories sind nun schön in einem samt ihrer ganzen 
+Änderungsgeschichte zusammengeführt. Wir können nun die alten Repositories löschen
+und unser neues auf den öffentlichen Server publizieren.
 
-This is especially nice because we haven't changed the changeset hashes, which
-means that we can easily merge changesets from people that are still using the
-old, separate repositories.
+Dieses Vorgehen ist besonders schön, da die Hashes der ChangeSets unverändert
+geblieben sind. Andere Personen die mit den alten Repositories arbeiten können
+so problemlos ihre Änderungen ins neue Repository mergen.
 
-{% endblock %}
+{% endblock %}

advanced/2009-11-30-merging-binary-files.html

 {% extends "_tip.html" %}
 {%hyde
-    title: Handling Binary Files in a Merge
+    title: Binäre Dateien mit Mercurial behandeln
     author_name: Ryan Wilcox
     author_link: http://www.wilcoxd.com/
     created: 2009-11-30
 
 
 {% block excerpt %}
-Mostly we deal with text, source code etc. But sometimes
-we put binary files into our repository and dealing with the inevitable merge
-conflict is not as easy as source code.
+Meistens behandeln wir Texte, Source Code oder sonstige Textdateien. Aber
+gelegentlich werden auch binäre Dateien in einem Repository abgelegt. 
+Unausweichlich wird irgendwann ein Merge durchgeführt werden müssen, der nicht
+so einfach ist wie für Source Code.
 {% endblock %}
 
 
 {% block tip %}
 
-Say you're building a website and you keep your images in the Mercurial
-repository for the site. Eventually two people are going to change that file
-at the same time and have a merge conflict.
+Als Beispiel dient uns eine Webseite, bei der wir die Bilder im Mercurial 
+Repository ablegen wollen. Irgendwann werden 2 Personen das gleiche Bild 
+gleichzeitig bearbeiten und stehen vor einem Merge-Konflikt.
 
-### Setting up Mercurial for Different Merge Tools
+### Ein anderes Merge Tool für Mercurial auswählen
 
-In your `~/.hgrc` file, you should add the following section:
+In ihrer `~/.hgrc` Datei sollten Sie die folgenden Zeilen einfügen:
 
     [merge-tools]
     diff_images.args = $output $other
     [merge-patterns]
     **.png = diff_images
 
-Now, create a `diff_images` shell script, set it to executable, and put it on
-your $PATH. Mine is:
+Nun erzeugen Sie das `diff_images` Shell Script, machen es ausführbar und fügen
+es zu ihrem $PATH hinzu. Meines sieht so aus:
 
     open -a GraphicConverter $1 $2 -W 
     # opens the first and second parameter with GraphicConverter, waiting
     # until same is quit before letting the shell continue.
 
-Now a merge that contains `.png` files that conflict will open up
-GraphicConverter. There will be two images that open up: one as it exists in
-the your source tree now, and one from Mercurial. You can tell the difference
-because the one from Mercurial will have a lot of random-seeming letters after
-the file extension. For example, if your conflicting file is `image.png`,
-GraphicConverter will open up two windows: `image.png` and
-`image.png~other.bQkQxd`.
+Bei jedem Merge-Konflikt wo eine Datei mit der Endung `.png` betroffen ist
+wird nun GraphicConverter gestartet. Es werden 2 Bilder geöffnet: eines ist 
+das derzeit in ihrem Arbeitsverzeichnis liegt und das von Mercurial. Sie können
+den Unterschied daran erkennen, da dasjenige von Mercurial als am Ende des 
+Namens eine zufällig aussehende Aneinanderreihung von Buchstaben hat. Als 
+Beispiel für einen Konflikt mit der Datei `image.png` wird GraphicConverter 
+zwei Fenster öffnen: `image.png` und `image.png~other.bQkQxd`.
 
-Manually move your changes from the new file into the original file
-(`image.png`), saving the original when done and quitting GraphicConverter.
-These are the changes that will be committed.
+Sie müssen nun von Hand die Änderungen von der neuen Datei ins Original 
+(`image.png`) übertragen. Speichern Sie die Datei und schliessen Sie 
+GraphicConverter. Dies sind die Änderungen die Sie commiten müssen.
 
-### How this Setup Works
+### Wie dies funktioniert
 
-First, `diff_images.args` sets up two parameters to pass into the graphics tool:
+Als erstes übergibt `diff_images.args` zwei Parameter ans Grafikprogramm:
 
-* `$output` is the file that Mercurial will commit, and contains the version
-  from the first parent.
-* `$other` is the version from revision you are merging in.
+* `$output` ist die Datei die Mercurial commiten wird und beinhaltet die 
+  Version der ersten Elternversion.
+* `$other` ist die Version des Repository in die Sie hinein mergen.
 
-There are other options that the `.args` parameter provides:
+Es gibt weitere Optionen die der `.args` Parameter bereitstellt:
 
-* `$local` is a copy of `$output`, but changes to this file will be ignored in
-  the merge.
-* `$base` is the file from the revision right before the contents of the file
-  diverged.
+* `$local` ist eine Kopie von `$output`, aber die Änderungen in dieser Datei 
+  werden beim merge ignoriert.
+* `$base` ist die Datei der Revision direkt bevor der Inhalt der Datei 
+  voneinander abweicht.
 
-You could use these to set up a three way merge, if you desired, or enhance
-`diff_images` to show the user the contents of the file *before* this merge
-mess happened.
+Sie können dies für einen "Tree Way Merge" benutzen. Wenn gewünscht können 
+Sie `diff_images` so abändern, dass es dem Benutzer den Inhalt der Datei 
+zeigt *bevor* der Merge-Konflikt auftritt.
 
-Next, the `[merge-patterns]` section associates what merge tool to use when a
-file name matches a particular pattern.
+Als nächstes schauen wir uns den Abschnitt `[merge-patterns]` an der sich um
+das Verknüpfen von Dateiendung und Merge-Tool kümmert.
 
-Without the merge-pattern section, `diff_images` would be considered for a
-diff candidate, but skipped over because Mercurial will assume that
-`diff_images` can't handle diffing binary files. Adding lines to
-`[merge-pattern]` will tell Mercurial that `diff_images` can handle the file
-types specified.
+Ohne den merge-pattern Abschnitt würde `diff_images` als Kandidat für Diffs
+gelten, von Mercurial allerdings wegen vermeintlich fehlender Möglichkeit für
+binäre Dateien ignoriert. Erst das Hinzufügen der entsprechenden Zeile zu
+`[merge-pattern]` macht Mercurial klar, das `diff_images` binäre Dateien mit
+der entsprechenden Dateiendung behandeln kann.
 
-Instead of putting in a merge-patterns section, you could add a line, like
-`diff_images.args`, that tells Mercurial that `diff_images` can handle binary
-documents: `diff_images.binary = True`
+Anstelle des merge-patterns Abschnittes können sie auch eine Zeile analog
+`diff_images.args` angeben, die Mercurial auf die Möglichkeit der Bearbeitung
+binäre Dateien hinweist: `diff_images.binary = True`
 
-However, this will make `diff_images` a candidate for *all* binary differences,
-which GraphicConverter may not be up to (for example, diffing mp3s would not
-be a good task for GraphicConverter).
+Allerdings führ dies dazu, das `diff_images` als Kandidat für *alle* binären 
+Dateien gilt. (GraphicConverter kann aber nur mit Bildern umgehen. Ein Vergleich
+für mp3 Dateien wäre daher nutzlos.)
 
-### When Things Go Terribly Wrong: Aborting the Merge
+### Wenn alles schief läuft: einen Merge abbrechen
 
-Merges can *not* be aborted via the standard `hg revert` mechanism. Try it and
-you'll get:
+Ein Merge kann *nicht* durch ein `hg revert` abgebrochen werden. Wenn Sie dies
+versuchen, werden Sie diese Fehlermeldung bekommen:
 
     $ hg revert --all
     abort: uncommitted merge - please provide a specific revision
 
-But you just want to blow away your merge work and start from scratch. Use `hg
-update --clean` for this.
+Um nur ihre Arbeit am Merge zu verwerfen, können Sie `hg update --clean` 
+verwenden.
 
-### References
+### Referenzen
 
-  * [Merge Tool Configuration on the Mercurial Wiki](http://mercurial.selenic.com/wiki/MergeToolConfiguration)
+  * [Konfigurieren eines Merge Tool im Mercurial Wiki](http://mercurial.selenic.com/wiki/MergeToolConfiguration)
   * [Issue 1533: "abort: outstanding uncommitted merges should mention update -C"](http://mercurial.selenic.com/bts/issue1533)
-  * [Binary Files in Mercurial explained, on the Mercurial Wiki](http://mercurial.selenic.com/wiki/BinaryFiles)
+  * [Binäre Dateien in Mercurial erklärt im Mercurial Wiki](http://mercurial.selenic.com/wiki/BinaryFiles)
 
 {% endblock %}

advanced/2010-02-11-merging-mq-patches-with-rebase.html

 {% extends "_tip.html" %}
 {%hyde
-    title: Merging MQ Patches with Rebase
+    title: Mergen von MQ Patches mit Rebase
     author_name: Steve Losh
     author_link: http://stevelosh.com/
     created: 2010-02-11
 
 
 {% block excerpt %}
-MQ patches don't usually merge well, but you can use the rebase extension to
-fix that!
+MQ Patches lassen sich oft nicht so einfach mergen. Aber Sie können die rebase
+Erweiterung nutzen um dies zu verbessern.
 {% endblock %}
 
 
 {% block tip %}
 
-**First of all:** I want to try something new with this tip. This is the first
-tip that includes a screencast. It's a complex topic and I think a screencast
-is the best way to talk about it. Please post a comment and let me know if you
-like it or if you think hgtip should stick to text-only tips!
+**Vorweg:** Ich will mit diesem Tipp etwas neues versuchen. Dies ist der erste
+Tipp der einen Screencast beinhaltet. Es ist ein komplexes Thema und ich denke
+ein Screencast ist der beste Weg dies zu behandeln. Bitte nuten Sie die 
+Kommentarfunktion um mir mitzuteilen, ob dies eine gute Idee ist oder ob hgtip
+sich nur auf Tipps in Textform beschränken soll.
 
-This tip is for those of you that are familiar and comfortable with using
-[MQ][] to handle patches. If you use MQ regularly you may have noticed some
-problems. One of the biggest problems appears when you have some patches and
-someone else commits something that changes the files you're working on.
+Dieser Tipp ist für alle die mit[MQ][] für das behandeln von Patches vertraut 
+sind. Wenn Sie MQ häufig nutzen werden Sie einige Probleme festgestellt haben.
+Eines der grössten Probleme tritt auf, wenn Sie einen Patch haben und jemand 
+anderes ändert die Datei die sie bearbeiten.
+
 
 [MQ]: http://mercurial.selenic.com/wiki/MqExtension
 
-The normal workflow is to pull their changes, `qpop` your patches, update to
-the new repository (or branch) tip, and `qpush` your patches. Unfortunately MQ
-doesn't keep track of the parents of patches, so it can't intelligently merge
-changes when you `qpush`.
+Der normale Ablauf ist das Sie mit pull die Änderungen übernehmen, mit `qpop` 
+ihre Patches rückgängig machen, auf die neue Spitze ihres Repository (oder 
+Branch) aktualisieren und mit `qpush` die Patches applizieren. Leider führt
+MQ keine Informationen über die Elternversionen von Patches. Dadurch kann kein
+intelligentes Merge für `qpush` durchgeführt werden.
 
-The way to get around this limitation is to use the [rebase extension][] to
-rebase your MQ patches while they're still applied. I'll demonstrate how to do
-this in the screencast below:
+Sie können diese Limitierung durch die Nutzung der [rebase Erweiterung][] 
+umgehen. Damit werden die MQ Patches auf eine andere Revision gezügelt bevor 
+sie angewendet werden. Ich demonstriere das Vorgehen im untenstehenden 
+Screencast:
 
 [rebase extension]: http://mercurial.selenic.com/wiki/RebaseExtension