Domanda

Ho qualcosa di interessante lo sviluppo della situazione.Il client e il server di distribuzione all'interno di un firewall senza accesso al server Subversion.Ma gli sviluppatori sono al di fuori del firewall e sono in grado di utilizzare il server Subversion.Ora la soluzione che ho elaborato è quello di aggiornare la mia copia locale del codice e quindi tirare fuori il più recente aggiornamento di file utilizzando UnleashIT.

La domanda è: come ottenere solo i file aggiornati di Subversion, in modo che si può essere fisicamente trasportati attraverso il firewall e mettere su il server di distribuzione.

Io non sono preoccupato per cercare di cambiare la configurazione di un firewall o cercando di capire un modo più semplice per raggiungere il server Subversion dall'interno del firewall.Io sono interessato in modo da ottenere un parziale di esportazione dal repository del più recente del file modificati.

Ci sono altri suggerimenti?

La risposta è:Oltre alla risposta che ho contrassegnato come Risposta, ho anche trovato il seguente qui per essere in grado di fare questo da TortoiseSVN:

da http://svn.haxx.se/tsvn/archive-2006-08/0051.shtml

* select the two revisions
* right-click, "compare revisions"
* select all files in the list
* right-click, choose "export to..." 
È stato utile?

Soluzione

Ho trovato rsync estremamente utile per la sincronizzazione di directory alberi su più sistemi.Se si dispone di shell di accesso al server da una workstation di sviluppo, è possibile controllare regolarmente il codice localmente ed eseguire rsync, che consentirà di trasferire solo i file che sono stati modificati per il server.

(Ciò presuppone un ambiente Unix-like sulla vostra workstation di sviluppo.Cygwin funziona bene.)

cd deploy
svn update
rsync -a . server:webdir/

La tua domanda suona come voi in realtà non hanno un diretto accesso alla rete dal computer di sviluppo di stazioni di lavoro per il server, e quello che stai veramente cercando è un modo per ottenere il Subversion per dirvi quali file sono stati modificati. svn export supporta un argomento che consente di verificare solo i file che sono cambiati tra particolare revisioni.Da svn help:

  -r [--revision] arg      : ARG (some commands also take ARG1:ARG2 range)
                             A revision argument can be one of:
                                NUMBER       revision number
                                '{' DATE '}' revision at start of the date
                                'HEAD'       latest in repository
                                'BASE'       base rev of item's working copy
                                'COMMITTED'  last commit at or before BASE
                                'PREV'       revision just before COMMITTED

Avrete bisogno di tenere traccia di ciò che l'ultima revisione copiato sul server.Supponendo che si tratta di revisione SVN xxxx:

svn export -r xxxx:HEAD http://svn/

Poi basta copiare il contenuto del distribuire directory per il tuo server di file esistenti.

Questo non gestisce i file eliminati, che può risultare problematico in alcuni ambienti.

Altri suggerimenti

svn export non accetta un range di revisione, provare.

Una possibile soluzione è quella di ottenere l'elenco dei file modificati con:

svn diff --summarize -rXXX http://svn/...

e poi esportare in ciascuno di essi.

Quindi, se ho capito correttamente...

Supponiamo di avere un repository che assomiglia a questo:

/
|+-DIR1
|   |- FILEa
|   |- FILEb
|+-DIR2
|   |- FILEc
|   |- FILEd
|- FILEe
|- FILEf

E diciamo che i file di aggiornamento FILEa, FILEc, e FILEf e di impegnarsi in una repository.Quindi quello che si desidera esportare fuori del repository è una struttura che assomiglia a questo:

/
|+-DIR1
|   |- FILEa
|+-DIR2
|   |- FILEc
|- FILEf

E ' giusto?

La Sovversione ganci sembra che ha un sacco di promesse.Ma essendo relativamente disinformati su come script hook, come faccio a estrarre i file che sono stati commessi e FTP da qualche parte, mantenendo la struttura delle directory?

Se potessi farlo, allora qualcuno dentro il firewall è in grado di estrarre i file verso il server di distribuzione, e saremmo a posto.

Si potrebbe provare a giocare con il svnadmin dump comando che viene fornito con il Subversion binari.È possibile utilizzare questo comando per eseguire il dump l'intero repository di file, alcuni di revisione, o una serie di revisioni.Quindi utilizzare svnadmin carico per caricare il file dump in un nuovo repository pulito.

Non è una soluzione perfetta, dato che funziona in termini di repository e non i singoli file.

Si desidera solo le persone che sono dietro un firewall per essere in grado di accedere ai file più recenti impegna a Subversion, giusto?

Si potrebbe scrivere un svn script hook che utilizza un metodo (forse scp o ftp) per inviare i file nella posizione remota, al momento sono impegnato?

Se si contrassegna le revisioni questo può aiutare github svn-diff-export

Non si forniscono informazioni su ciò che è consentito attraverso il firewall.Non ho familiarità con UnleashIT.

Credo che si potrebbe avere uno script che le esportazioni da SVN a una cartella sul server SVN.Lo script, quindi comprime i file esportati.Si può quindi trasportare il file ZIP tuttavia si desidera e estrarre il server di distribuzione.

TortoiseSVN supporta i server proxy in modo che si potrebbe utilizzare uno di questi da parte del cliente?

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