Versionsverwaltung in C++



  • Guten Tag,
    ich möchte in einem C++-Quelltext auf ein Versionsverwaltungssystem (RCS oder CVS) zugreifen können. Das Programm soll unter Linux laufen.
    Bisher kenne ich nur die Möglichkeit der Eingabe von Befehlen in Kommandozeilen der Shell. Wie aber Befehle des Zugriffs auf RCS oder CVS in einem C++ Programm formulieren?
    Ich wäre froh, wenn mir jemand helfen könnte.

    pepe



  • ich weiss nicht ob dir das hilft, aber das Versionskontrollprogramm "Subversion" (das ja CVS in Zukunft abloesen soll) hat AFAIK ein von C aus leicht ansprechbares Interface.



  • Hi

    soweit ich das bisher gesehen hab liefern die meisten programme die auf cvs zugreifen auch die consolen tools mit ( bzw installieren sie auch mit ) du kanst ja die befehle die du von hand eingeben würdest ja auch über dein programm aufrufen. die ausgabe kannst du dann umleiten und auswerten. (so wie es z.B. eine unix shell macht)

    svn ist in der hinsicht etwas besser. sie haben zwar ein etwas anderes konzept der projektversionierung ( nicht mehr je datei, sondern die versionsnummern beziehen sich immer auf das komplette projekt, was, wie ich finde, vorteile hat) und ist auch moderner aufgebaut. cvs war ja mal nur eine samlung von losen scripten die dann mal auf c portiert worden sind. svn ist modular aufgebaut. dadurch gibts auch sicher die schnitstelle, die du brauchst um auf einen svn server zuzugreifen. svn besitzt mitlerweile auch ein eigenes Netzwerkprotokoll ( auch mit ssh )

    gruss Termite



  • Hi, Termite,
    vielen Dank für Deine Nachricht. Aber da ich blutiger Anfänger bin, habe ich noch ein paar sicher recht naive Fragen.

    1. Sicher muß eine Schnittstelle zu CVS mit include angegeben werden. Wie heißt die?
    2. Wenn die CVS-Befehle über das Programm aufgerufen werden, wie sind sie so zu formulieren, damit klar ist, daß sie sich auf CVS beziehen?
    3. Wie kann man das Umleiten und Auswerten der Ausgabe machen?

    pepe



  • Hi

    da erwischt du mich grad voll auf dem falschen fuss.

    zu 1. ich weis nicht ob es für cvs überhaupt eine API gibt und wie die includiert wird. ggf mal bei anderen open sorce projekten schauen, die cvs verwenden, und wie die das machen.

    zu 2. du baust dir eine befehlszeile zusammen, so wie du sie in der konsole eingeben würdest. nur das du die als prozess startest ( haben wir mal im studium gemacht. als wir eine schell programiert haben. die macht im prizip ja auch nur eingabe einlesen, interpretieren, und programm als Prozess starten.)

    zu 3. ausgabe auswerten und umleiten. die gleiche gedächtnislücke. Haben wir auch im studium bei der Systemprogramierung behandelt. als wir die shell programiert haben. wenn du einen pip machst, kümmert sich die schell drum wo die ausgaben hingespeichert werden. das gleiche mit der eingabe. ein Prozess der im Hintergrund gestart wird benötigt sie nicht. Ein prozess im vordergund braucht sie jedoch. entsprechend wird dann umgeleitet. so was in der art würdest du für dein programm dann brauchen. als einfache alternative währe ein schellaufruf mit dem komando und einem pip in eine datei. dann kanst du nacher die datei auswerten.

    gruss Termite


Anmelden zum Antworten