KunterBuntesSeminar-WS08/Versionierungssysteme
Das ist der zehnte Termin vom KunterBuntesSeminar-WS08
Abstract
Wir möchten euch Versionierungssysteme (VCS) vorstellen. VCSe sind ein praktisches Werkzeug, das man auch schon am Anfang des Studiums gut gebrauchen kann. Dieser Seminartermin erfordert keinerlei Vorkenntnisse und soll auch kein "mein VCS ist besser als deins"-Gerede sein. Vielmehr möchten wir verschiedene Ansätze vorstellen und euch erklären wie und wofür man Versionierungssysteme einsetzen kann. Es ist dann an euch, euer liebstes VCS zu finden. Notebooks sind nicht erforderlich, da dies kein Workshop ist.
Seminarvortrag
Bei dem Vortrag handelt es sich um eine Einfuehrung in Versionierungssysteme. Ziel ist es Neulingen die Benutzung von Versionierungssystemen zu veranschaulichen und ihnen die Entscheidung offen zu lassen welche Software sie dann selbst verwenden.
Wir haben in unserem Seminarvortrag verteilte Versionierungssysteme (dVCS) betrachtet, da wir die Vorteile dieser gegenueber den zentralen Versionierungssystemen schaetzen. Die Benutzung von dVCSen haben wir anhand von Mercurial erklaert, weil wir Mercurial besser beherschen als git, bzr und andere dVCSe.
Vortragende
5koehn, 4bewersd:
Wenn ihr nach dem Vortrag noch Fragen zum Thema habt und uns gerade im c.t. oder sonstwo in St. Ellingen seht koennt ihr sie uns gerne stellen.
Folien/Material
Die Vortragsfolien gibt es unter fbi:/home/j2005/5koehn/kbs/vcs/folien.pdf
Unter fbi:/home/j2005/5koehn/kbs/vcs gibt es die LaTeX-Quelldatei dazu. Sie liegt in einem Mercurial Repository und man kann damit (nach erforderlicher Konfiguration) wie folgt arbeiten:
$ hg clone ssh://fbi//home/j2005/5koehn/kbs/vcs kbs_versionierungssysteme # Repository "auschecken" $ cd kbs_versionierungssysteme # in das neu angelegte Verzeichnis mit der Arbeitskopie wechseln $ hg pull -u # Neue Änderungen holen && Änderungen auf die lokale Arbeitskopie anwenden $ emacs datei.tex # Datei ändern $ hg commit -m "hier beschreibe ich meine Änderungen" # Datei "einchecken" $ hg push # Änderungen in die Uni pushen und somit für alle sichtbar machen
hg ist die Programmdatei von Mercurial. Um die obigen Befehle auszufuehren muss Mercurial auf dem Rechner installiert sein. Man kann sich die Quelldatei aber auch aus dem Arbeitsverzeichnis kopieren:
$ mkdir kbs_versionierungssysteme # Verzeichnis erstellen $ cd kbs_versionierungssysteme # in das Verzeichnis wechseln $ scp -r fbi:/home/j2005/5koehn/kbs/vcs/* . # Dateien kopieren
Weiterführende Links
Diese Links sollen bei der weiteren Recherche als Einstiegspunkte helfen.
Allgemeines zu Versionierungssystemen
Hier sind allgemeine Informationen zu verteilten Versionierungssystemen zu finden.
- http://en.wikipedia.org/wiki/Version_control_system Wikipedia Eintrag
- http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ Verteilte Versionierungssysteme in Bildern
Versionierungssysteme
Diese Links verweisen auf verschiedene Ressourcen zu verteilten Versionierungssystemen. Sie erklaeren Installation und Benutzung.
- bzr:
- http://bazaar-vcs.org/ bzr
- http://en.wikipedia.org/wiki/Bazaar_(software) Wikipedia Eintrag
- darcs:
- http://wiki.darcs.net/ darcs Wiki
- http://en.wikibooks.org/wiki/Understanding_darcs Understanding darcs
- git:
- http://git.or.cz/ git
- http://www.kernel.org/pub/software/scm/git/docs/user-manual.html git User Manual
- http://cworth.org/hgbook-git/ Basiswissen zu git (Portierung aus dem Mercurial Buch)
- http://en.wikipedia.org/wiki/Git_(software) Wikipedia Eintrag
- http://de.youtube.com/watch?v=4XpnKHJAok8 Video: Linus Torvalds on git
- http://gitcasts.com/ Video: Screencasts zu git
- http://peepcode.com/products/git-internals-pdf Buch zu git
- http://whygitisbetterthanx.com/ Features von git
- hg:
- http://www.selenic.com/mercurial/wiki/index.cgi hg
- http://hgbook.red-bean.com/ hgbook
- http://en.wikipedia.org/wiki/Mercurial_(software) Wikipedia Eintrag
- http://intevation.de/~thomas/mercurial-lt2006/ Einfuehrung in hg
- http://grml.org/mercurial/ Wie die Linux-Distribution grml hg einsetzte
- http://grml.org/2008/10/01/ Warum die Linux-Distribution grml von hg zu git wechselte
- monotone:
- http://monotone.ca/ monotone
- http://en.wikipedia.org/wiki/Monotone_(software) Wikipedia Eintrag
- weitere:
- http://en.wikipedia.org/wiki/List_of_revision_control_software Liste bei Wikipedia
- http://linuxmafia.com/faq/Apps/vcs.html Den Wald vor lauter Baeumen nicht mehr sehen
Integration von VCSen
Versionierungssysteme lassen sich einfach in Entwicklungsumgebungen wie Eclipse und Emacs einbinden. Source Code Management Systeme wie Trac, Launchpad und github bieten die Moeglichkeit Software Projekte zu hosten und zu verwalten.
- Eclipse
- http://bazaar-vcs.org/BzrEclipse bzr Plugin
- http://www.eclipse-plugins.info/eclipse/plugin_details.jsp?id=1091 darcs Plugin
- http://git.or.cz/gitwiki/EclipsePlugin git Plugin
- http://www.vectrace.com/mercurialeclipse/ hg Plugin
- Emacs
- Basisfunktionalitäten auch für verteilte VCS in Emacs23 (next-stable) integriert (pull, push, commit)
- http://download.gna.org/dvc/ Erweiterung speziell für verteilte VCSe (bzr, git, hg, monotone, darcs, arch)
- Trac
- http://trac.edgewall.org/ Software Project Management System
- https://launchpad.net/trac-bzr bzr Plugin
- http://progetti.arstecnica.it/trac%2Bdarcs/wiki/DarcsPlugin darcs Plugin
- http://trac-hacks.org/wiki/GitPlugin git Plugin
- http://trac.edgewall.org/wiki/TracMercurial hg Plugin
- Launchpad
- https://launchpad.net/ Software Project Management System
- gitHub
- http://github.com/ Software Project Management System
Vergleiche von Versionierungssystemen
Im Seminarvortrag haben wir nicht unterschiedliche VCSe miteinander verglichen. Dazu gibt es vielerlei Ressourcen im Netz. Hier sind drei genannt. Meist arten solcherlei Vergleiche jedoch in Flamewars aus. Am besten man probiert die VCSe selbst aus und findet seine Lieblinge. Es gibt auch die Moeglichkeit VCSe zu konvertieren (repository conversion), wenn ein Projekt mit einem anderen VCS arbeitet als man selbst arbeiten moechte.
- http://www.infoq.com/articles/dvcs-guide Feature Vergleich von git, hg, bzr
- http://www.dribin.org/dave/blog/archives/2007/12/28/dvcs/ Vergleich von git, hg, bzr
- http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/ git vs. hg