WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Synkronisera filer mellan två webbkonton (https://www.wn.se/forum/showthread.php?t=1046707)

coredev 2011-02-22 20:30

Synkronisera filer mellan två webbkonton
 
Hej!

Jag har ett egenutvecklat "CMS" som jag kör på två olika webbservrar för två helt olika sajter. De delar på 90% av kodbasen. Den del av kodbasen de inte delar på ligger i kataloger för sig. För att projekten inte skall spreta iväg så behöver jag ett sätt att hålla bägge uppdaterade - om jag utvecklar i fil X.php på konto A så skulle jag vilja kunna skicka över dessa ändringar till konto B per automatik.

Hur skulle ni göra för att synkronisera förändringar mellan dessa två? Kör ni en liknande setup själva?

Mvh Robert

emilv 2011-02-22 21:01

Skriv ett skript som automatiskt trycker ut ändrade filer från din utvecklingsmiljö till båda produktionsmiljöerna samtidigt.

Anders Karlsson 2011-02-22 22:00

Jag kör med subversion. Testar all kod lokalt på en LAMP och checkar seda in filerna. Har då lagt till ett ftps script som skickar koden till live siten. Detta är enkelt att ändra så att det skickas till 2 live siter.

Du kan antingen köra med branch och merge för de båda siterna eller så kan du ställa in per folder om de ska pushas till den ena eller den andra siten eller båda.

/Anders

Jine 2011-02-23 07:10

En vanlig symlänk?

EDIT: Dumma mig missade att det var OLIKA webbservrar.

KarlRoos 2011-02-23 09:28

Git såklart! Sedan lägger du bara in filerna/mapparna som inte skall commitas i .gitignore.

coredev 2011-02-23 09:36

Tack för tipsen.

Konsensus verkar vara att jag får ta tag i jobbet och sätta upp en dev-server och scripta upp en ftp-överföring...

Gillar idén att scripten ftp:as över när man commitar i git. Hur hookar man det scriptet in i git?

KarlRoos 2011-02-23 09:40

Hookar finns i .git/hooks. Det du borde kan göra är en post-commit hook med ett script som SSH:ar in på den andra servern och gör en git pull.

coredev 2011-02-23 12:36

Citat:

Ursprungligen postat av KarlRoos (Inlägg 20394225)
Hookar finns i .git/hooks. Det du borde kan göra är en post-commit hook med ett script som SSH:ar in på den andra servern och gör en git pull.

Tror jag älskar open source-världen :-)

I kväll blir det installation av Debian 6 / dotdeb på en gammal burk.

iostream 2011-02-23 12:55

Citat:

Ursprungligen postat av KarlRoos (Inlägg 20394225)
Det du borde kan göra är en post-commit hook med ett script som SSH:ar in på den andra servern och gör en git pull.

Så din webbserver har åtkomst till din arbetsstation? Inte jättebra om någon lyckas ta sig in på servern...

Jag skulle skapa en bare repo på servern (git init --bare), lägga till den lokalt som en remote (git remote add web ssh://[email protected]/home/git/mittprojekt.com) och sedan pusha iväg branchen till servern (git push web [master]).

Om man vill checka ut filerna i www-roten kan man köra en post-receive-hook på servern innehållandes
Kod:

GIT_WORK_TREE=/var/www/mittprojekt.com/public_html git checkout -f
eller liknande.


Alla tider är GMT +2. Klockan är nu 00:15.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson