====== 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