C
CrimsonKing
Guest
Da wir hier gerade so schön über Programmierthemen geredet haben, möchte ich mal ein Fass reinwerfen, das mit Sprachen nichts zu tun hat und hier schon von @rubricanis und im April mir aufgemacht wurde:
Wohin mit dem Code?
Bei mir hat sich über inzwischen 15 Jahre (vorher habe ich meine Software lieber niemandem gezeigt ) ein gewisser Wildwuchs an Repositorys angesammelt. Ich bin Teil mindestens (ich müsste selbst nachsehen) zweier Projekte auf SourceForge, von denen eines immer noch aktiv entwickelt wird, ich habe ein kleines (eher privates) Projektlein auf Darcshub, den Großteil meiner Software hoste ich derzeit auf Bitbucket und eine Handvoll Code liegt immer noch bei GitHub herum, entweder aus Kompatibilitätsgründen (Einbindung in MELPA, Package Control usw.) oder weil er mir nicht wichtig genug ist.
Weil das natürlich ein suboptimaler Zustand ist und ich inzwischen genug virtuelle Server betreibe, die sich eigentlich - mit der altbekannten Ausnahme dieses einen Servers, dessen Migration in sehr behäbigen Schüben erfolgt - platz- wie RAM-mäßig sozusagen die Eier kraulen, würde es sich theoretisch anbieten, mein eigener Repositoryhoster zu sein. Geplant hatte ich das schon länger, aber die Arbeit, die Arbeit...
Ich habe mir jetzt mal die Zeit genommen und mich mit den derzeit einigermaßen aktiv weiterentwickelten Systemen auseinandergesetzt. Grundsätzlich: Wenn devel/pijul mit dem Nest irgendwann ausgereift ist, also ersteres unter Windows vernünftig funktioniert und letzteres endlich zum Download verfüg- und nicht nur im Browser anguckbar ist, dann ist es vermutlich genau das, was ich brauche, nämlich ein Darcs ohne Skalierungsprobleme und mit 'nem brauchbaren Webclient für die, die keine Kommandozeilen mögen. Das kann aber vermutlich noch ein bisschen dauern. Ein Ticketsystem wäre ja optional, ein Mantis kriege ich schon noch installiert.
Mein Entscheidungsproblem liegt im Spagat zwischen "ich will meinen Code hosten" und "andere Entwickler sollten auch was beitragen können". Bislang war mir das egal, aber eins meiner Projekte ist inzwischen doch recht bekannt - und eine Reihe an willkommenen Patches, die da eingetrudelt sind, hätte ich wohl nicht bekommen, wenn der Code nicht auf Bitbucket gehostet wäre. Andererseits habe ich auch schon Diffs für andere Projekte im IRC erhalten, die bloße Möglichkeit zu Pull-Requests (GitHub, Bitbucket) scheint also keine sonst vorhandene Hürde abzuräumen. Nach langer Überlegung habe ich daher beschlossen, diejenigen Repositorys, die nicht aufgrund anderer Leute Bequemlichkeit bei GitHub liegen müssen, auf meinen Server umzuziehen.
Aber wie?
Klar ist: Ein Spiegel auf GitHub, Bitbucket, GitLab oder so wird sinnvoll sein, erstens als dezentrale Sicherheitskopie, falls ich mal wieder den Server kaputt bekomme, zweitens, damit die Patches nicht versiegen. Selbst OpenBSD kopiert ja parallel "for public consumption" auf GitHub. Das sollte mit einem Cronjob aber grundsätzlich immer gehen und ist nicht vom gewählten VCS abhängig, hilft mir also überhaupt nicht bei der Entscheidungsfindung.
Was ich gern hätte, ist ein ohne Schmerzen [1] selbsthostbares VCS, für das es eine vernünftige Weboberfläche [2] gibt und dessen Funktionen nicht zu einem Großteil dem Zweck dienen, die Fehler, die sich bei der Benutzung des VCSs fast schon planmäßig ergeben, wieder auszubügeln [3]. Man sollte meinen, das sei nicht zu viel verlangt - aber gerade die "großen" Systeme machen's falsch:
Wohin mit dem Code?
Bei mir hat sich über inzwischen 15 Jahre (vorher habe ich meine Software lieber niemandem gezeigt ) ein gewisser Wildwuchs an Repositorys angesammelt. Ich bin Teil mindestens (ich müsste selbst nachsehen) zweier Projekte auf SourceForge, von denen eines immer noch aktiv entwickelt wird, ich habe ein kleines (eher privates) Projektlein auf Darcshub, den Großteil meiner Software hoste ich derzeit auf Bitbucket und eine Handvoll Code liegt immer noch bei GitHub herum, entweder aus Kompatibilitätsgründen (Einbindung in MELPA, Package Control usw.) oder weil er mir nicht wichtig genug ist.
Weil das natürlich ein suboptimaler Zustand ist und ich inzwischen genug virtuelle Server betreibe, die sich eigentlich - mit der altbekannten Ausnahme dieses einen Servers, dessen Migration in sehr behäbigen Schüben erfolgt - platz- wie RAM-mäßig sozusagen die Eier kraulen, würde es sich theoretisch anbieten, mein eigener Repositoryhoster zu sein. Geplant hatte ich das schon länger, aber die Arbeit, die Arbeit...
Ich habe mir jetzt mal die Zeit genommen und mich mit den derzeit einigermaßen aktiv weiterentwickelten Systemen auseinandergesetzt. Grundsätzlich: Wenn devel/pijul mit dem Nest irgendwann ausgereift ist, also ersteres unter Windows vernünftig funktioniert und letzteres endlich zum Download verfüg- und nicht nur im Browser anguckbar ist, dann ist es vermutlich genau das, was ich brauche, nämlich ein Darcs ohne Skalierungsprobleme und mit 'nem brauchbaren Webclient für die, die keine Kommandozeilen mögen. Das kann aber vermutlich noch ein bisschen dauern. Ein Ticketsystem wäre ja optional, ein Mantis kriege ich schon noch installiert.
Mein Entscheidungsproblem liegt im Spagat zwischen "ich will meinen Code hosten" und "andere Entwickler sollten auch was beitragen können". Bislang war mir das egal, aber eins meiner Projekte ist inzwischen doch recht bekannt - und eine Reihe an willkommenen Patches, die da eingetrudelt sind, hätte ich wohl nicht bekommen, wenn der Code nicht auf Bitbucket gehostet wäre. Andererseits habe ich auch schon Diffs für andere Projekte im IRC erhalten, die bloße Möglichkeit zu Pull-Requests (GitHub, Bitbucket) scheint also keine sonst vorhandene Hürde abzuräumen. Nach langer Überlegung habe ich daher beschlossen, diejenigen Repositorys, die nicht aufgrund anderer Leute Bequemlichkeit bei GitHub liegen müssen, auf meinen Server umzuziehen.
Aber wie?
Klar ist: Ein Spiegel auf GitHub, Bitbucket, GitLab oder so wird sinnvoll sein, erstens als dezentrale Sicherheitskopie, falls ich mal wieder den Server kaputt bekomme, zweitens, damit die Patches nicht versiegen. Selbst OpenBSD kopiert ja parallel "for public consumption" auf GitHub. Das sollte mit einem Cronjob aber grundsätzlich immer gehen und ist nicht vom gewählten VCS abhängig, hilft mir also überhaupt nicht bei der Entscheidungsfindung.
Was ich gern hätte, ist ein ohne Schmerzen [1] selbsthostbares VCS, für das es eine vernünftige Weboberfläche [2] gibt und dessen Funktionen nicht zu einem Großteil dem Zweck dienen, die Fehler, die sich bei der Benutzung des VCSs fast schon planmäßig ergeben, wieder auszubügeln [3]. Man sollte meinen, das sei nicht zu viel verlangt - aber gerade die "großen" Systeme machen's falsch:
- [1] Mercurial spült einem erst mal eine halbe Linuxdistribution voller Pythongedöns auf den Server, die leider bemerkenswert gute Weboberfläche Kallithea übernimmt die zweite Hälfte. Erfahrungsgemäß bricht so was alle paar Wochen mal wegen irgendwelcher Abhängigkeiten zusammen. In einem ersten Anlauf habe ich nicht mal die Installation aus der Anleitung bis zum Ende hinbekommen. Schade!
- [2] Darcs, das zwar eigentlich nicht "groß" ist, aber von dem ich gelegentlich mal schwärme, hat keine vernünftige Weboberfläche. Darcshub ist auf Smartphones nur sehr anstrengend benutzbar und auf dem Desktop auch alles andere als übersichtlich. Für mich privat kein Problem, aber...
- [3] Git, all den sonstwie tollen Tools aus seinem "Ökosystem" zum Trotz, mochte ich nie so wirklich, und je mehr ich ihm im Alltag begegne, desto schlechter wird mein Eindruck davon. Da wird, ganz GNU/Linux-typisch, einfach nur Funktion auf Funktion gestapelt und intuitive Bedienung ist Fehlanzeige. Ohne ständiges Handbuchlesen kommt man da nicht weit und GUI-Bedienung ist nicht immer eine Option.
- BitKeeper. Habe ich nie benutzt, hat aber angeblich auch ein Webinterface. Natürlich ist bkbits.net seit Tagen nicht erreichbar, so dass ich bisher keine Möglichkeit hatte, es mir anzugucken, ohne gleich irgendwelche Installationen vorzunehmen. (Hat hier wer Erfahrung damit? Auf dem Papier sieht es ziemlich dufte aus.)
- SVN. Ich mag SVN und meine Projekte sind eh' alle eher Cathedral als Bazaar. Der offensichtliche Vorteil: Das dürfte eine sehr niedrige Hürde für mögliche Kollaborateure sein (könnte mir vielleicht sogar doch eine Spiegelung ersparen?) und es hat nicht fast nur Funktionen, die ich niemals benutzen werde. Der offensichtliche Nachteil: Das wird wieder zu einer Installationsorgie werden. Subversion (mit eigenem Benutzer natürlich), Mantis und eine vernünftige Weboberfläche für die Repositorys, wobei ich mich noch zwischen ViewVC (schon wieder Python ) und etwas komfortableren Alternativen entscheiden müsste.
- Fossil. Hat ein eingebautes Ticketsystem und jedes Repository kommt komplett in einer einzigen Datei daher (perfekt für Backups), aber die Weboberfläche gefällt mir irgendwie nur zum Teil. Die --repo-list - ich habe halt nicht nur eins - regt mich auf mit ihrer fehlenden Flexibilität, Syntaxhighlighting gibt's nicht und die Kombination "Fossil mit mehreren Benutzern und Repositorys hinter nginx mit SSL und eigener Subdomain" scheint angesichts der Dokumentationslage mit "exotisch" noch vorsichtig beschrieben zu sein.