slitaz-doc-wiki-data view pages/de/cookbook/advancedhg.txt @ rev 8

Add pages/de folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:18:00 2011 +0000 (2011-02-26)
parents
children
line source
1 ====== Fortschrittliche Anwendungen von Mercurial ======
3 ==== Ein externes Werkzeug zum Zusammenfügen benützen (merge) ====
5 Bei der Benützung der in dieser Seite vorgestellten Werkzeuge, speziell MQ, ist ein Werkzeug, um das Zusammenfügen (wenn mehrere Änderungen sich überlappen, und das Ergebnis manuell definiert werden muss) besser zu handhaben voraussichtlich nützlich.
6 SliTaz schlägt Meld vor. Meld ist eine kleine Software, die dazu bestens geeignet ist. Nach dem Installieren weist man Mercurial an, davon Gebrauch bei Bedarf zu machen mit folgender zusätzlichen Anweisung in ~/.hgrc:
8 <code>
9 [ui]
10 merge = meld
11 </code>
13 ==== Nützliche Erweiterungen ====
15 Man kann eine Erweiterung über die Datei ~/.hgrc file ergänzen; die Syntax ist:
16 <code>
17 [extensions]
18 name = adress
19 </code>
20 Es gibt Erweiterungen, die mit Mercurial gepackt sind, dann ist die Angabe einer Adresse nicht notwendig.
22 Dies gilt für folgende vier Erweiterungen:
24 **color**
25 Farbe in Mercurial hinzufügen. Nützlich zur Sichtbarmachung von Unterschieden zwischen Dateiversionen.
27 **hgext.fetch**
28 Befehl hg fetsch, die Kombination von hg pull && hg merge && hg update , hinzufügen.
30 **hgext.graphlog**
31 Befehl glog hinzufügen, damit die Versionsverzweigung mit dem Log angezeigt wird. Empfohlen wird die Log-Länge mit der Option -l (beisp.: -l 10) kurz zu halten. Die -p Option zeigt das Detail der einzelnen Unterschiede.
33 **mq**
34 Dieses Instrument wird nachstehen weiter erklärt. Man kann mit ihm eine patch-Liste des Mercurial-Depots verwalten: mit Funktionen wie apply, unapply, update, usw. Diese Erweiterung besitzt verschiedene Befehle mit einem Namen, der meistens mit 'q' anfängt. Es gibt Webseiten, die sich darauf spezialisieren, dieses Instrument zu beschreiben, bei Bedarf nach: mercurial mq suchen!
36 ==== Grund Funktionen von MQ ====
37 Anlegen eines patchs-Depots mit Versionskontrolle in einem mercurial Depot; es handelt sich um ein innerhalb eines Depots angelegtes Depot, in welchem die Änderungen zum patchen mit Hilfe von Mercurial als solche verwaltet werden können:
38 <code>hg qinit -c</code>
40 Nach erfolgten Änderungen werden diese als patch gesondert aufgenommen:
41 <code>hg qnew nom_du_patch</code>
43 Auflistung un/angelegter patches:
44 <code>hg qseries -v</code>
46 Änderungen zum aktuellen, gerade bearbeiteten patch aufnehmen:
47 <code>hg qrefresh</code>
49 Anlegen des nächsten patches in der Reihe:
50 <code>hg qpush</code>
52 Anlegen aller patchen:
53 <code>hg qpush -a</code>
55 Entwerten des aktuellen patches:
56 <code>hg qpop</code>
58 Entwerten aller patchen:
59 <code>hg qpop -a</code>
61 Geh zur Position eines vorgegebenen patches in der Reihe:
62 <code>hg qgoto patch</code>
64 Eine Mitteilung mit dem aktuellen patch verbinden (vor seiner Übergabe):
65 <code>hg qrefresh -m "Message"</code>
67 patch als übergeben markieren:
68 <code>hg qfinish patch</code>
70 Ändereungen im Depot als übergeben bestätigen:
71 <code>hg qcommit -m "Message de commit"</code>
73 Hinweis: Patches werden in .hg/patches aufgenommen. Die Datei .hg/patches/series lässt sich manuell bearbeiten, um die Reihenfolge der patches zu beeinflussen; bitte nicht ausser Acht lassen, dass wenn verschiedene patches die gleiche Zieldatei haben, dies kann Probleme verursachen.
75 ==== MQ & Merge ====
77 **Grundidee**
79 Patches können leichter mit dem merge-Werkzeug von Mercurial benützt und aktualisiert werden als von Hand. Dazu braucht man zwei Merker in dem Depot. Eins davon kümmert sich um die im Depot angewandte patche an der Reihe; der andere um die neuen commits/update/usw.:
81 <code>
82 o Neue Depotversion
83 |
84 |
85 | o Patche
86 | |
87 | /
88 |
89 o Depot vor der patch-Anwendung
90 </code>
92 Die Reihe der pachte wird dann dem neuen Zweig hinzugefügt und MQ wird die patche mit der merge-Funktion aktualisieren. Sich erinnern, dass ein separates Werkzeug zur Verwaltung der problematischen Übergänge (wie das vorstehend vorgeschlagene ‘Meld’) absolut empfehlenswert ist.
94 Die patch-Reihe anlegen:
95 <code>
96 qpush -a
97 hg tags # Nr. der qparent Version merken bzw. notieren
98 qsave -e -c # Statut der patche merken, da es später von merge benötigt und benützt wird. (Nr. am Ende von patches.N merken/aufschreiben; ist im Allgemeinen die Nummer 1)
99 </code>
101 Die neue Reihe patche anlegen:
102 <code>
103 hg update -C <Nr. der Elternreihe> # sich auf die oben notierte Version beziehen.
105 # Dann, je nachdem, was zu tun ist:
106 # Aktualisieren:
107 hg pull -u
108 # Neue Änderungen übergeben, Änderungen durchführen, und dann:
109 hg commit -m "message"
110 # ein patch editieren:
111 hg qgoto patch # dann Änderung vornehmen und:
112 hg qrefresh</code>
114 merge anstossen:
115 <code>hg qpush -a -m</code>
117 Depot putzen:
118 <code>
119 hg qpop -a
120 hg qpop -a -n patches.N
121 rm -r .hg/patches.N
122 </code>
124 Änderungen im patch Depot aufnehmen:
125 <code>hg qcommit -m "Updated to match rev???"</code>
127 patch-Reihe wieder anlegen:
128 <code>hg qpush -a</code>