Left Up Versionskontrollsysteme

Git

Merkmale

Aufgrund der Arbeit von Zeller/Passau: Hilfe beim Fehler suchen: git-bisect
Zusammenarbeit mit SVN - bidirektional git-svn

Verbreitung

Literatur

Pro Git Buch

Tips

Nachschieben von Änderungen

Szenario: Man hat etwas eingecheckt und man stellt fest, es compiliert nichteinmal.

Lösung: git commit -amend .
ändert bzw. ergänzt den letzen Eintrag - (amend: abändern,verbessern, berichtigen)

Interaktion mit svn

Es gibt ein git-svn Brücke:

 git svn clone svn://svn.mplayerhq.hu/mplayer/trunk MPlayer

Allerdings zieht diese die gesamte Historie aus svn. Die Option --parent ist für git clone nicht zugelassen, die würde nur den HEAD und den unmittelbaren Vorgänger holen.

Wunsch: Wenn man sich potientiell an der Entwicklung beteiligen will, ist eigentlich nur der aktuelle Stand notwendig, wie ihn der svn checkout liefern würde.
Wichtig sind dann das Nachziehen der remote-version svn update/git rebase sowie ggf. das Zusammenstellen und Einbringen von Änderungen.

Dies kann wie folgt erreicht werden: (tip von hier):
Ermittling der aktuellen Version:

svn log --stop-on-copy http://www.virtualbox.org/svn/vbox/trunk | head -n 10
Holen:
git svn clone -r45181 http://www.virtualbox.org/svn/vbox/trunk vbox

Zeitverfolgung

Distributed Time Tracker ist eine git-Erweiterung, die die Entwicklungszeit je commit misst.

Es ist ein shell-Script, das in git eingebaut wird.

Initialisierung: git timetrack --init
setzt hooks in einem Repository (für die Nutzung von timetrack erforderlich)
Start der Uhr: git timetrack --start
Unterbrechung: git timetrack --stop
Auswertung: git timetrack --summery

Sicherheit

Einbringen eines bösen Patches im Namen von anderen

How to inject a malicious commit to a Git repository (or not)

Sonstiges

libgit2 die Bibliothek, die git in verschiedenen Programmiersprachen verfügbar macht

Einbettung in Programmierumgebungen

Eclipse - EGit


Informatik- und Netzwerkverein Ravensburg e.V RW