{"id":55000236,"date":"2004-10-01T00:00:00","date_gmt":"2023-02-10T14:47:37","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=236"},"modified":"2024-02-19T08:18:26","modified_gmt":"2024-02-19T08:18:26","slug":"versionsverwaltung_mit_access_und_cvs","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/","title":{"rendered":"Versionsverwaltung mit Access und CVS"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/bf571190d1124ee8b74163ae69a64450\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Beim Thema Versionsverwaltung f&auml;llt dem Anwender von Microsoft-Entwicklerprodukten erstmal Visual Source Safe ein. Wenn man &uuml;ber den Tellerrand schaut, finden sich dort einige vor allem aus der Unix-Welt stammende Produkte, allen voran CVS (Concurrent Version System). Der vorliegende Beitrag stellt die Grundlagen zu diesem System vor und klopft ab, inwieweit es sich zur Kooperation mit Microsoft Access bewegen l&auml;sst.<\/b><\/p>\n<p><b><\/b><\/p>\n<p>CVS ist eine Software zur Versionsverwaltung von Dateien. Es ist das Open Source-Pendant zu Microsoft Visual Source Safe (VSS), ist aber im Vergleich zu diesem Open Source-Software.<\/p>\n<p>Versionsverwaltungssoftware erf&uuml;llt mehrere Aufgaben gleichzeitig: Der wichtigste Punkt ist, dass der Quellcode an einer zentralen Stelle gespeichert und von allen beteiligten Entwicklern kopiert, bearbeitet und wieder zur&uuml;ckgespielt werden kann.<\/p>\n<p>Halten sich alle beteiligten Personen an die Regeln, hat jede eine weitgehend aktuelle Version des Projektes auf der Festplatte. &auml;nderungen lassen sich mit Versionsverwaltungen leicht ins System &uuml;bernehmen und an die anderen Entwickler verteilen.<\/p>\n<p>Der zweite wichtige Punkt folgt aus der Bezeichnung dieser Software als Versionsverwaltungssystem:<\/p>\n<p>Jede neue Version einer Datei wird mit allen &auml;nderungen registriert; dementsprechend kann das Versionsverwaltungssystem jederzeit fr&uuml;here Versionen einer Datei rekonstruieren und bereitstellen.<\/p>\n<p>Dieser zweite Punkt bildet den Grundstein f&uuml;r die in diesem Beitrag vorgestellten Vorgehensweisen und die daraus resultierende L&ouml;sung.<\/p>\n<h2>Wie l&auml;uft die Versionsverwaltung ab?<\/h2>\n<p>&uuml;blicherweise geht man bei der Versionsverwaltung davon aus, dass ein Verzeichnis mit seinen Unterverzeichnissen und Dateien den Quellcode f&uuml;r ein Projekt oder einen Teil eines Projektes repr&auml;sentiert. Da der Quellcode w&auml;hrend der Entwicklung &auml;nderungen unterworfen ist, m&uuml;sste man ohne Versionsverwaltung regelm&auml;&szlig;ig Kopien des Verzeichnisses anlegen, um sp&auml;ter bestimmte Versionsst&auml;nde rekonstruieren zu k&ouml;nnen &#8211; etwa, wenn man in die falsche Richtung entwickelt hat und ein St&uuml;ck zur&uuml;ckrudern m&ouml;chte.<\/p>\n<p>Der Ablauf bei der Entwicklung von Software mit der Unterst&uuml;tzung durch eine Versionsverwaltung sieht folgenderma&szlig;en aus:<\/p>\n<p>Sobald man es f&uuml;r sinnvoll erachtet, f&uuml;gt man der Versionsverwaltung den vorhandenen Quellcode hinzu. Unter CVS hei&szlig;t dieser Vorgang &#8222;Import&#8220;.<\/p>\n<p>Sobald der Quellcode einmal in einem Modul des Repositorys gelandet ist, kann man die komplette Struktur in jedem beliebigen Verzeichnis wieder herstellen. Dieses Verzeichnis wird somit zum Arbeitsverzeichnis.<\/p>\n<p>Hat man dort &auml;nderungen an den Dateien vorgenommen, kann man die &auml;nderungen auf die im Repository gespeicherten Dateien &uuml;bertragen. Arbeitet man allein (das ist bei Access-Entwicklern recht oft der Fall), ist man weitgehend flexibel, was den Zeitpunkt des &#8222;Eincheckens&#8220; der &auml;nderungen betrifft: Alle zwei Stunden, einmal am Tag, oder einfach, wenn Sie den Eindruck haben, dass Sie den aktuellen Zwischenstand noch einmal reproduzieren m&ouml;chten.<\/p>\n<p>Im Team sieht das nat&uuml;rlich anders aus: Hier sollte man regelm&auml;&szlig;ig die aktuelle Version seiner Arbeitsdateien wieder einchecken, gerade wenn mehrere Entwickler an zusammenh&auml;ngenden Teilen des Projekts arbeiten und auf die jeweiligen Aktualisierungen des anderen angewiesen sind.<\/p>\n<h2>Access und Versionsverwaltung<\/h2>\n<p>Wer mit Access entwickelt, kennt das: Aufgrund der &#8222;monolithischen&#8220; Struktur einer Access-Anwendung kann man gar nicht viel anders, als regelm&auml;&szlig;ig Sicherungskopien der kompletten Datenbank anzulegen.<\/p>\n<p>Das macht es nat&uuml;rlich sehr schwer, einen bestimmten Versionsstand zu finden &#8211; wenn man die vorgenommenen &auml;nderungen nicht umfassend dokumentiert hat.<\/p>\n<p>Dies kommt vor allem dann ungelegen, wenn man nur mal eben die letzten paar ge&auml;nderten Zeilen wiederherstellen m&ouml;chte, aber die Kapazit&auml;t der R&uuml;ckg&auml;ngig-Funktion des Visual Basic-Editors wieder mal ein wenig zu klein ist.<\/p>\n<h2>Installation von CVS<\/h2>\n<p>Der Schnelldurchlauf der Installation von CVS f&uuml;r Windows sieht folgenderma&szlig;en aus:<\/p>\n<li>Laden Sie die aktuelle Version von CVSNT von der Internetseite http:\/\/www.cvsnt.com\/ herunter.<\/li>\n<li>Starten Sie die Installation.<\/li>\n<li>Akzeptieren Sie alle Voreinstellungen des Setup-Assistenten.<\/li>\n<li>Starten Sie den Rechner neu. (<\/li>\n<h2>Inbetriebnahme von CVS<\/h2>\n<p>CVS speichert die zu zu verwaltenden Dateien in einem so genannten &#8222;Repository&#8220;. Das erstellen Sie wie folgt:<\/p>\n<li>In der Systemsteuerung finden Sie einen Eintrag mit der Beschriftung CVS for NT. Starten Sie die Benutzeroberfl&auml;che per Doppelklick (s. Abb. 1).<\/li>\n<li>Stoppen Sie den CVS-Service.<\/li>\n<li>Wechseln Sie zu Repositories und klicken Sie auf Add. Geben Sie das Verzeichnis an, in dem CVS das Repository anlegen soll, und best&auml;tigen Sie die Initialisierung des Verzeichnisses als Repository (s. Abb. 2).<\/li>\n<li>W&auml;hlen Sie auf der Registerseite Advanced ein tempor&auml;res Verzeichnis aus, das Sie am besten schon vorher anlegen &#8211; beispielsweise unter dem Namen &#8222;CVSTemp&#8220;.<\/li>\n<li>Behalten Sie die &uuml;brigen Einstellungen bei und starten Sie den Dienst wieder. (<\/li>\n<p><IMG height=\"217\" src=\"..\/fileadmin\/_temp_\/{C1209DCA-F519-4B22-8F5E-B62933D4C107}\/pic001.png\" width=\"495\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b>Abb. 1: CVS in der Systemsteuerung<\/b><\/p>\n<h2>Zugriffsart<\/h2>\n<p>CVS bietet verschiedene Arten des Zugriffs auf das Repository an, die an die einzelnen Anwendungsf&auml;lle angepasst sind. In unserem Falle soll sich das Repository auf dem lokalen Rechner befinden und ohne Benutzername und Kennwort erfolgen. Je nachdem, ob man sich in einem als solches gekennzeichneten Arbeitsverzeichnis befindet, muss man CVS die Art der Verbindung und die damit zusammenh&auml;ngenden Parameter mitteilen, bevor man auf das Repository zugreifen kann. Ruft man eine CVS-Anweisung vom Arbeitsverzeichnis selbst auf, bezieht CVS die ben&ouml;tigten Informationen aus Dateien, die extra f&uuml;r diesen Zweck zus&auml;tzlich zu den Arbeitsdateien im Verzeichnis vorliegen.<\/p>\n<p><IMG height=\"314\" src=\"..\/fileadmin\/_temp_\/{C1209DCA-F519-4B22-8F5E-B62933D4C107}\/pic002.png\" width=\"442\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b>Abb. 2: Festlegen des Verzeichnisses und Best&auml;tigen des Einrichtungsvorgangs<\/b><\/p>\n<p>Nachfolgend lernen Sie die grundlegende Funktion der Anweisungen von CVS kennen. Der Schwerpunkt liegt dabei auf den Anweisungen, die von accessCVS, einem Plugin f&uuml;r Access-Datenbanken zur Integration von CVS, verwendet werden.<\/p>\n<h3>Hinweis<\/h3>\n<p>Weitere Informationen sowie eine Referenz zu CVSNT finden Sie im Internet unter der Adresse http:\/\/www.cvsnt.org. <\/p>\n<h2>Projekt importieren<\/h2>\n<p>Damit CVS &uuml;berhaupt Wind von den zu verwaltenden Daten bekommt, &#8222;importieren&#8220; Sie diese und speichern sie damit erstmalig im Repository.<\/p>\n<p>Das ist die Grundlage f&uuml;r alle weiteren Operationen, mit denen Sie eine Datei bearbeiten und als neue Version ablegen, alte Versionen wieder hervorholen, Dateien hinzuf&uuml;gen oder entfernen k&ouml;nnen. Das Einchecken erfolgt allgemein mit folgender Anweisung:<\/p>\n<pre>cvs import -m \"&lt;Bemerkung&gt;\" CVSBeispiel avendor arelease<\/pre>\n<p>Damit kopiert man das komplette Verzeichnis inklusive aller Unterverzeichnisse und Dateien in das Repository. Der Platzhalter &lt;Bemerkung&gt; enth&auml;lt eine Logmessage, mit der Sie Informationen &uuml;ber den aktuellen Stand speichern k&ouml;nnen. Diese Informationen k&ouml;nnen Sie mit jeder Aktualisierung des Inhalts des Repository &uuml;bergeben. Damit erhalten Sie ein sehr wichtiges Mittel zur sp&auml;teren Identifizierung des Inhalts des jeweiligen Revisionsstandes.<\/p>\n<p>Legen Sie zu Beispielzwecken ein Verzeichnis mit einer kurzen Textdatei an. Das Ganze erledigen Sie vom DOS-Prompt aus. Erstellen Sie zun&auml;chst das Testverzeichnis:<\/p>\n<pre>mkdir c:\\\\cvsTest<\/pre>\n<p>Wechseln Sie in das Verzeichnis:<\/p>\n<pre>cd c:\\\\cvsTest<\/pre>\n<p>&ouml;ffnen Sie anschlie&szlig;end den Texteditor, geben Sie einen kurzen Text (etwa &#8222;Beispieltext&#8220;) ein und speichern Sie die Textdatei mit den entsprechenden Men&uuml;befehlen:<\/p>\n<pre>edit Beispiel.txt<\/pre>\n<p>Nun k&ouml;nnen Sie den Inhalt des Verzeichnisses in ein neues Modul im CVS-Repository importieren:<\/p>\n<pre>cvs -d :local:&lt;Repositorypfad&gt; import -m \"Neues Modul\" Beispiel avendor arelease<\/pre>\n<p>Dabei geben Sie f&uuml;r &lt;Repositorypfad&gt; den Pfad an, unter dem Sie das Repository angelegt haben. Achten Sie darauf, dass Sie statt des Backslash  (\\\\) das Slash-Zeichen (\/) verwenden.<\/p>\n<p>Die Zeichenfolge :local: gibt an, dass es sich um ein Repository auf dem lokalen Rechner handelt. Der Parameter -m und der folgende String dienen zum Anlegen einer Logmessage. Diese sollte in der Regel Informationen zu der eingecheckten Version enthalten. &#8222;Beispiel&#8220; ist der Name des neuen Repository. Diesen sollten Sie sinnvoll ausw&auml;hlen, da Sie ihn f&uuml;r alle weiteren Zugriffe ben&ouml;tigen. Die beiden letzten Elemente, avendor und arelease, sind zwar erforderlich, haben aber in diesem Zusammenhang keine wichtige Bedeutung und werden daher nicht weiter erl&auml;utert. CVS antwortet wie folgt (einger&uuml;ckte Zeilen sind Fortsetzungen der vorherigen Zeile):<\/p>\n<pre>cvs import: cwd=C:\\\\cvstest, \n    current=C:\\\\cvstest\nN Beispiel\/Beispiel.txt\nNo conflicts created by this import<\/pre>\n<p>Das N vor der Angabe der Beispieldatei signalisiert, dass es sich um eine neue Datei handelt.<\/p>\n<h2>Dateien auschecken<\/h2>\n<p>Zum Auschecken von Dateien, also zum Anlegen einer Kopie der aktuellsten Version der kompletten Struktur, dient folgende Anweisung:<\/p>\n<pre>csv checkout CVSBeispiel<\/pre>\n<p>Die Anweisung legt &#8211; soweit nicht vorhanden &#8211; ein Arbeitsverzeichnis mit dem Namen des Moduls im aktuellen Verzeichnis an und kopiert dort die komplette Struktur des aktuellen Standes hinein.<\/p>\n<p>Mit dem folgenden Schalter k&ouml;nnen Sie alle Dateien eines bestimmten Versionsstandes in das Arbeitsverzeichnis auschecken:<\/p>\n<pre>cvs checkout -r &lt;Version&gt; CVSBeispiel<\/pre>\n<h3>Praxis-Tipp<\/h3>\n<p>CVS legt beim Checkout standardm&auml;&szlig;ig ein neues Verzeichnis in dem aktuellen Verzeichnis mit dem Namen des Moduls an. Um die Arbeitskopie in einem individuellen Verzeichnis anzulegen, verwenden Sie einfach den Schalter -d &lt;Verzeichnis&gt;. <\/p>\n<p>Ganz besonders wichtig f&uuml;r das Auschecken von Dateien ist die M&ouml;glichkeit, die Version der ausgecheckten Dateien per Parameter anzugeben. So kann man beispielsweise alle Dateien aus dem Repository in das Arbeitsverzeichnis kopieren lassen, die zu einem bestimmten Datum G&uuml;ltigkeit hatten. Au&szlig;erdem kann man auch zu einem beliebigen Zeitpunkt einen Release-Stand festlegen, der jederzeit wieder abgerufen werden kann.<\/p>\n<h3>Beispiel<\/h3>\n<p>Um bei unserem Beispiel zu bleiben, checken wir die ins Repository importierte Datei direkt einmal aus. Ohne diesen Schritt k&ouml;nnen Sie die Datei zwar bearbeiten, aber die Datei nicht mit dem Repository abgleichen (in einer Zeile):<\/p>\n<pre> C:\\\\cvstest&gt;cvs -d :local:h:\/cvsrepository checkout -d c:\\\\cvstest Beispiel<\/pre>\n<p>CVS gibt folgende Meldung zur&uuml;ck und best&auml;tigt damit, dass ein Update auf dem Verzeichnis erfolgt ist (erkennbar an dem Buchstaben U vor dem Dateinamen):<\/p>\n<pre>cvs checkout: cwd=C:\\\\cvstest,    current=C:\\\\cvstest\ncvs checkout: Updating c:\\\\cvstest\nU c:\\\\cvstest\/Beispiel.txt<\/pre>\n<h2>Dateien updaten<\/h2>\n<p>Wenn mehrere Entwickler an einem Projekt arbeiten, kann es sein, dass Entwickler A eine Datei des Projekts &auml;ndert und seine Version in das Repository &uuml;berf&uuml;hrt hat.<\/p>\n<p>Damit nun nicht Entwickler B zuf&auml;llig &auml;nderungen an der gleichen Datei durchf&uuml;hrt, diese zum Repository &uuml;bertr&auml;gt und damit eventuell die &auml;nderungen von Entwickler A verwirft, gibt es die Update-Anweisung.<\/p>\n<p>Damit gleicht Entwickler B seine Version mit der aktuellen Version im Repository ab, wobei die &auml;nderungen aus der Version des Repositorys auf die Version von Entwickler B im Arbeitsverzeichnis &uuml;bertragen werden &#8211; aber auch nur die &auml;nderungen.<\/p>\n<p>Entwickler B kann dann die neue Version mit den eigenen &auml;nderungen und denen von Entwickler A ins Repository einchecken. Und wenn zuf&auml;llig mal beide an der gleichen Stelle im Code gearbeitet haben (was im &uuml;brigen von einer schlechten Absprache zeugt) muss Entwickler B den Konflikt manuell beheben und die richtige Version ins Repository &uuml;bertragen.<\/p>\n<p><IMG height=\"175\" src=\"..\/fileadmin\/_temp_\/{C1209DCA-F519-4B22-8F5E-B62933D4C107}\/pic003.png\" width=\"469\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b>Abb. 3: Ge&auml;nderte Textdatei<\/b><\/p>\n<p>Dem Access-Entwickler, der in der Regel als Einzelk&auml;mpfer auftritt, wird dies aber vermutlich eher selten passieren.<\/p>\n<h3>Beispiel<\/h3>\n<p>F&uuml;r ein Update-Beispiel &auml;ndern Sie den Inhalt der Datei Beispiel.txt im Verzeichnis c:\\\\cvstest, indem Sie einfach eine Zeile hinzuf&uuml;gen (s. Abb. 3).<\/p>\n<p>Anschlie&szlig;end setzen Sie vom Arbeitsverzeichnis aus folgende Anweisung ab:<\/p>\n<pre>C:\\\\cvstest&gt;cvs update<\/pre>\n<p>CVS zeigt den Update-Vorgang an und kennzeichnet die Beispieldatei mit dem Buchstaben M als &#8222;modified&#8220;.<\/p>\n<pre>cvs update: Updating .\nM Beispiel.txt<\/pre>\n<p>Damit ist die &auml;nderung aber noch nicht ins Repository &uuml;bertragen. Dazu ben&ouml;tigen Sie noch eine weitere Anweisung, die Sie im n&auml;chsten Abschnitt kennen lernen.<\/p>\n<h3>Hinweis<\/h3>\n<p>M&ouml;glicherweise wundern Sie sich, dass die Angabe der Verbindungseigenschaften und des Repository fehlen. Der Grund ist, dass Sie sich gerade in einem Arbeitsverzeichnis befinden, und dort hat CVS ein zus&auml;tzliches Verzeichnis namens CVS angelegt. Es enth&auml;lt alle notwendigen Informationen, sodass Sie von hier aus alle Anweisungen ohne den Parameter d und die entsprechenden Zugangsanweisungen angeben k&ouml;nnen. <\/p>\n<h2>&auml;nderungen&uuml;bertragen<\/h2>\n<p>Um &auml;nderungen an einer Datei im Arbeitsverzeichnis in das Repository zu bringen, verwenden Sie den Commit-Befehl. Dieser erfolgt am besten im Anschluss an den Aufruf der Update-Anweisung. Mit der &uuml;bertragung der &auml;nderungen legt CVS im Repository einen neuen Versionsstand der ge&auml;nderten Dateien an.<\/p>\n<h3>Beispiel<\/h3>\n<p>Die soeben vorgenommene &auml;nderung haben Sie per &#8222;Update&#8220;-Anweisung bereits markiert, nun soll diese noch ins Repository &uuml;bernommen werden. Dazu verwenden Sie folgende Anweisung:<\/p>\n<pre>C:\\\\cvstest&gt;cvs commit -m \"Zweizeiler\"<\/pre>\n<p>Diese Anweisung &uuml;bertr&auml;gt alle &auml;nderungen ins Repository. Wenn Sie also mehrere Dateien ge&auml;ndert haben, aber nur die &auml;nderungen an einem Teil der Dateien in das Repository &uuml;bertragen m&ouml;chten, geben Sie alle Dateinamen an. Der Parameter m leitet die Angabe der Logmessage f&uuml;r diese Version ein. CVS gibt als Antwort Folgendes aus:<\/p>\n<pre>cvs commit: Examining .\nChecking in Beispiel.txt;\nh:\/cvsrepository\/Beispiel\/Beispiel.txt,v  &lt;--  Beispiel.txt\nnew revision: 1.2; previous revision: 1.1\ndone<\/pre>\n<h2>Historie einer Datei<\/h2>\n<p>CVS speichert Dateien nur beim Import beziehungsweise beim ersten Hinzuf&uuml;gen komplett.<\/p>\n<p>Anschlie&szlig;end notiert es lediglich die Unterschiede zwischen der Originaldatei und der ge&auml;nderten Datei mit; daraus resultiert unter Umst&auml;nden eine enorme Speicherplatzersparnis.<\/p>\n<pre>RCS file: h:\/cvsrepository\/Beispiel\/Beispiel.txt,v\nWorking file: Beispiel.txt\nhead: 1.2\nbranch:\nlocks: strict\naccess list:\nsymbolic names:\n        arelease: 1.1.1.1\n        avendot: 1.1.1\nkeyword substitution: kv\ntotal revisions: 3;     selected revisions: 3\ndescription:\n----------------------------\nrevision 1.2\ndate: 2004\/09\/20 14:31:02;  author: Administrator;  state: Exp;  lines: +1 -0;\nkopt: kv;  commitid: 670414ee9a66f3b;  filename: Beispiel.txt;\nZweizeiler\n----------------------------\nrevision 1.1\ndate: 2004\/09\/20 13:58:54;  author: Administrator;  state: Exp;\nbranches:  1.1.1;\nInitial revision\n----------------------------\nrevision 1.1.1.1\ndate: 2004\/09\/20 13:58:54;  author: Administrator;  state: Exp;  lines: +0 -0;\nNeues Modul\n=============================================================================<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Die Historie einer oder mehrerer Dateien l&auml;sst sich leicht mit der Anweisung &#8222;log&#8220; anzeigen.<\/p>\n<h3>Beispiel<\/h3>\n<p>Nach nur einem Import- und einem Commit-Vorgang ist noch keine besonders umfangreiche Historie vorhanden.<\/p>\n<p>Daher k&ouml;nnen wir diese leicht an dieser Stelle abdrucken. Mit dem folgenden Aufruf zeigen Sie die Historie f&uuml;r alle Dateien des angegebenen Repository an:<\/p>\n<pre>C:\\\\cvstest&gt;cvs log \ncvs log: Logging .<\/pre>\n<p>CVS antwortet mit den Zeilen aus Quellcode 1. Dabei ist die mit revision 1.2 gekennzeichnete Version diejenige, die wir soeben ins Repository &uuml;berf&uuml;hrt haben. Die Angabe lines +1 -0 gibt an, dass eine Zeile hinzugekommen ist und keine gel&ouml;scht wurde.<\/p>\n<h2>Unterschiede zwischenVersionsst&auml;nden<\/h2>\n<p>Oft muss man gar nicht zu einem &auml;lteren Versionsstand zur&uuml;ckkehren, um in der Entwicklung voranzuschreiten: In vielen F&auml;llen reicht es, die &auml;nderungen an einer Datei einzusehen. F&uuml;r diesen Fall bietet CVS die Anweisung diff.<\/p>\n<p>Mit dieser Anweisung kann man die aktuell im Arbeitsverzeichnis befindliche Version einer Datei mit jeder gespeicherten Version vergleichen.<\/p>\n<p>Es ist sogar m&ouml;glich, die &auml;nderungen zwischen zwei im Repository gespeicherten Dateien anzuzeigen.<\/p>\n<h3>Beispiel<\/h3>\n<p>Um die Unterschiede zwischen der im Arbeitsverzeichnis befindlichen Version der Textdatei und beispielsweise der Version 1.1 anzuzeigen, geben Sie im Arbeitsverzeichnis die folgende Anweisung ein:<\/p>\n<pre>C:\\\\cvstest&gt;cvs diff -r1.1 Beispiel.txt<\/pre>\n<p>Die Ausgabe der Unterschiede sieht etwa folgenderma&szlig;en aus. Dabei findet CVS automatisch heraus, dass die Version im Arbeitsverzeichnis mit der Version 1.2 &uuml;bereinstimmt und zeigt die Unterschiede zwischen Version 1.1 und 1.2 an:<\/p>\n<pre>Index: Beispiel.txt\n========================================\nRCS file: h:\/cvsrepository\/Beispiel\/Beispiel.txt,v\nretrieving revision 1.1\nretrieving revision 1.2\ndiff -r1.1 -r1.2\n1a2\n&gt; Mehr Beispieltext<\/pre>\n<p>accessCVS ist eine Schnittstelle f&uuml;r die Verwendung von CVS mit Access. Es verwendet die in den vorhergehenden Abschnitten vorgestellten Techniken zur Verwaltung der Versionsst&auml;nde f&uuml;r folgende Objekttypen:<\/p>\n<li>Abfragen<\/li>\n<li>Formulare<\/li>\n<li>Berichte<\/li>\n<li>Makros<\/li>\n<li>Module<\/li>\n<h3>Hinweis<\/h3>\n<p>Da accessCVS st&auml;ndig weiterentwickelt wird und Sie hier keine Dokumentation vorfinden sollen, die beim Erscheinen des Beitrags schon nicht mehr aktuell ist, drucken wir an dieser Stelle keine Beschreibung der Anwendung ab. Damit Sie st&auml;ndig mit der aktuellen Version des Tools und einer entsprechenden Dokumentation arbeiten k&ouml;nnen, bieten wir beides unter http:\/\/www.accesscvs.de zum Download an. <\/p>\n<h2>Behandlung von Tabellen<\/h2>\n<p>In der oben aufgef&uuml;hrten Liste der Objekte, die man mit CVS verwalten kann, fehlen die Tabellen. Der Grund ist, dass Access Tabellen nicht in einer Art und Weise exportieren kann, die eine Verwaltung in CVS sinnvoll macht. Alternativ sollte man die Tabellen in ein Backend ausgliedern und dieses Backend separat mit CVS verwalten. So kann man zu jedem Release die derzeit g&uuml;ltige Fassung des Datenmodells per Backend versionieren.<\/p>\n<h2>Technische Hintergr&uuml;nde<\/h2>\n<p>Wenn Sie auch an dieser Stelle keine Beschreibung der kompletten L&ouml;sung finden, m&ouml;chten wir auf einige technische Besonderheiten hinweisen.<\/p>\n<p>CVS arbeitet normalerweise so, dass nach dem erstmaligen Speichern der Dateien eines Projekts zun&auml;chst ein &#8222;Checkout&#8220; in ein Arbeitsverzeichnis erfolgen muss. Der Entwickler arbeitet im Folgenden mit der in diesem Arbeitsverzeichnis abgelegten Version des Projekts.<\/p>\n<p>Wenn er die vorgenommenen &auml;nderungen an das Repository &uuml;bermitteln m&ouml;chte, &uuml;berpr&uuml;ft er zun&auml;chst per &#8222;Update&#8220;-Anweisung, ob nicht zuf&auml;llig ein anderer Entwickler an den gleichen Dateien gearbeitet hat und eventuell Konflikte zu l&ouml;sen sind. Erst dann kann er mit der &#8222;Commit&#8220;-Anweisung die vorgenommenen &auml;nderungen ins Repository &uuml;berf&uuml;hren.<\/p>\n<p>Will man CVS mit Access anwenden, kommt noch ein Schritt hinzu, denn prinzipiell ist ja Access auch eine Art &#8222;Repository&#8220;. Dort gilt es zun&auml;chst, die mit CVS zu verwaltenden Daten zu exportieren.<\/p>\n<p>Zum Gl&uuml;ck gibt es dort zwei undokumentierte Funktionen, mit denen Abfragen, Formulare, Berichte, Makros und Module im Textformat exportiert und wieder importiert werden k&ouml;nnen. Die beiden n&uuml;tzlichen Helfer hei&szlig;en SaveAsText und LoadFromText und ihr Aufruf sieht beispielsweise folgenderma&szlig;en aus:<\/p>\n<pre>Application.SaveAsText acModule, \"mdlTest\", \"c:\\\\mdlText.txt\"<\/pre>\n<p>Diese Anweisung speichert den Inhalt des Moduls mdlText in eine Datei namens mdlText.txt im Verzeichnis c:\\\\. Genau andersherum arbeitet die Methode LoadFromText.<\/p>\n<p>Mit diesen beiden Methoden bewaffnet kann man die gew&uuml;nschten Datenbankobjekte im Textformat im Arbeitsverzeichnis speichern und sie von dort aus mit den entsprechenden CVS-Anweisungen mit dem Inhalt des Repository abgleichen.<\/p>\n<p>Wenn man einen fr&uuml;heren Versionsstand als den aktuellen wiederherstellen m&ouml;chte, macht man die entsprechenden Dateien per &#8222;Checkout&#8220;-Anweisung im Arbeitsverzeichnis verf&uuml;gbar; von dort greift sich die Access-Anwendung diese per &#8222;LoadFromText&#8220;-Befehl.<\/p>\n<h2>Automatisierung ist Trumpf<\/h2>\n<p>Sie k&ouml;nnen die Versionsverwaltung von Access-Objekten nat&uuml;rlich von Hand erledigen, aber dann werden Sie wahrscheinlich mehr Zeit mit dem Dos-Prompt als mit dem VBA-Editor verbringen.<\/p>\n<p>Deshalb versucht accessCVS, Ihnen einen Gro&szlig;teil der Arbeit abzunehmen und die Versionsverwaltung weitgehend automatisiert zu erledigen.<\/p>\n<p> Sprich: Sie k&ouml;nnen beispielsweise mit wenigen Mausklicks einen neuen Versionsstand der aktuellen Fassung der Datenbankobjekte im Repository unterbringen oder einen bestimmten dort gespeicherten Stand in der Datenbank wiederherstellen.<\/p>\n<p>Die Realisierung enth&auml;lt einige Stolpersteine. Damit aus der Kommunikation der Anwendung mit CVS keine Einbahnstra&szlig;e wird, ist es n&ouml;tig, die Antworten von CVS auf die abgesetzten Anweisungen auszuwerten. Da CVS ein Kommandozeilentool ist, sendet es alle Ausgaben an den DOS-Prompt.<\/p>\n<p>Von dort wollen diese Informationen erst mal nach Access gelangen. Mit Hilfe einiger API-Funktionen (unter anderem CreateProcess) kann man die Ausgabe direkt in eine Variable umleiten.<\/p>\n<p>Anschlie&szlig;end m&uuml;ssen die Antworten von CVS so ausgewertet werden, dass sich ein Erfolg oder Misserfolg der abgesetzten Anweisungen ablesen l&auml;sst.<\/p>\n<p>Weitere Informationen zu der Vorgehensweise finden Sie in der Dokumentation zum Download unter http:\/\/www.accesscvs.de. <\/p>\n<p>Wer sich auch au&szlig;erhalb von Access mit CVS besch&auml;ftigen m&ouml;chte und kein Kommandozeilen-Freund ist, kann sich im Internet unter http:\/\/www.wincvs.org das Tool WinCVS herunterladen. Es ist Explorer-&auml;hnlich aufgebaut und erm&ouml;glicht die men&uuml;gesteuerte Bedienung von CVS.<\/p>\n<p>Und lernen k&ouml;nnen Sie durch die Benutzung dieses Tools auch noch: WinCVS zeigt alle per Men&uuml;befehl oder Schaltfl&auml;che aufgerufenen CVS-Anweisungen mit allen Parametern an und pr&auml;sentiert zus&auml;tzlich auch die jeweiligen Antworten von CVS. <\/p>\n<p>Der Beitrag liefert einen &uuml;berblick &uuml;ber die M&ouml;glichkeiten von CVS und zeigt auf, wie sich diese in Kooperation mit Microsoft Access einsetzen lassen.<\/p>\n<p>Unter http:\/\/www.accesscvs.de finden Sie alles, was unter den Bereich Ausblick f&auml;llt: n&auml;mlich die Umsetzung der hier vorgestellten M&ouml;glichkeiten in Form einer Erweiterung von Access, mit der Sie Access-Datenbankobjekte mit wenigen Mausklicks einer Versionsverwaltung zuf&uuml;hren k&ouml;nnen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Beim Thema Versionsverwaltung f&auml;llt dem Anwender von Microsoft-Entwicklerprodukten erstmal Visual Source Safe ein. Wenn man &uuml;ber den Tellerrand schaut, finden sich dort einige vor allem aus der Unix-Welt stammende Produkte, allen voran CVS (Concurrent Version System). Der vorliegende Beitrag stellt die Grundlagen zu diesem System vor und klopft ab, inwieweit es sich zur Kooperation mit Microsoft Access bewegen l&auml;sst.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662004,66052004,44000027],"tags":[],"class_list":["post-55000236","post","type-post","status-publish","format-standard","hentry","category-662004","category-66052004","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Versionsverwaltung mit Access und CVS - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Versionsverwaltung mit Access und CVS\" \/>\n<meta property=\"og:description\" content=\"Beim Thema Versionsverwaltung f&auml;llt dem Anwender von Microsoft-Entwicklerprodukten erstmal Visual Source Safe ein. Wenn man &uuml;ber den Tellerrand schaut, finden sich dort einige vor allem aus der Unix-Welt stammende Produkte, allen voran CVS (Concurrent Version System). Der vorliegende Beitrag stellt die Grundlagen zu diesem System vor und klopft ab, inwieweit es sich zur Kooperation mit Microsoft Access bewegen l&auml;sst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-10T14:47:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-19T08:18:26+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/bf571190d1124ee8b74163ae69a64450\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"17\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Versionsverwaltung mit Access und CVS\",\"datePublished\":\"2023-02-10T14:47:37+00:00\",\"dateModified\":\"2024-02-19T08:18:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/\"},\"wordCount\":3159,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/bf571190d1124ee8b74163ae69a64450\",\"articleSection\":[\"2004\",\"5\\\/2004\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/\",\"name\":\"Versionsverwaltung mit Access und CVS - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/bf571190d1124ee8b74163ae69a64450\",\"datePublished\":\"2023-02-10T14:47:37+00:00\",\"dateModified\":\"2024-02-19T08:18:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/bf571190d1124ee8b74163ae69a64450\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/bf571190d1124ee8b74163ae69a64450\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/versionsverwaltung_mit_access_und_cvs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Versionsverwaltung mit Access und CVS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Versionsverwaltung mit Access und CVS - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/","og_locale":"de_DE","og_type":"article","og_title":"Versionsverwaltung mit Access und CVS","og_description":"Beim Thema Versionsverwaltung f&auml;llt dem Anwender von Microsoft-Entwicklerprodukten erstmal Visual Source Safe ein. Wenn man &uuml;ber den Tellerrand schaut, finden sich dort einige vor allem aus der Unix-Welt stammende Produkte, allen voran CVS (Concurrent Version System). Der vorliegende Beitrag stellt die Grundlagen zu diesem System vor und klopft ab, inwieweit es sich zur Kooperation mit Microsoft Access bewegen l&auml;sst.","og_url":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/","og_site_name":"Access im Unternehmen","article_published_time":"2023-02-10T14:47:37+00:00","article_modified_time":"2024-02-19T08:18:26+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/bf571190d1124ee8b74163ae69a64450","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"17\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Versionsverwaltung mit Access und CVS","datePublished":"2023-02-10T14:47:37+00:00","dateModified":"2024-02-19T08:18:26+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/"},"wordCount":3159,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/bf571190d1124ee8b74163ae69a64450","articleSection":["2004","5\/2004","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/","url":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/","name":"Versionsverwaltung mit Access und CVS - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/bf571190d1124ee8b74163ae69a64450","datePublished":"2023-02-10T14:47:37+00:00","dateModified":"2024-02-19T08:18:26+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/bf571190d1124ee8b74163ae69a64450","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/bf571190d1124ee8b74163ae69a64450"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/versionsverwaltung_mit_access_und_cvs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Versionsverwaltung mit Access und CVS"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000236"}],"version-history":[{"count":1,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000236\/revisions"}],"predecessor-version":[{"id":88075294,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000236\/revisions\/88075294"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}