Domanda

Al lavoro, abbiamo un server Windows 2003 con IIS e Subversion installati. Lo usiamo per pubblicare e testare localmente i nostri siti Web ASP.NET. Ogni programmatore ha Tortoise installato sul suo PC e può aggiornare / eseguire il commit del contenuto sul server. L'hosting dei repository funziona correttamente. Ma i file conservati in quei repository devono quindi essere copiati nel nostro IIS locale (directory virtuali).

Qual è un modo semplice per pubblicare questi repository di sovversione sul nostro IIS locale?

Modifica:
Grazie a puetzk ho aggiunto un semplice file bat che viene eseguito ogni volta che si verifica un commit (controlla documentazione di sovversione sugli hook). Il mio file bat contiene solo:

echo off
setlocal

:: Localize the working copy where IIS points)
pushd E:\wwwroot\yourapp\trunk
:: Update your working copy
svn update

endlocal
exit
È stato utile?

Soluzione

  1. Tieni semplicemente l'area del file del web server come una copia funzionante ed esegui un svn su di essa ogni volta che vuoi " pubblicare " ;. Configuralo per nascondere il contenuto delle cartelle .svn se ti sembrano disordinate (non so esattamente come farlo, ma presumo che possa essere fatto). Avranno già il bit nascosto del filesystem, che potrebbe occuparsene.

  2. Se lo vuoi davvero automatico (si aggiorna non appena qualcuno si impegna), usa uno script hook post-commit sul server SVN per dare il via al primo processo.

Altri nei commenti hanno suggerito di utilizzare export anziché checkout. Anche questo può funzionare ed evita il disordine .svn, ma presenta due inconvenienti. Uno, deve scaricare di nuovo l'intero contenuto ogni volta, non solo i file modificati (dal momento che non ha mantenuto la directory .svn per ricordare ciò che ha). Se hai molti file, questo sarà molto più lento. Due, l'aggiornamento sostituisce atomicamente il file (scrive la nuova versione in .svn / tmp, quindi lo sposta in posizione). L'esportazione scrive il file gradualmente nella sua destinazione mentre viene scaricato. Ciò significa che l'esportazione potrebbe consegnare un file incompleto a qualcuno che lo ha sfogliato nel momento sbagliato.

Altri suggerimenti

SVN non supporta IIS; puoi comunque eseguire il server svnserve autonomo come servizio Windows .

C'è la voce FAQ SVN al riguardo, e questo blog pubblicare post su Blog Vertigo Software può essere utile.

UPDATE: Dopo il tuo chiarimento, vedo che quello che stai cercando è un modo per aggiornare automaticamente il codice sul server dopo il check-in. Cerca in CruiseControl.NET , dopo aver esaminato tutorial di integrazione di sovversione sembra che dovrebbe fare quello che vuoi.

AGGIORNAMENTO 2: Questo tutorial descrive integrazione di Subversion, CruiseControl.NET e Nant .

forse SVNIsapi può risolvere il problema ( http://www.svnisapi.com ). Perché utilizza solo un'installazione IIS, quindi non è necessario un server APACHE o un servizio SVNSERVER. In secondo luogo, dovrebbe essere possibile impilare il plug-in ISAPI ASP.NET sull'elaborazione di SVNISAPI, in modo che una pagina ASP.NET (.aspx) venga interpretata dopo la lettura dal repository.

Saluti Paolo

L'utilizzo può utilizzare gratuitamente Visual-SVN Server per installare rapidamente Subversion con il front-end Apache. Ha anche un bel snap-in MMC per la gestione del server e dei repository.

Sarai in grado di accedere alla sovversione con HTTP o HTTPS, ma il numero di porta deve essere diverso da quello utilizzato dall'IIS locale (la porta predefinita per il server Visual-SVN è 8080).

Se hai davvero bisogno di accedere ai repository usando la tua porta IIS locale 80, puoi provare SVN-IIS che funge da ponte tra IIS e Apache. Non ho provato questo da solo però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top