Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2006-11-29 18:24:39
Size: 2377
Editor: ThiloPfennig
Comment: translated QuickStart into german. Is this ok?
Revision 6 as of 2006-12-30 16:46:54
Size: 3738
Editor: ThiloPfennig
Comment: update translation in "Branching und Merging"
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
== Ein Mercurial-Projekt einrichten ==
== Einen Usernamen setzen ==
Voreingestellt nutzt Mercurial für Commits einen Usernamen der Form 'user@localhost'. Dieser ist of bedeutungslos. Es ist das beste eine richtige Email_Adress in `~/.hgrc` zu konfigurieren, in dem man folgende Zeilen hinzufügt:

{{{
[ui]
username = Author Name <email@address>
}}}


== An einem existierenden Mercurial-Projekt arbeiten ==

Wenn Du eine URL hast für ein browsbares Projekt-Repository (zB: http://selenic.com/hg), kannst Du eine Kopie so holen:

{{{
$ hg clone http://selenic.com/hg
}}}

Dies erzeugt ein neues Verzeichnis das hg (voreingestellt) heisst, holt eine komplette Projekt-Historie und checkt das "tipmost" Changeset aus.


== Ein neues Mercurial-Projekt einrichten ==
Du wirst damit anfangen wollen ein hg-Repository einzurichten:
Line 7: Line 29:
$ <create .hgignore file>
$ hg status # zeige alle nicht-ignorierten Dateien
$ hg add # füge diese 'unbekannten' Dateien hinzu
$ hg commit # committe alle Änderungen , editiere den Changelog-Eintrag
Line 13: Line 31:
Mercurial wird nach einer Datei names [".hignore"] sehen im root Deines Repositories, das eine Reiher von Regulären Ausdrücken beinhaltet, die in Dateipfaden ignoriert werden sollen. Mercurial wird nach einer Datei namens [".hignore"] im root-Verzeichnis Deines Repositories sehen, das eine Reihe von Regulären Ausdrücken beinhaltet, die in Dateipfaden ignoriert werden sollen:

{{{
syntax: glob
*.orig
*.rej
*~
*.o
tests/*.err

syntax: regexp
.*\#.*\#$
}}}


Teste Deine .hgignore Datei mit:

{{{
$ hg status # zeigt alle nicht-ignorierten Dateien
}}}

Dies wird alle Dateien listen, die die nicht ignotiert werden mit de 'U'-Flag (unberkannt). Bearbeite Edit Deine .hgignore Datei bis nur die Dateien. die Du verfolgen willst nach Status gelistet werden.
Du wist Deine .hgignore Datei auch verfolgen wollen! Aber Du wirst wahrscheinlich nicht Dateien verfolgen, die durch den Buld-Prozess erzeigt werden. Wenn Du zufrieden bist, setze Deine Dateien zum hinzufügen an und committe:

{{{
$ hg add # füge diese 'unbekannten' Dateien hinzu
$ hg commit # committe alle Änderungen, bearbeite Changelog-Eintrag
}}}
Line 19: Line 65:
$ hg clone linux linux-work # erzeuge einen neuen Branch (Zweig)
$ cd linux-work
$ hg clone projekt projekt-work # erzeuge einen neuen Branch (Zweig)
$ cd projekt-work
Line 23: Line 69:
$ cd ../linux
$ hg pull ../linux-work # hole die Changesets von linux-work
$ hg merge # merge den neuen tip (hinweis) von linux-work in
$ cd ../projekt
$ hg pull ../projekt-work # hole die Changesets von projekt-work
$ hg merge # merge den neuen tip (hinweis) von projekt-work in

this is a translated version of QuickStart. This is the german version.

Einen Usernamen setzen

Voreingestellt nutzt Mercurial für Commits einen Usernamen der Form 'user@localhost'. Dieser ist of bedeutungslos. Es ist das beste eine richtige Email_Adress in ~/.hgrc zu konfigurieren, in dem man folgende Zeilen hinzufügt:

[ui]
username = Author Name <email@address>

An einem existierenden Mercurial-Projekt arbeiten

Wenn Du eine URL hast für ein browsbares Projekt-Repository (zB: http://selenic.com/hg), kannst Du eine Kopie so holen:

$ hg clone http://selenic.com/hg

Dies erzeugt ein neues Verzeichnis das hg (voreingestellt) heisst, holt eine komplette Projekt-Historie und checkt das "tipmost" Changeset aus.

Ein neues Mercurial-Projekt einrichten

Du wirst damit anfangen wollen ein hg-Repository einzurichten:

$ cd projekt/
$ hg init           # erzeugt .hg

Mercurial wird nach einer Datei namens [".hignore"] im root-Verzeichnis Deines Repositories sehen, das eine Reihe von Regulären Ausdrücken beinhaltet, die in Dateipfaden ignoriert werden sollen:

syntax: glob
*.orig
*.rej
*~
*.o
tests/*.err

syntax: regexp
.*\#.*\#$

Teste Deine .hgignore Datei mit:

$ hg status         # zeigt alle nicht-ignorierten Dateien

Dies wird alle Dateien listen, die die nicht ignotiert werden mit de 'U'-Flag (unberkannt). Bearbeite Edit Deine .hgignore Datei bis nur die Dateien. die Du verfolgen willst nach Status gelistet werden. Du wist Deine .hgignore Datei auch verfolgen wollen! Aber Du wirst wahrscheinlich nicht Dateien verfolgen, die durch den Buld-Prozess erzeigt werden. Wenn Du zufrieden bist, setze Deine Dateien zum hinzufügen an und committe:

$ hg add            # füge diese 'unbekannten' Dateien hinzu
$ hg commit         # committe alle Änderungen, bearbeite Changelog-Eintrag

Branching und Merging

$ hg clone projekt projekt-work    # erzeuge einen neuen Branch (Zweig)
$ cd projekt-work
$ <mache Änderungen>
$ hg commit
$ cd ../projekt
$ hg pull ../projekt-work     # hole die Changesets von projekt-work
$ hg merge                  # merge den neuen tip (hinweis) von projekt-work in
                            # (alte Versionen benutzen stattdessen "hg update -m")
                            # das Arbeitsverzeichnis
$ hg commit                 # committe alle Ergebnisse des Merge

Patches importieren

Schnell:

$ patch < ../p/foo.patch
$ hg addremove            # Füge Dateien hinzu und lösche Dateien, 
                          # die von dem Patch hinzugefügt oder gelöscht wurden.
$ hg commit

Schneller:

$ patch < ../p/foo.patch
$ hg commit `lsdiff -p1 ../p/foo.patch`

Am schnellsten:

$ cat ../p/patchlist | xargs hg import -p1 -b ../p

Einen Patch exportieren

(mache Änderungen)
$ hg commit
$ hg tip
28237:747a537bd090880c29eae861df4d81b245aa0190
$ hg export 28237 > foo.patch    # exportiere Changeset 28237

Netzwerksupport

# hole vom primären Mercurial Repo
foo$ hg clone http://selenic.com/hg/
foo$ cd hg

# exportiere Dein aktuelles Repo via HTTP mit browsbarer Schnittstelle
foo$ hg serve -n "Mein repo" -p 80

# pushe Änderungen zu einem entfernten Repo mit SSH
foo$ hg push ssh://user@example.com/~/hg/

# merge Änderungen von einer Remotemaschine
bar$ hg pull http://foo/
bar$ hg merge # merge Änderungen in Dein Arbeitsverzeichnis

# Setze einen CGI-Server auf Deinem Webserver auf
foo$ cp hgwebdir.cgi ~/public_html/hg/index.cgi 
foo$ emacs ~/public_html/hg/index.cgi # adjust the defaults

QuickStartDe (last edited 2017-01-20 05:11:10 by timeless)