Versionsverwaltungssystem gesucht



  • Also Subversion ist der inoffizielle Nachfolger von CVS, kein Grund mehr CVS zu benützen. Vor allem wenn man sich die Vorteile von SVN gegenüber CVS ansieht.

    MfG SideWinder



  • kartoffelsack schrieb:
    Was uns an Subversion nicht gefällt, ist, dass es die Dateien nicht zur Bearbeitung sperrt, wenn jemand anderes sie ausgecheckt hat.

    Hä?
    Das ist doch gerade eines der tollsten Features an modernen VCS.

    Naja, kommt auf die Dateien an ...
    Aber

    Es gibt jetzt übrigens bei Subversion die Möglichkeit, Dateien zu locken.

    👍

    Aus Anleitung für TortoiseSVN (sorry, find jetzt den Link nicht mehr)

    Neue Datei dem Projekt hinzufügen
    Um neue Dateien ins Projekt aufzunehmen, müssen diese über die Funktion Add hinzugefügt
    werden.
    1. Selektieren Sie die neue(n) Datei(en) und wählen Sie aus dem Kontextmenu <TortoiseSVN>/ <Add>
    2. Im erscheinenden Dialog kann noch mal gewählt werden, welche Dateien hinzugefügt werden
    sollen. Drücken Sie <OK>, um den Vorgang zu starten.

    Genau das wolln wir nicht.

    Viele (alle) Clients können ganze Verzeichnisse committen, da sind dann auch die neuen Dateien mit an Board.

    WELCHE können es. Unser PVCS kanns nicht, bei TortoiseSVN kann ichs aus der Doku auch nicht ersehen. Könntet Ihr mal Clients posten, von denen Ihr persönlich wisst, dass es funzt. Von denen können wir dann mal ein paar testweise installieren 🙂



  • Ich arbeite hier mit MKS... ist ein komplettes system mit einem sehr starken Client.

    Was allerdings gewissen Anforderungen betrifft, so sind dies lachhafte Ausflüchte die ich nur zu gut kenne. (War schon öfters an der Einführung von Verwaltungswerkzeugen beteiligt)

    Kartoffelsack: Du solltest dir mal Gedanken darüber machen, wozu ein solches Werkzeug überhaupt gedacht ist.

    Die Ausreden wie "Das sind zuviele Klicks", "Das System soll selber merken..." zeugen von Unverständnis und dem typischen Verhalten eines "Chaotischen" Entwicklers, der sich auf den Standpunkt stellt "Solange es mich nicht tangiert, soll es machen was es will".

    Richtig wäre aber die Arbeitstechnik anzupassen. - Kein unkoordiniertes Hacken mehr, keine wilden "Au ich muss noch schnell ein Modul..."-Module mehr.



  • Ahja, noch was zu deinen Anforderungen aus MKS Sicht:

    1. Wir wollen dem System nich jede einzelne Datei sagen, die es verwalten soll. Ich möchte Ihm ein Verzeichnis sagen, und dann soll es dafür sorgen, dass alle Dateien darin (ggf. mit Wildcards beschrieben, ggf. rekursiv über Unterverzeichnisse) eingecheckt und Versioniert sind.

    Das klappt soweit. Allerdings müssen neue Dateien explizit hinzugefügt werden. Was aber nicht weiter Schlecht ist. Massenhaft Dateien müssen eh nur beim Projekt-Init eingecheckt werden.

    Es soll nicht sein, dass man, wenn man eine neue cpp-Datei erstellt, diese nicht versioniert und gesichert wird, nur weil man vergisst, dem Versionierungssystem diese Datei bekannt zu machen.

    Das ist ein Fehler im Entwicklungsprozess und nicht des Tools. Es darf nicht vergessen werden! Es ist schlicht ein Umdenken nötig: Wenn ich ein neues Modul erstelle, wird es bekannt gemacht. Fertig.

    Wenn man dem System jede bei Java-Web-Projekten mit 100en von kleinen Dateien ist es unmöglich jede Datei einzeln anzugeben und händisch die Verzeichnisstruktur nachzubauen.

    Versteh ich nicht. Das bezieht sich auf den Projekt-Setup oder?

    2. Man soll Labels über mehrer Projekte verteilen können. Es muss Referenzen von einem Projekt auf ein anderes Projekt geben, wenn ersteres zweiteres benötigt. Ein- und Auschecken muss für diese Referenzen automatisch erfolgen, wenn man etwas an einem Projekt macht.[...]

    Das ist meines Erachtens eine Frage der Projektorganisation. Bei MKS hier, kann ich "Unterprojekte" in mein Projekt einklinken, welche ich dann auf einem bestimmten Stand festnageln kann, oder aber auch einfach immer die aktuellste Version mitnehmen kann.

    3. Das Ding muss komplett scriptsteuerbar sein. D.h. normalerweise klick ich abends nur auf die 'checke_projekt_xyz_ein.bat' klicken und es werden alle geänderten Dateien versioniert und gesichert

    Und morgens dann auch noch "checke_projekt_xyz_aus.bat" als kleiner LInk, damit man die Dateien nicht auszuchecken braucht?

    Und dann vielleicht noch ein Häckchen wo man verhindern kann, dass die Dateiversion hochgezählt wird?

    Ein weiteres Indiz dafür, das nicht mit dem System gearbeitet wird, sondern einfach nur aus unverständnis alles gemacht wird, damit das System nicht schreit, aber bloss nichts an den gwohnheiten ändern.

    4. Das Ding soll eine anständiges, zügig zu bedienendes GUI haben. Je schlechter und langsamer die Bedienung ist, desto schlampiger werden die Entwickler bei der Handhabung des Werkzeugs.

    ...kanns noch schlampiger werden? SCNR (o;

    Versteh ich natürlich das Argument. Denke das ist bei MKS grösstenteils erfüllt. Man hätte auch die Möglichkeit über die Kommandozeile zu gehen um es in andere Tools einzubinden...



  • Hi

    Wir arbeiten hier auch seit kurtzem ( so knapp ein Jahr ) mit MKS. Sehr leistungsstarteks Tool, was auch so seine Macken hat. die Integrationen funktionieren bei uns nicht hundertprozentig. ( die MKS Symbole fehlen ) Wass aber auch Entwicklungsumgebeung liegen könnte.

    Was ich sehr brauchbar ist, das man Subprojekte oder generell Projekte in anderen Projekten wieder als SubProjekt einklinken kann. Gerade wenn man z.B. in java mit vielen externen libs arbeitet. Alle unter Common reinstellen. Entsprechend der Versionsnummern ein Label setzen und dann im Projekt reinziehen. Wenns was neueres git kann man dan nachziehen, muss aber nicht.

    Ich weis nur nicht in wie weit sowas über SVN nachbildbar ist. mit CheapCopyauf einen CheapCopy aus dem Versions zweig?

    Was aber auch brauchbar ist ist der IM. damit kann man dann gleich seine ganzen Bugs und ChangeRequests usw gleich mitverwalten.

    nur nicht ganz billig das Tool

    gruss



  • Termite schrieb:

    nur nicht ganz billig das Tool

    In der Tat nicht (o;
    Naja das mit den Integrationen kann ich schlecht beurteilen. Arbeite hier mit IAR-Produkten und die haben leider etwas Probleme...



  • 1. Wir wollen dem System nich jede einzelne Datei sagen, die es verwalten soll. Ich möchte Ihm ein Verzeichnis sagen, und dann soll es dafür sorgen, dass alle Dateien darin (ggf. mit Wildcards beschrieben, ggf. rekursiv über Unterverzeichnisse) eingecheckt und Versioniert sind.
    Das klappt soweit. Allerdings müssen neue Dateien explizit hinzugefügt werden. Was aber nicht weiter Schlecht ist. Massenhaft Dateien müssen eh nur beim Projekt-Init eingecheckt werden.

    Zitat:
    Es soll nicht sein, dass man, wenn man eine neue cpp-Datei erstellt, diese nicht versioniert und gesichert wird, nur weil man vergisst, dem Versionierungssystem diese Datei bekannt zu machen.
    Das ist ein Fehler im Entwicklungsprozess und nicht des Tools. Es darf nicht vergessen werden! Es ist schlicht ein Umdenken nötig: Wenn ich ein neues Modul erstelle, wird es bekannt gemacht. Fertig.

    Sorry, die Argumentation versteh ich nicht. Ich mach eine neue Klasse in einem neuen Cpp/h-File. Diese Klasse ist noch nicht mal neu, weil ich vorher nicht anständig spezifiziert und meine Klassen identifiziert habe, sondern weil ich von mir aus feststelle, dass eine Klasse zu fett designed ist und ichs gern aufteilen würde. Nun vergess ichs im Eifer des Gefechts, selbige dem Projekt hinzuzufügen. Keine Warnung kein nichts, 5 Monate später will ich das Projekt wiederherstellen -> upsala.

    Ich mein, was spricht dagegen, wenn einen das System auf sowas aufmerksam macht: 'Achtung neue Datei blabla. Soll sie hinzugefügt werden?'. Es könnte mich nach einem Eincheck-Kommentar fragen etc. und es ist sichergestellt, dass alles Konsistent ist. Ich mein, klar, wenn ich keinen Fehler mache und immer sauber Arbeite brauch ichs nicht. Aber ich bin ein Mensch. Der Compiler sagt mir auch Fehler. Was hab ich davon, wenn ich mich einfach nochmal zu der Datei durchklicken muss um sie einzeln hinzuzufügen? Computer sind doch dazu da, sowas zu automatisieren.

    Zitat:
    3. Das Ding muss komplett scriptsteuerbar sein. D.h. normalerweise klick ich abends nur auf die 'checke_projekt_xyz_ein.bat' klicken und es werden alle geänderten Dateien versioniert und gesichert
    Und morgens dann auch noch "checke_projekt_xyz_aus.bat" als kleiner LInk, damit man die Dateien nicht auszuchecken braucht?

    Ich weiß ja nicht, wie geordnet das alles bei Euch läuft, aber bei mir kommt es schon mal vor, dass ich an mehreren Dateien 'gleichzeitig' ändere. Wenn ich was ändern muss, check ich die Datei aus und arbeite fröhlich weiter. Und wenn ich fertig bin, spätestens, wenn ich heim geh, möchte ich sicher gehen, dass ich nicht eine einzelne Datei vergesse. Kann mich ja bei jeder Datei nach Kommentar etc. fragen. Aber ich würde halt nichts übersehen. Mir passiert sowas. Euch nicht?



  • Und wenn ich fertig bin, spätestens, wenn ich heim geh, möchte ich sicher gehen, dass ich nicht eine einzelne Datei vergesse.

    Ich kenne - in Ermangelung einer funktionierenden Windows-Installation - tortoisesvn nicht, aber das kann höchstwahrscheinlich jeder SVN-Client in irgendeiner Form.

    Normalerweise verwendet man dafür einfach "svn status" oä, insofern bestimmt kein Problem.



  • Die Ausgabe von svn status ist auch schön parsbar, so daß es sicher kein Problem ist ein Programm zu schreiben, daß dann vorschlägt nicht versionierte cpps und Header noch hinzuzufügen.

    Aber wenn man mit TortoiseSVN arbeitet und das in den Explorer integriert sieht man das eigentlich auch schon an den Icons, ob was versioniert ist oder nicht.



  • Ich versteh die Aufregung nicht, wenn ich mein gesamtes Source-Unterverzeichnis für das ich zuständig bin committe zeigt er mir die noch nicht versionierten Dateien schön aufgelistet an. Ich drücke "Select All" und fertig. Das bringt ja selbst der faulste Entwickler noch hin *g*

    MfG SideWinder



  • Die Aufregung ist auch nicht zu verstehen. Der Threadersteller sollte es IMHO einfach mal mit TortoiseSVN versuchen. Ich habe doch schon gesagt, dass es Power hat. 🤡



  • kartoffelsack schrieb:

    Sorry, die Argumentation versteh ich nicht. Ich mach eine neue Klasse in einem neuen Cpp/h-File. Diese Klasse ist noch nicht mal neu, weil ich vorher nicht anständig spezifiziert und meine Klassen identifiziert habe, sondern weil ich von mir aus feststelle, dass eine Klasse zu fett designed ist und ichs gern aufteilen würde. Nun vergess ichs im Eifer des Gefechts, selbige dem Projekt hinzuzufügen.

    Bei einem korrekten Entwicklungsprozess und konsequenten verwenden und der damit einhergehenden Akzeptanz des Werkzeugs würde dir das nicht passieren. Denn du würdest die Datei sofort auch dem Versionssystem bekannt machen.

    kartoffelsack schrieb:

    Keine Warnung kein nichts, 5 Monate später will ich das Projekt wiederherstellen -> upsala.

    Um genau sowas zu vermeiden kann man auch vor dem erstellen einer finalen Version, diese noch testen, indem man eine neue Sandbox erstellt und testet, ob der Build noch funktioniert.

    kartoffelsack schrieb:

    Ich mein, was spricht dagegen, wenn einen das System auf sowas aufmerksam macht: 'Achtung neue Datei blabla. Soll sie hinzugefügt werden?'. Es könnte mich nach einem Eincheck-Kommentar fragen etc. und es ist sichergestellt, dass alles Konsistent ist.

    Ich sage nicht, die Idee generell sei schlecht. Aber der, zusammen mit anderen Wünschen, gibt mir, das Gefühl, bei euch ist das Versionsverwaltungssystem irgendwie noch als Fremdkörper betrachtet.

    Bewusstes Arbeiten mit einem solchen Werkzeug hilft der strukturierten Bearbeitung von Projekten.

    Ich weiß ja nicht, wie geordnet das alles bei Euch läuft, aber bei mir kommt es schon mal vor, dass ich an mehreren Dateien 'gleichzeitig' ändere. Wenn ich was ändern muss, check ich die Datei aus und arbeite fröhlich weiter. Und wenn ich fertig bin, spätestens, wenn ich heim geh, möchte ich sicher gehen, dass ich nicht eine einzelne Datei vergesse.

    Werden bei dir deine LOcks (Checkouts) nicht angezeigt? Ich kann die als liste haben, wo alle Änderungen angezeigt werden. Das zeigt mir dann auch immer, wie sauber ich gearbeitet habe. Die liste schnell markieren, Checkin, und selbstverständlich den Revisionskommentar nicht vergessen...

    Mir passiert sowas. Euch nicht?

    Nein.



  • Ich verstehe die Aufregung ja auch nicht. 🤡

    Hab doch nur konkrete Anforderungen geschrieben und gebeten zu posten, wenn Ihr eines wisst, dass das kann. Die Antworten waren aber etwas unklar ('müssten alle können') bis verständnislos ('ihr müsst Euren Entwicklungsprozess ändern').

    Ich versteh die Aufregung nicht, wenn ich mein gesamtes Source-Unterverzeichnis für das ich zuständig bin committe zeigt er mir die noch nicht versionierten Dateien schön aufgelistet an.

    Das ist doch mal ne Aussage. Wir probierns aus ...

    Danke 👍

    Werden bei dir deine LOcks (Checkouts) nicht angezeigt? Ich kann die als liste haben, wo alle Änderungen angezeigt werden. Das zeigt mir dann auch immer, wie sauber ich gearbeitet habe. Die liste schnell markieren, Checkin, und selbstverständlich den Revisionskommentar nicht vergessen...

    Bei unserem derzeitigen System: Ich hab keine Ansicht, die mir alles, was ich z.Z. ausgecheckt habe anzeigt.



  • Keine Aufrgegung. NUr kommen oft gewisse Anforderungen auf die nix passt, wenn man das Werkzeug eben nicht in den Entwicklungsprozess integriert, sondern nur "dran hängt".

    kartoffelsack schrieb:

    Werden bei dir deine LOcks (Checkouts) nicht angezeigt? Ich kann die als liste haben, wo alle Änderungen angezeigt werden. Das zeigt mir dann auch immer, wie sauber ich gearbeitet habe. Die liste schnell markieren, Checkin, und selbstverständlich den Revisionskommentar nicht vergessen...

    Bei unserem derzeitigen System: Ich hab keine Ansicht, die mir alles, was ich z.Z. ausgecheckt habe anzeigt.

    Das ist schlecht. Das kann mein MKS z.B.


Anmelden zum Antworten