====== http Repo mit lighttpd ======
Anleitung in [[http://mercurial.selenic.com/wiki/HgWebDirStepByStep]]
- apt-get install lighttpd
- vi /etc/lighttpd/lighttpd.conf : enable mode_rewrite
- mkdir /home/hg
- cp hgwebdir.cgi /home/hg
- vi hgweb.config
====== Projekt in Repo aufnehmen ======
== Repo ist schon eingerichtet und konfiguriert ==
- su www-data
- 3n: cd /home/hg/repos
- hg init teamfunk
- vi teamfunk/.hg/hgrc
[web]
allow_push = *
push_ssl = false
allow_archive = gz zip bz2
- local: ggf vorhandenes teamfunk verzeichnis umbenennen: mv teamfunk teamfunkzz
- repo clonen: hg clone teamfunk
- arbeiten (ggf. vorhandene dateien kopieren: cp teamfunkzz/* teamfunk)
- loakles hg-repo pushen. s222: hg push http:/3n:8000/hg/teamfunk
== Mögliche Alternative ==
(bei diesem Verfahren hat das Arbeitsverzeichnis schon ein .hg):
- Archive auf lokalem Verzeichnis, commited
- auf localem Verzeichnis (s222): hg serve
- als www-data auf 3n:
cd /home/hg/repos;
hg clone -U http://s222:8000/ penta
- ggf. .hg/hgrc anpassen (cp von anderem repo-archive)
- lokales .hg/hgrc anpassen:
[paths]
default = http://3n:8000/hg/penta
====== Rep via ssh auf v1 ======
== Schon vorhandenes lokales Rep. auf v1 spiegeln ==
- Neues rep. anlegen: ** hg init ssh: / / hg@3nec.de/repname **
- ggf. in .hg/hgrc Pfad ändern; z.B
[paths]
default = ssh://hg@3nec.de/lager
- lokales Rep pushen: ** hg push **
====== Nutzung ======
- diffs grafisch anschauen: diffuse filename, meld filename
- nur den Status der in hg vorhandenen Files listen: hg stat -q
- update vom Archiv, lokale Änderungen werden überschrieben: hg update -C
- versehentlich im Wokringdir gelöschte Datei aus Repo wieder herstellen (wird bei hg stat als !filename angezeigt): hg revert filename
- im working-dir nicht vorhandene Dateien auch im repo löschen (dateien werden mit !name angezeigt und dann beimm nächsten commit gelöscht),\\ ersetzt: hg forget : **hg remove -A**
- Dateien verschieben, statt mv file.c new/filezz.c: **hg mv file.c new/filezz.c** (hg führt dann lokalen mv und rep-mv aus)
- Nach merge-Konflikt Datei aus Rep übernehmen: ** hg resolve - - tool internal:other file**
- Nach merge-Konflikt lokale Datei übernehmen: ** hg resolve - - tool internal:local file**
====== Konfiguration ======
===== Externes Programme =====
In hgrc:
[extensions]
hgext.extdiff=
[extdiff]
cmd.meld=
Dann kann meld als diff-viewer über:
hg meld file
aufgerufen werden
===== URL-Abkürzung =====
Systemweite URL-Abkürzung, auch für neue clones etc.\\
z.B. hg clone n:/ /naviglove \\
An Datei /etc/hgrc - anhängen/eintragen: \\
[extensions]
hgext.schemes=
[schemes]
n = http://3n:8000/hg/
statt n kann eine beliebige Zeichenfolge verwendet werden.\\
====== CVS konvertieren ======
- CVS auschecken: cd tmp; cvs co lpssrc
- hg convert lpssrc
- Es wird ein Verzeichnis lpssrc-hg angelegt
- ggf. zur Kontrolle: cd lpssrc;hg update oder hg log filename etc.
- auf s223 repo anlegen
- hg push