Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version jetzt bestellen
* versandkostenfrei in (D) und (A)
Pfeil 7 Rails-Projekte erstellen
  Pfeil 7.1 Generieren eines Rails-Projektes
  Pfeil 7.2 Verzeichnisstruktur einer Rails-Applikation
  Pfeil 7.3 Namenskonventionen
  Pfeil 7.4 Datenbank-Konfiguration
  Pfeil 7.5 Umgebungseinstellungen
  Pfeil 7.6 Generatoren
  Pfeil 7.7 Rails-Konsole
  Pfeil 7.8 Lokaler Server
  Pfeil 7.9 Logging
  Pfeil 7.10 Debugging
  Pfeil 7.11 Rake
  Pfeil 7.12 EdgeRails
  Pfeil 7.13 Ein Rails-Projekt in Subversion überführen


Rheinwerk Computing - Zum Seitenanfang

7.13 Ein Rails-Projekt in Subversion überführen  Zur nächsten ÜberschriftZur vorigen Überschrift

Repository

Versionsverwaltung wird in der Softwareentwicklung nicht nur zur Versionierung eingesetzt, sondern auch, um den gemeinsamen Zugriff mehrerer Programmierer auf den Quelltext der einzelnen Dateien zu steuern. Das heißt, das Versionsverwaltungs-Tool erfasst alle Änderungen an den Dateien mit Zeitstempel und Benutzerkennung und verwaltet sie im sogenannten Repository . So wird gewährleistet, dass jeder mit dem aktuellen Stand arbeitet, bei Bedarf aber jederzeit auch auf einen älteren Stand zurückgreifen kann.

Die Versionsverwaltung bietet für die Softwareentwicklung folgende Vorteile:

  • Protokollierung der Änderungen:
    Jeder kann jederzeit nachvollziehen, wer für welche Änderung verantwortlich ist und wann die Änderung vorgenommen wurde.
  • Wiederherstellung älterer Versionen:
    Versehentliche Änderungen können so wieder rückgängig gemacht werden.
  • Koordinierung des gemeinsamen Zugriffs:
    Beim Update wird kontrolliert, ob es in der lokalen Arbeitskopie eine Version dieser Datei gibt, die noch nicht in das System übertragen und im gleichen Bereich geändert wurde. Wenn ja, macht das System darauf aufmerksam. Diese sogenannten Konflikte müssen manuell gelöst werden.
  • Archivierung von Releaseständen (Tags):
    Fertiggestellte Releases können als Gesamtheit archiviert und somit immer wieder geladen werden.
  • Entwicklung mehrerer Entwicklungszweige (Branches):
    Durch das Auslagern in einen Entwicklungszweig kann gleichzeitig an mehreren Releaseversionen gearbeitet werden. Beim Zusammenführen mit der Hauptversion unterstützt das System die Entwickler.

SVN

Wir setzen für unsere Projekte die Versionsverwaltung Subversion (SVN) ein. Voraussetzung, um SVN nutzen zu können, ist ein SVN-Repository auf Ihrem Server. Im Abschnitt 18.2.4 wird gezeigt, wie ein Subversion-Repository auf einem Server installiert wird.


Rheinwerk Computing - Zum Seitenanfang

Ein Rails-Projekt in Subversion importieren  Zur nächsten ÜberschriftZur vorigen Überschrift

Nehmen wir an, Sie möchten ein Rails-Projekt mit dem Namen railsair erstellen und in Subversion importieren:

Wir erstellen das Projekt in einem temporären Verzeichnis (tmp_svn).

mkdir tmp_svn
cd tmp_svn
# Nur wenn Projekt noch nicht erstellt worden ist.
rails railsair

Falls Sie bereits vorher das Rails-Projekt generiert haben (siehe Kapitel »Test-Driven Development«), so verschieben Sie einfach Ihr Projekt in das temporäre Verzeichnis tmp_svn.

Verzeichnis- struktur

In Subversion ist es üblich, dass die Projekte folgende Verzeichnisstruktur besitzen:

  1. Trunk (dt. Stamm):
    Hier befindet sich Ihr Rails-Projekt in der aktuellen Version.
  2. Tags (dt. Markierung):
    Hier befinden sich ältere, in sich abgeschlossene Versionen Ihres Projekts, die mit einem Namen gekennzeichnet sind (Releases, zum Beispiel: version_1.0.4)
  3. Branches (dt. Verzweigungen):
    Hier werden alternative Entwicklungspfade Ihres Projektes verwaltet.

Wir werden die Verzeichnisse branches und tags anlegen und das Verzeichnis des Rails-Projektes in trunk umbenennen:

mkdir branches
mkdir tags
mv railsair trunk

Bevor wir das Projekt in das Repository einchecken, löschen bzw. leeren wir überflüssige Log- und tmp -Dateien, da diese nicht im Repository benötigt werden. Dazu können wir die Rake-Tasks rake tmp:clear und rake log:clear verwenden:

