Hallo,
streiche "ausdenken". Verzeichnisname ergibt sich bei mir gewöhnlich aus Projektname, Bindestrich, ISO-Datum, Bindestrich, Uhrzeit.
Sehe ich als Vorteil. Manuell erledigen heißt, ich *weiß* genau, was passiert und kann es jederzeit den Erfordernissen anpassen.
Beim Versionssystem weißt du das genauso. Nicht nur das, jeder kann genau nachvollziehen was du konkret gemacht hast. Ich gebe dir mal ein Beispiel. Ich und mein Bruder schreiben ein kleines Multiplayer Spiel. Jetzt haben wir gemerkt dass es doch cool wäre zentral Kontanten zu haben die dann von verschiedenen Modulen benutzt werden können anstatt dass alle nur Strings oder magic-numbers nutzen. Wir haben dafür ein Issue im Bugtracker erstellt und ein paar Tage später hat er sich dieses Issue zugewiesen und gefixt, d.h. er hat so ein Modul gebaut und überall verteilt im Code die strings und magic-numbers queer im ganzen Projekt ersetzt. Am ende hat er es committet. Wenn ich jetzt sehen möchte was genau er verändert hat kann ich mir einfach das eine commit angucken:
added Constants module. fixes #4
Wer spricht von verteilt herumliegenden Sachen? Selbstverständlich gehe ich von einem geordneten Verzeichnis auf einem zentralen Server aus.
Dann kann man ja gleich ein Versionssystem nutzen, das macht das ganze viel einfacher da alle eh schon wissen wie man das benutzt und es dadurch einheitlich wird.
Zweitens: Vollständige Snapshots bewahre ich nur maximal
Mit einem Versionssystem bekommst du von jedem Schritt einen vollständigen Snapshot ohne signifikante Nachteile.
Wird aber anscheinend selten gemacht. Was habe ich neulich noch gesucht? ... Hmm, vergessen. Jedenfalls gab's für dieses Projekt auch ein Online-Repository, und ich hab mir'n Wolf gesucht, aber nirgends eine Möglichkeit für einen Komplett-Download gefunden. Sowas ist dann frustrierend.
Das liegt daran dass
git clone http://example.com/my-repo.git
oder
svn checkout http://example.com/my-repo/trunk
das ganze ohne die ganzen Nachteile anbieten. (Und falls die aktuelle Version nicht funktioniert kann sich derjenige der das runterladen will auch genauso einfach eine frühere revision runterladen.)
Ich sprach von einer Zugriffsmöglichkeit *ohne* VCS, also beispielsweise ein direkter HTTP- oder FTP-Download. Oder eben ein Zugriff übers Dateisystem.
Um zugriff über HTTP zu bekommen musst du auch ein Programm haben das das kann, also einen Browser oder wget, etc., für FTP genauso. Du handelst dir mit SVN oder Git aber nicht die ganzen Nachteile ein. Darüber hinaus werden z.b. von Git Abhängigkeiten, mit Hilfe von git submodule, automatisch aufgelöst. Das alles von Hand zu machen ist eigentlich grundsätzlich ein k(r)ampf.
Ich halte große Stücke auf gedruckte Dokumentation, aber *nur* auf Papier ist Murks.
Naja Dokumentation und commits haben aber miteinander kaum etwas zu tun. Ein commit ist die Beschreibung einer Änderung während des Entwickelns. Eine Dokumentation ist die Beschreibung wie man das Programm benutzt.
Ich weise da noch einmal auf das commit-Beispiel von weiter Oben hin. Wenn ich jetzt als Chef-Programmierer oder Mitentwickler sehen möchte was die anderen gemacht haben kann ich mir einfach das commit Log angucken und sehe dann dort dass der Bug #4 gefixt wurde, von web, wann und wie. So etwas geht mit deiner Methode halt gar nicht ohne stundenlangen Aufwand und schulungen wie man das jetzt bei euerer firma macht. Und jeder neue Mitarbeiter muss das komplett neu lernen. Git und SVN können eigentlich alle professionellen Entwickler, und falls nicht dann würde ich ehrlicherweise davon abraten sie einzustellen.
Jeena