Entwicklerhandbuch/Delixs-SVN: Unterschied zwischen den Versionen
Hjg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Hjg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 78: | Zeile 78: | ||
Es sei vorausgesetzt, dass wir über ein Delixs-Paket verfügen, das bislang an anderer Stelle erzeugt, bearbeitet und in das Paket-Repository des Entwicklerservers hochgeladen wurde. | Es sei vorausgesetzt, dass wir über ein Delixs-Paket verfügen, das bislang an anderer Stelle erzeugt, bearbeitet und in das Paket-Repository des Entwicklerservers hochgeladen wurde. | ||
Wir arbeiten hier beispielhaft mit dem Paket 'delixs-acl-quota' . | |||
=== Paket bereinigen und kopieren === | |||
Wenn dieses Paket in das SVN übertragen werden soll, muss es erst noch bereinigt und etwas 'in Form' gebracht werden; außerdem sollte solch ein SVN-Prpjektverzeichnis eine gewisse Struktur aufweisen, damit später einfacher mit verschiedenen Paketversionen gearbeitet werden kann. | Wenn dieses Paket in das SVN übertragen werden soll, muss es erst noch bereinigt und etwas 'in Form' gebracht werden; außerdem sollte solch ein SVN-Prpjektverzeichnis eine gewisse Struktur aufweisen, damit später einfacher mit verschiedenen Paketversionen gearbeitet werden kann. | ||
Diese Arbeiten erledigt für uns das Tool 'svn-deb-prep.sh' | Diese Arbeiten erledigt für uns das Tool 'svn-deb-prep.sh'. | ||
Wir wechseln in unser SVN-Arbeitsverzeichnis und rufen dort das Programm auf. Als Parameter übergeben wir den Pfad zum bisherigen Paket-Arbeitsverzeichnis: | |||
cd ~/delixs-svn | cd ~/delixs-svn | ||
Zeile 88: | Zeile 94: | ||
Wir erhalten diese Ausgabe: | |||
Analyzing Debian package path: '~/pakete/acl/delixs-acl-quota-0.5' ... | Analyzing Debian package path: '~/pakete/acl/delixs-acl-quota-0.5' ... | ||
Zeile 100: | Zeile 108: | ||
svn commit -m 'Initial upload' | svn commit -m 'Initial upload' | ||
Wir prüfen, ob das Tool richtig gearbeitet hat, und finden in unserem SVN-Verzeichnis neben den vorhin heruntergeladenen Projektverzeichnissen nun auch unser neues Verzeichnis 'delixs-acl-quota'. | |||
│ | |||
├── delixs-acl-quota | |||
│ ├── tags | |||
│ └── trunk | |||
│ └── debian | |||
│ ├── changelog | |||
│ ├── compat | |||
│ ├── control | |||
│ ├── copyright | |||
│ ├── dirs | |||
│ ├── docs | |||
│ ├── postinst | |||
│ ├── prerm | |||
│ ├── README | |||
│ ├── README.Debian | |||
│ └── rules | |||
│ | |||
Wir erkennen hier die grundsätzliche Struktur eines SVN-Projektverzeichnisses: | |||
Auf der ersten Ebene liegen die Verzeichnisse 'tags' und 'trunk'. Das 'tags'-Verzeichnis können wir zunächst ignorieren (wir kommen später noch darauf zurück) und widmen uns dem 'trunk'. | |||
Das 'trunk'-Verzeichnis ist das Verzeichnis im SVN, das die aktuelle Hauptversion eines Projekts enthält. Alle Arbeiten der Team-Mitglieder, die an diesem Paket arbeiten, werden im 'trunk'-Verzeichnis zusammengeführt. | |||
Man sieht dort die Dateien, die wir für unser Paket 'delixs-acl-quota' angelegt und bearbeitet hatten, allerdings ohne die bisherigen 'debuild'-Ergebnisse (also die *.deb, *.changes usw. Dateien). | |||
=== Paket in das SVN einfügen === | === Paket in das SVN einfügen === | ||
Das Tool hat unser Paket also erfolgreich in das SVN-Arbeitsverzeichnis einkopiert, aber es ist der SVN-Verwaltung noch nicht bekannt gemacht worden. | |||
Den passenden Befehl dazu hat uns das Tool schon angezeigt: | |||
svn add delixs-acl-quota | |||
Hiermit teilen wir dem SVN mit, dass es zukünftig alle Arbeiten im Projektverzeichnis 'delixs-acl-quota' verwalten soll. | |||
Als Ergebnis erhalten wir: | |||
svn add delixs-acl-quota | |||
A delixs-acl-quota | |||
A delixs-acl-quota/trunk | |||
A delixs-acl-quota/trunk/debian | |||
A delixs-acl-quota/trunk/debian/changelog | |||
A delixs-acl-quota/trunk/debian/rules | |||
A delixs-acl-quota/trunk/debian/prerm | |||
A delixs-acl-quota/trunk/debian/docs | |||
A delixs-acl-quota/trunk/debian/README | |||
A delixs-acl-quota/trunk/debian/compat | |||
A delixs-acl-quota/trunk/debian/control | |||
A delixs-acl-quota/trunk/debian/dirs | |||
A delixs-acl-quota/trunk/debian/postinst | |||
A delixs-acl-quota/trunk/debian/copyright | |||
A delixs-acl-quota/trunk/debian/README.Debian | |||
A delixs-acl-quota/tags | |||
Der Befehl durchläuft das gesamte Projektverzeichnis und fügt die Dateien und Verzeichnisse seiner Verwaltungsdatenbank hinzu ('A' = add). | |||
== Der Arbeitszyklus == | == Der Arbeitszyklus == |
Version vom 13. April 2011, 15:07 Uhr
Diese Seite ist momentan eine Baustelle im Zustand: 1
-
0
-
1
-
2
-
3
-
4
Einführung
In dieser Anleitung soll gezeigt werden, wie man debiankonforme Pakete in das Delixs-SVN-Repository einbringt und dort weiterentwickelt.
Bislang hat jeder Entwickler seine Delixs-Pakete einzeln für sich erstellt und das Ergbnis seiner Arbeit alsdann in das Paket-Repository zur allgemeinen Verwendung hochgeladen. Änderungswünsche oder Fehlerkorrekturen werden an den Entwickler herangetragen, der sie in eine neue Version des Pakets einarbeitet und das Resultat wieder ins Repository hochlädt.
Um den Zyklus der Änderungen zu Beschleunigen und das Mitentwickeln für Andere einfacher zu machen, sollten also die Delixs-Pakete zukzessiv in das SVN-Repository auf dem Entwicklerserver ausgelagert werden.
Vorarbeiten
Zunächst installieren wir noch etwas Software, um mit dem SVN und der Paketentwicklung arbeiten zu können:
aptitude install svn-buildpackage libparse-debcontrol-perl
Es werden nun automatisch die notwendigen Programme zur SVN-Verwaltung installiert. Das Programm 'svn-buildpackage' wird später statt des bisherigen 'debuild' eingesetzt werden.
Wir können schon jetzt ein paar Optionen für dieses Programm setzen, indem wir in unserem Home-Verzeichnis eine entsprechende Konfigurationsdatei anlegen.
~/.svn-buildpackage.conf: svn-builder=debuild -uc -us svn-no-links svn-dont-clean svn-noautodch
Zur Erläuterung: Normalerweise würde svn-buildpackage für den Paketbau das Programm 'dpkg-buildpackage' aufrufen; wir haben uns aber schon an den Komfort des Programms 'debuild' gewöhnt, deshalb definieren wir, dass es als Build-Programm herangezogen werden soll. Im obigen Beispiel übergeben wir dem 'debuild' noch zwei Optionen, um das Signieren der Pakete zu unterdrücken; spätestens beim Bauen der endgültigen, ins Paket-Repository hochzuladenden Version sollte aber das Signieren wieder eingeschaltet werden.
Zusätzlich müssen wir noch dafür sorgen, dass wir von einem Betreuer des Entwicklerservers als Nutzer des SVN-Repository eingetragen werden. Der Betreuer wird uns einen Nutzer-Account anlegen und uns die entsprechenden Zugangsdaten zukommen lassen.
Delixs-SVN-Repository auschecken
Im ersten Schritt holen wir uns erst mal den Inhalt des kompletten SVN-Repository, wie es z.Zt. auf dem Entwicklungsserver gespeichert ist. Unser eigenes Paket werden wir dann nahtlos in das Repository einfügen.
mkdir ~/delixs-svn cd ~/delixs-svn svn --username XXX --password YYY co http://dev.delixs.de/wsvn/delixs/ ./
Wir erstellen also in unserem Home-Verzeichnis ein SVN-Arbeitsverzeichnis und wechseln dorthin. Der Befehl 'svn' bekommt als Parameter: --username und --password: das sind die Account-Daten, die wir vom Serverbetreuer erhielten co: steht für 'checkout'; damit wird im SVN-Jargon das Herunterladen eines SVN-Zweigs bezeichnet http://dev.delixs.de/wsvn/delixs/ : ist das SVN-Repository auf den Entwicklungsserver ./ : ist das Zielverzeichnis, in das der SVN-Zweig gespeichert wird
Wir erhalten folgende Verzeichnisstruktur in unserem Arbeitsverzeichnis:
tree -L 1 . ├── delixs ├── delixs-archive-keyring ├── delixs-installer ├── delixs-installer-hjg ├── delixs-installer-thorsten ├── delixs-installer-udeb ├── delixs-netcfg ├── delixs-scripts ├── installer └── svn-tools
In den Unterverzeichnissen befinden sich bereits einige Pakete von anderen Entwicklern.
Uns interessiert aber zunächst nur das Verzeichnis 'svn-tools'. Darin befindet sich das Programm 'svn-deb-prep.sh', das wir in unser lokales Binär-Verzeichnis kopieren, damit wir es später bequem aufrufen können.
cp svn-tools/svn-deb-prep.sh /usr/local/bin
Mit diesem Tool werden wir unsere eingenen Pakete in das SVN umziehen.
Ein Paket ins SVN einpflegen
Es sei vorausgesetzt, dass wir über ein Delixs-Paket verfügen, das bislang an anderer Stelle erzeugt, bearbeitet und in das Paket-Repository des Entwicklerservers hochgeladen wurde.
Wir arbeiten hier beispielhaft mit dem Paket 'delixs-acl-quota' .
Paket bereinigen und kopieren
Wenn dieses Paket in das SVN übertragen werden soll, muss es erst noch bereinigt und etwas 'in Form' gebracht werden; außerdem sollte solch ein SVN-Prpjektverzeichnis eine gewisse Struktur aufweisen, damit später einfacher mit verschiedenen Paketversionen gearbeitet werden kann.
Diese Arbeiten erledigt für uns das Tool 'svn-deb-prep.sh'.
Wir wechseln in unser SVN-Arbeitsverzeichnis und rufen dort das Programm auf. Als Parameter übergeben wir den Pfad zum bisherigen Paket-Arbeitsverzeichnis:
cd ~/delixs-svn svn-deb-prep.sh ~/pakete/acl/delixs-acl-quota-0.5
Wir erhalten diese Ausgabe:
Analyzing Debian package path: '~/pakete/acl/delixs-acl-quota-0.5' ... package name is 'delixs-acl-quota', version is '0.5' Creating svn working directories ... Transfering package data to working dirs ... Your debian package delixs-acl-quota is ready. Next steps: svn add delixs-acl-quota svn commit -m 'Initial upload'
Wir prüfen, ob das Tool richtig gearbeitet hat, und finden in unserem SVN-Verzeichnis neben den vorhin heruntergeladenen Projektverzeichnissen nun auch unser neues Verzeichnis 'delixs-acl-quota'.
│ ├── delixs-acl-quota │ ├── tags │ └── trunk │ └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── dirs │ ├── docs │ ├── postinst │ ├── prerm │ ├── README │ ├── README.Debian │ └── rules │
Wir erkennen hier die grundsätzliche Struktur eines SVN-Projektverzeichnisses:
Auf der ersten Ebene liegen die Verzeichnisse 'tags' und 'trunk'. Das 'tags'-Verzeichnis können wir zunächst ignorieren (wir kommen später noch darauf zurück) und widmen uns dem 'trunk'.
Das 'trunk'-Verzeichnis ist das Verzeichnis im SVN, das die aktuelle Hauptversion eines Projekts enthält. Alle Arbeiten der Team-Mitglieder, die an diesem Paket arbeiten, werden im 'trunk'-Verzeichnis zusammengeführt.
Man sieht dort die Dateien, die wir für unser Paket 'delixs-acl-quota' angelegt und bearbeitet hatten, allerdings ohne die bisherigen 'debuild'-Ergebnisse (also die *.deb, *.changes usw. Dateien).
Paket in das SVN einfügen
Das Tool hat unser Paket also erfolgreich in das SVN-Arbeitsverzeichnis einkopiert, aber es ist der SVN-Verwaltung noch nicht bekannt gemacht worden.
Den passenden Befehl dazu hat uns das Tool schon angezeigt:
svn add delixs-acl-quota
Hiermit teilen wir dem SVN mit, dass es zukünftig alle Arbeiten im Projektverzeichnis 'delixs-acl-quota' verwalten soll.
Als Ergebnis erhalten wir:
svn add delixs-acl-quota A delixs-acl-quota A delixs-acl-quota/trunk A delixs-acl-quota/trunk/debian A delixs-acl-quota/trunk/debian/changelog A delixs-acl-quota/trunk/debian/rules A delixs-acl-quota/trunk/debian/prerm A delixs-acl-quota/trunk/debian/docs A delixs-acl-quota/trunk/debian/README A delixs-acl-quota/trunk/debian/compat A delixs-acl-quota/trunk/debian/control A delixs-acl-quota/trunk/debian/dirs A delixs-acl-quota/trunk/debian/postinst A delixs-acl-quota/trunk/debian/copyright A delixs-acl-quota/trunk/debian/README.Debian A delixs-acl-quota/tags
Der Befehl durchläuft das gesamte Projektverzeichnis und fügt die Dateien und Verzeichnisse seiner Verwaltungsdatenbank hinzu ('A' = add).
Der Arbeitszyklus
Aktualisieren
Paket bearbeiten
Weblinks
Buch 'Versionskontrolle mit Subversion':
Hans-Jürgen Grimminger, 2011