Versionskontrolle

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Sr4l hat geschrieben:dafür sieht man wie Visual SourceSafe abkackt ;-)
immer nur ein No oder Not directly ;-)
Naja eigentlich müsste SourceSafe ja Datei Versionsverwaltung für mutige Masochisten heissen ;)
Weil mit Safe hat das nichts zu tun :)
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

gerold hat geschrieben:
blackbird hat geschrieben:Kein nerviges Commit Rechte austauschen.
Das gibt es bei uns nicht. Jeder hat alle Rechte im Repository. Ändert jemand etwas, dann bekommen alle ein Email mit den Änderungen zugeschickt. Das ist genug Kontrolle für mich.
Ändert jemand etwas ohne meine Erlaubnis, dann wird die Änderung rückgängig gemacht und der Verursacher zusammengeschissen. ;-)
Abgesehen davon, dass man in SVN AFAIK gar keine ACLs definieren kann (man kann Beschränkungen nur unschön über pre-commit Hooks machen), geht um diese Situation: Jemand außerhalb deines Teams möchte an deinem Programm Änderungen machen, also seinen eigenen Branch haben und darin Versionskontrolle, ohne dass er Zugriffsrechte auf das Original-Repository hat oder braucht.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

birkenfeld hat geschrieben:Jemand außerhalb deines Teams möchte an deinem Programm Änderungen machen, also seinen eigenen Branch haben und darin Versionskontrolle, ohne dass er Zugriffsrechte auf das Original-Repository hat oder braucht.
Hallo birkenfeld!

Das http://svnbook.red-bean.com/nightly/en/ ... authz.html gibt's noch nicht lange.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Trotzdem heißt das, dass *du* jedes Mal Arbeit hast, wenn jemand in dem Repository arbeiten will.

Mit verteilten Systemen zieht sich jeder seinen Branch, ohne dass du dich darum kümmern musst, und ohne dass jemand dein Repository vollmüllt.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
lunar

Ich verwende git, und würde es ohne Zögern empfehlen. Es ist sehr schnell, einfach zu benutzen, es gibt ein paar schöne Programme zur Visualisierung der Entwicklungszweige in einem Repo, und es kennt viele Wege, über die man pushen und pullen kann. Dadurch kann man ein zentrales git-Repo nahezu überall aufsetzen (z.B. auch im Webspace von Sourceforge oder BerliOS Projekten, auf den man dann anonymen Zugriff per http und Entwicklerzugriff per ssh erhält).

Allerdings muss man wahrscheinlich auch sagen, dass zwischen Mercurial, bzr und git im täglichen Einsatz (vor allem bei kleinen Projekten mit kleinen Teams) nur sehr wenig Unterschied besteht.

Auf subversion (bzw. zentrale SCMs allgemein) würde ich nach Möglichkeit verzichten... imho zwingt subversion zu einem sehr zentralisierten und hierarchischem Entwicklungsprozess. Besonders wenn man keine vollständigen Rechte im Repo hat, oder nur untergeordneter Entwickler ist, dann kann man nicht so einfach eine neue Branch anlegen, um z.B. ein bisschen mit bestimmten Codeteilen zu experimentieren.

Bei git dagegen kann man ohne Probleme lokale branches anlegen, die erstmal kein anderer sieht. Diese braucht man auch nur bei bestehendem Interesse für andere offenzulegen. Man kann also "mal eben schnell" ein bisschen experimentieren, ohne gleich auf dem zentralen Server was zu ändern. Das erleichtert auch externen Entwicklern die Arbeit... sie können einfach eine Kopie des Repos holen, darin ihren Code schreiben, Patches erzeugen und diese per Mail an die Hauptentwickler schicken, welche sie dann in das zentrale Repo integrieren. Diese Änderungen reflektieren sich beim externen Entwickler durch ein erneutes Pull. Bei subversion dagegen muss man dagegen erstmal aus der lokalen Kopie ein lokales Repo erzeugen, um vernünftig zu entwickeln, wenn man keine Rechte auf dem Server hat.

Außerdem hat man bei dezentralen Repos zwangsläufig immer ein backup parat, für den Fall, dass der Server mal crasht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich selbst nutze Subversion, wie man ab und zu in meinen Posts sieht über WebDAV. Was aber auch ziemlich langsam ist, das muss man zugeben.
Daneben nutze ich Bazaar seit Version 0.13 und inzwischen in Version 0.16. Das lag daran, dass Mercurial damals noch ``move`` nicht als Move sondern als ``Copy + Delete`` implementiert hat. Ist inzwischen vermutlich anders geworden.

Ja, Bazaar ist langsam, und ja, es ist gehyped. Wenn zwar nicht so wie Ubuntu, aber ein wenig schon. Aber ich muss zugeben, ich kann damit gut arbeiten und es macht durchaus Spaß. Die Bediehnung des Tools ist ziemlich intuitiv, es funktioniert problemlos etc. Und die Zeit die bazaar braucht, steht sowieso nicht im Verhältnis zu der Zeit die ich zum programmieren brauche.

Was ich besonders dran schätze ist eben die wirklich brauchbare Bediehnung und auch die Möglichkeits commit zurückzuziehen. Werde aber in Zukunft schauen, dass ich Git ausprobiere und vielleicht mal wieder Mercurial ansehe.

Fest steht: ich würde keines der Systeme als schlecht ansehen. Darüber hinaus hann man alle drei Systeme auch zentralisiert benutzen... ist doch kein Problem?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten