Abbiamo in programma di avere un repository mirror SVN in un altro ufficio a Sydney. Usiamo il server VisualSVN v2.5.7 in entrambe le posizioni.gestione di file di grandi dimensioni in svnsync
Ho deciso di utilizzare svnsync
per farlo. All'inizio volevo sincronizzare tutti i nostri repository e quando tutti sono sincronizzati con il repository mirror, uno scheduler chiamerà svnsync
ogni mezzanotte.
Potrebbe sincronizzare 167 revisioni di uno dei nostri repository. Ma alla 168a revisione abbiamo un grosso file (un file oracle zippato di circa 250 MB) che non può essere sincronizzato. Anche se ho modificato i timeout di entrambi i nostri server locali e remoti, non funziona. Si attacca a circa un'ora a un certo punto e mi dà il seguente errore:
Transmitting file data .......................svnsync: E175002: PUT of '/{some path}/{bigfile}.zip': Could not send request body: An established connection was aborted by the software in your host machine. <{target url}>
Qui ci sono le modifiche che ho fatto nel file httpd-custom.conf
nel server Apache di VisualSVNs (locale, specchio):
Timeout 300000
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 300000
<IfModule dav_svn_module="">
# Enable a 1 Gb Subversion data cache for both fulltext and deltas.
SVNInMemoryCacheSize 1048576
SVNCacheTextDeltas On
SVNCacheFullTexts On
#SVNCompressionLevel 9
</IfModule>
Ho persino aumentato il timeout a 600000 o più, ma il risultato è stato lo stesso. Ho lanciato entrambi i server in modalità http. Sulla nostra rete locale è possibile sincronizzare tutto il repository in 20 minuti.
Per quanto riguarda la velocità di caricamento della nostra connessione internet che è di circa 256 Kbs, non mi aspetto questa volta in un ambiente internet. Ma voglio che i server SVN aspettino il timeout impostato per loro, perché possiamo facilmente trasferire file di queste dimensioni in altri server SVN che utilizzano CollabNet Server. Ci vogliono solo 2 ore per essere commesso con successo. Penso che il timeout di 300000 secondi sia molto lontano da 2 ore.
1. Qual è stato il comportamento precedente alla modifica di https-custom.conf con SVNInMemoryCacheSize 1048576, SVNCacheTextDeltas On, SVNCacheFullTexts On? 2. Intendi che sincronizzi i tuoi repository con una connessione da 256kb? È GPRS/3G? Mi piacerebbe riprodurre il comportamento in modo che eventuali dettagli aggiuntivi sul vostro ambiente di rete sarebbero molto apprezzati. – bahrep
1. Ho controllato senza le proprietà che hai citato. Ho rimosso l'intero tag e il risultato è stato incollato solo 20 minuti prima che si verificasse lo stesso errore. –
2. Risposta 1: Abbiamo un altro repository in cui impegniamo le nostre versioni di pre-produzione. Possiamo commettere file piuttosto grandi come il file dmp dmp che ho menzionato nell'argomento principale. Utilizza il server CollabNet utilizzando lo schema svn anziché http o https.Mostra che usando svnsrve è molto meglio che usare il server http Apache in connessioni lente. Risposta 2: usiamo l'ADSL, ma nel nostro paese abbiamo limitazioni sulla velocità di internet. La velocità massima di internet qui è 1024/512 Kbs (Download/Upload), che già usiamo (512/256) Kbs. –