Neuen Kommentar schreiben

Drupal Subversion Repository

Transmachina gebaut hat und unterhält eine Reihe von Drupal-basierte Websites. Durch die aktive Community, kommen Updates für das Kern Drupal-Code und den Modulen häufig und kann eine Menge Zeit in Anspruch nehmen, um eine Drupal-Installation up-to-date und sicher zu halten. Als Ergebnis hat Transmachina ein Subversion-Repository für die Verfolgung von Drupal-Versionen entwickelt und haben beschlossen, um diese offen für die Open Source Community. Das Repository ist verfügbar unter http://svn-drupal.transmachina.net/ und kann mit den anonymen Zugriff gelesen werden. Derzeit sind alle Updates werden durch Transmachina Personal durchgeführt, aber wir würden in Freiwilligen in der Gemeinde interessiert sein zu helfen, mit diesem Prozess.

Was wir tun

Jedes Mal, wenn ein neues Release von Drupal gemacht wird, laden wir die Quelle und nutzen Subversion svn_load_dirs Skript, um unsere 5.x "aktuellen" Freigabe-Code auf diese neue Version zu aktualisieren. Das Skript fügt automatisch neue Dateien, entfernt gesunken Einsen und Updates alle vorhandenen Dateien. Der "Unterschied" wird in Subversion in einer effizienten Art und Weise gespeichert. Mit einem Tool wie TortoiseSVN können Sie schnell eine Übersicht über Veränderungen während jeder neuen Version gemacht. Wir fügen auch eine Kopie der Veröffentlichung als Ganzes in / trunk/drupal/5.10 zum Beispiel.

Wie verwende ich es?

Der Start einer neuen Drupal-Projekt

  • Exportieren Sie die neueste Version aus dem Repository, svn export http://svn-drupal.transmachina.net/trunk/drupal/5.x mydrupal (dies wird einen lokalen Ordner "mydrupal", die Sie bearbeiten lokal erstellen.
  • Fügen Sie den Ordner in euren mydrupal Version Control System (jeder sollte funktionieren), zum Beispiel svn add mydrupal dann svn commit-m mydrupal "Hinzufügen von neuen, frischen Installation für Drupal myproject"
  • Sie können jetzt neue Module, und sogar Änderungen an Core-Dateien Drupal (Sie sollten wirklich wissen, was Sie tun, wenn Sie Core-Dateien ändern)
  • Sie sollten regelmäßig begehen Änderungen zurück auf Ihren Source-Control-System, so dass Sie Änderungen, die Sie und "Rollback" diese Änderungen zu verfolgen, wenn Sie etwas zu brechen.
  • Wenn eine neue Version von Drupal losgelassen wird, aktualisieren wir unsere Repository. Sie können dann Ihre lokale Drupal-Projekt (ohne den Verlust Ihrer lokalen Anpassungen auf der Drupal-Kern), indem Sie:
    svn merge http://svn-drupal.transmachina.net/trunk/drupal/ http://svn-drupal.transmachina.net/trunk/drupal/5.x mydrupal
    Sie sollten ersetzt werden mit der Version von Drupal, dass Sie derzeit sagen, "5,10". Dieses Verfahren überprüfen Sie die Transmachina Repository für alle Änderungen aus Ihrer Version von Drupal auf die aktuelle Version und Patches Ihrer Arbeitskopie mit den Diffs.
  • Sie sollten das Upgrade vor Ort zu testen und dann übernehmen Sie die Änderungen wieder in Ihr System zur Versionskontrolle.
  • Sie haben erfolgreich den Drupal-Kern, ohne dass alle lokalen Änderungen aktualisiert!

Umbau einer vorhandenen Drupal-Projekt

