Lägg till ny kommentar
Drupal subversionförrådet
Transmachina har byggt och underhåller ett antal Drupal-baserade webbplatser. På grund av aktivt community, uppdateringar till både kärnan Drupal koden och modulerna kommer ofta och kan ta mycket tid att hålla en Drupal installation up-to-date och säkra. Som ett resultat har Transmachina utvecklat en subversionförrådet för att spåra Drupal utsläpp och har beslutat att göra denna öppen för öppen källkod. Förvaret finns på http://svn-drupal.transmachina.net/ och kan läsas med anonym åtkomst. För närvarande alla uppdateringar utförs av Transmachina personal, men vi skulle vara intresserade av frivilliga i samhället för att hjälpa till med denna process. /admin / logs / status eller genom att titta i / modules / drupal / drupal.info på raden som börjar "version ="
Vad vi gör
Varje gång en ny version av Drupal görs hämta vi källan och använder subversion: s svn_load_dirs skript för att uppdatera vår 5.x "nuvarande" release kod för att den nya versionen. Skriptet lägger automatiskt nya filer, bort tappade ettor och uppdateringar befintliga filer. Den "diff" lagras i subversion på ett effektivt sätt. Med ett verktyg som TortoiseSVN kan du snabbt se en översikt av förändringar som gjorts under varje release. Vi lägger också en kopia av utsättningen som helhet / trunk/drupal/5.10 till exempel.Hur använder jag det?
Starta ett nytt Drupal projekt
- Exportera den senaste versionen från arkivet, svn export http://svn-drupal.transmachina.net/trunk/drupal/5.x mydrupal (detta kommer att skapa en lokal mapp "mydrupal" som du redigerar lokalt.
- Tillsätt mydrupal mappen i din version styrsystem (något bör fungera), till exempel svn lägga mydrupal sedan svn commit mydrupal-m "Lägga till ny fräsch Drupal installation för myproject"
- Du kan nu installera nya moduler, och även göra ändringar i centrala drupal filer (du borde verkligen vet vad du gör när du ändrar core-filer)
- Du bör regelbundet bekräfta förändringarna tillbaka till din källa styrsystemet, så att du kan spåra ändringar du gör och "rulla tillbaka" de ändringar om du bryter något.
- När en ny version av Drupal släpps, kommer vi att uppdatera vårt arkiv. Du kan sedan uppdatera din lokala Drupal projekt (utan att förlora din lokala tweaks till Drupal core) genom att köra:
svn merge http://svn-drupal.transmachina.net/trunk/drupal/
Du bör bytahttp://svn-drupal.transmachina.net/trunk/drupal/5.x mydrupal med den version av Drupal som du för tillfället använder säger "5,10". Detta förfarande kontrollera Transmachina slutförvaret för alla ändringar från din version av Drupal till den senaste versionen, och patchar din arbetskopia med de Diffs. - Du bör testa uppgraderingen lokalt och sedan begå ändringarna tillbaka till din version styrsystem.
- Du har uppgraderat Drupal kärnan utan att förlora några lokala ändringar!
Uppgradering av befintlig Drupal projekt
Om du redan kör Drupal och vill helt enkelt uppgradera till den senaste versionen utan att förlora dina lokala ändringar, som är lätt för! Du bör nog begå alla lokala ändringar tillbaka till förvaret och tagga lanseringen så att du lätt kan rollback i händelse av ett misstag i följande steg.- Helt enkelt köra:
svn merge http://svn-drupal.transmachina.net/trunk/drupal/
Du bör bytahttp://svn-drupal.transmachina.net/trunk/drupal/5.x mydrupal med den version av Drupal som du för tillfället använder säga "5,10".
Mer detaljer
Uppdatera slutförvaret
För dem som är intresserade har vi utvecklat ett enkelt skript för att uppdatera vårt Subversion-förråd snabbt efter varje drupal frigivning.#!/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"
Uppdatera en arbetskopia
Vi har ett script för att uppdatera alla våra arbetsmetoder exemplar också:#!/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 $2När du först får detta går, kan det vara värt att köra med - dry-run rad i stället. Detta alternativ kommer att skriva ut alla de förändringar som kommer göras för att din arbetskopia utan att egentligen ändra någonting. Om det finns fler än ca 40 uppdateringar och 3-4 konflikter något som antagligen har gått fel. Om sammanslagningen gör en röra av din arbetskopia, kan du försöka
svn revert -R mydrupalatt rekursivt återställa alla lokala ändringar tillbaka till den senaste gången du förpliktigad till slutförvaret. I dig värsta fall kan du använda TortoiseSVN (endast på Windows tyvärr) för att rulla tillbaka en hel installation till en tidigare revision - det i princip inte de senaste anvisade förändringarna i omvänd.