cd trunk
rake tmp:clear
rake log:clear

svn import

Wir können nun mit dem Befehl svn import unser Projekt in das Repository überführen. Wechseln Sie dazu in das Verzeichnis tmp_svn (überprüfen Sie, ob Sie beim Ausführen des Befehls ls keine Fehlermeldung erhalten), und verwenden Sie den Befehl svn import, um das Projekt in das Subversion-Repository zu überführen.

cd ..
ls
  branches tags trunk
svn import url_des_repository -m 'Import des Railsprojekts'

Die URL des Repository kann z. B. wie folgt aussehen:

  • http://domain/railsair
  • https://domain/railsair
  • svn+ssh://deploy@domain/srv/svn/railsair

Wenn Sie keine Fehlermeldung erhalten, können Sie das Verzeichnis tmp_svn löschen. Wir empfehlen jedoch, damit zu warten, bis der erste Check-out des Projektes aus dem Repository erfolgreich war.


Rheinwerk Computing - Zum Seitenanfang

Ein Rails-Projekt aus Subversion auschecken  Zur nächsten ÜberschriftZur vorigen Überschrift

svn checkout

Wechseln Sie in das Verzeichnis, in dem Ihr Rails-Projekt liegen soll, und verwenden Sie den Subversion-Befehl svn checkout, um das Projekt auszuchecken. Achten Sie darauf, dass Sie das trunk -Verzeichnis angeben, da sich dort unsere Projektdateien befinden. Anschließend wechseln Sie in das Projektverzeichnis.

cd ~/railsprojekte
svn checkout url_des_repository/trunk railsair
cd railsair

Rheinwerk Computing - Zum Seitenanfang

Ignorieren von Dateien  topZur vorigen Überschrift

svn propset svn:ignore

Damit geänderte oder neue Dateien aus dem tmp - und log -Verzeichnis nicht in das Repository übertragen werden, müssen wir Subversion mitteilen, dass diese ignoriert werden sollen:

svn propset svn:ignore '*.log' log
svn propset svn:ignore '*' tmp/cache
svn propset svn:ignore '*' tmp/pids
svn propset svn:ignore '*' tmp/sessions
svn propset svn:ignore '*' tmp/sockets

Wenn Sie SQLite3-Datenbanken verwenden, können Sie die Dateien db/*.sqlite3 ignorieren, da diese in der Regel nur temporär zur Entwicklung benötigt werden. Auf dem Server wird meistens MySQL, PostgreSQL oder ein anderes Datenbanksystem verwendet.

svn propset svn:ignore '*.sqlite3' db

Zuletzt können Sie noch einige Dateien bzw. Verzeichnisse im Verzeichnis doc ignorieren.

Da diese sich gemeinsam mit nicht zu ignorierenden Dateien im selben Verzeichnis befinden, müssen Sie hier etwas anders vorgehen. Wir verwenden den Befehl svn probedit, der ein

Editor-Fenster (in der Regel der vi-Editor) öffnet, in dem Sie pro Zeile eine zu ignorierende Datei angeben können.

svn propedit svn:ignore doc
# folgende Zeilen im Editor eingeben
# (im VI-Editor
i eingeben zum Starten der Eingabe)
app
api
# anschließend speichern und Editor verlassen
# (ESC :wq  beim VI-Editor)

svn commit

Mit dem Befehl svn commit übertragen wir diese Änderungen in das Subversion-Repository:

svn commit -m "ignoriere Dateien"

Über den Parameter -m geben wir an, welche Änderungen mit einem commit übertragen wurden. Dadurch ist es uns später immer wieder möglich nachzuvollziehen, was bei dieser Änderung geändert wurde.

Ignorieren der database.yml
Aus Sicherheitsgründen kann es sinnvoll sein, die Datenbankkonfigurationsdatei database.yml nicht mit in das Repository zu übertragen. Stattdessen können Sie eine Beispieldatei mit dem Namen database.yml.example erstellen und diese übertragen. Da am Anfang die database.yml noch keine geheimen Daten enthält, können Sie diese dafür umbenennen. Außerdem müssen Sie noch festlegen, dass die Datenbankkonfigurationsdatei ignoriert werden soll:
svn mv config/database.yml config/database.yml.example
svn propset svn:ignore "database.yml" config/
svm commit config -m "database.yml wird ignoriert."

Denken Sie daran, beim Auschecken des Projektes aus dem Subversion-Repository die Datei database.yml wiederherzustellen. Wenn Sie das Projekt mit dem Deployment-Tool Capistrano auf Ihrem Webserver installieren, ist es notwendig, dass ein entsprechender Deploy-Task diesen Vorgang automatisiert durchführt. Siehe Kapitel 18.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
  Zum Katalog
Zum Katalog: Ruby on Rails 2
Ruby on Rails 2
Jetzt bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de