Wenn Sie bereits mit Drupal und wollen einfach auf die neueste Version zu aktualisieren, ohne dass Ihre lokalen Änderungen, das ist leicht zu! Sie sollten wahrscheinlich begehen alle lokalen Änderungen mit Ihrem Repository und kennzeichnen die Freisetzung so dass man leicht Rollback in Falle eines Fehlers in den folgenden Schritten.
  • Führen Sie einfach:
    svn merge http://svn-drupal.transmachina.net/trunk/drupal/ http://svn-drupal.transmachina.net/trunk/drupal/5.x mydrupal
    Sie sollten ersetzt werden mit der Version von Drupal, dass Sie derzeit sagen, "5.10".
Beachten: Sie können die aktuelle Version Ihrer Drupal-Installation, indem Sie entweder die Navigation zu HTTP finden:///admin / logs / Status oder durch einen Blick in / modules / drupal / drupal.info auf der Linie Anfang "version ="

Weitere Details

Aktualisieren des Repositorys

Für diejenigen, die daran interessiert sind, haben wir ein einfaches Skript entwickelt, um unserem Subversion-Repository schnell zu aktualisieren nach jeder Drupal Version.
#!/bin/sh
# $1 drupal version
# the base of the WC
repobase=/home//drupal/trunk

Echo downloading to tmp
# remove file so that it doesn't concat
rm -f /tmp/drupal-$1.tar.gz
# download the relase
wget -O /tmp/drupal-$1.tar.gz http://ftp.drupal.org/files/projects/drupal-$1.tar.gz
# extract contents to tmp folder
tar -C /tmp -xvzf /tmp/drupal-$1.tar.gz

echo Loading diff changes into repos
svn_load_dirs -svn_username  -svn_password  http://svn-drupal.transmachina.net/trunk/drupal/5.x . /tmp/drupal-$1

# and now add that relase as-is into subversion too
echo Copying new release from $1 to location drupal/$1
cp -R -v /tmp/$1 $repobase/drupal/$1

echo Queuing new release files to svn
svn add $repobase/drupal/$1

echo Commiting new release
svn commit $repobase/drupal -m "Adding new drupal release $1"

Aktualisieren einer Arbeitskopie

Wir haben ein Skript zu jedem unserer Arbeitskopien auch aktualisieren:
#!/bin/sh
# $1 drupal version of WC
# $2 location of WC drupal root
#svn merge --dry-run http://svn-drupal.transmachina.net/trunk/drupal/$1 http://svn-drupal.transmachina.net/trunk/drupal/5.x $2
svn merge http://svn-drupal.transmachina.net/trunk/drupal/$1 http://svn-drupal.transmachina.net/trunk/drupal/5.x $2
Dry-run Linie statt - Wenn Sie zuvor das dies geht, kann es sich lohnt, mit dem Laufen sein. Diese Option gibt alle Änderungen, die an Ihrer Arbeitskopie, ohne Änderungen gemacht werden. Wenn es mehr als etwa 40 Updates und 4.3 Konflikte sind wahrscheinlich etwas schief gegangen sein. Wenn der Merge macht ein Chaos von Ihrer Arbeitskopie, können Sie versuchen
svn revert -R mydrupal
rekursiv wieder alle lokalen Änderungen in der letzten Zeit, die Sie verpflichtet in das Repository. Im schlimmsten Fall Sie, können Sie TortoiseSVN (leider nur unter Windows) nutzen, um Rollback zu einer gesamten Installation zu einer früheren Version - im Grunde tut es die letzten engagierten Änderungen in umgekehrter.

Dank

Vielen Dank an David Grant gehen, um herauszufinden, wie dies realisiert werden kann und zur Erläuterung des Verfahrens auf seiner Website http://www.davidgrant.ca/maintaining_vendor_sources_with_subversion

Rückkopplung

Wir hoffen, dass die Community finde es nützlich, und freuen uns über jedes Feedback, das Sie haben, vor allem Vorschläge zur Verbesserung unserer Skripte und Dienst an der Gemeinschaft. Wir planen, Drupal 6.x-Versionen und Module in naher Zukunft hinzu.