Domanda

Attualmente sto lavorando a un progetto con sviluppatori che lavorano su tre siti. Uno dei siti è a Delhi, in India, mentre gli altri due sono in Europa. La comunicazione tra gli uffici europei e l'ufficio di Delhi ha una scarsa larghezza di banda e una latenza piuttosto scarsa, e un aggiornamento CVS da lì richiede spesso 5-10 minuti anche se sono cambiati solo pochi file.

Esistono buoni proxy CVS là fuori o un modo pulito per mantenere sincronizzati server CVS separati? Hai altri suggerimenti su come migliorare le prestazioni in questo scenario?

Sfortunatamente, saremo bloccati con CVS durante lo scopo di questo progetto, quindi passare a qualcosa di completamente diverso non è un'opzione a breve termine.

È stato utile?

Soluzione

Perché non si cambia opzione?

Consiglio vivamente di passare a SVN o git invece. E che fai questa conversione il prima possibile ... come oggi :)

Esistono anche svn strumenti / guide e git tools / guide là fuori che farà questa conversione CVS per te.

Uso personalmente e amo SVN per il mio lavoro, ma in base alla descrizione sopra riportata, sembra che Git potrebbe essere l'opzione migliore per te.

Altri suggerimenti

Ecco cosa ho fatto molto tempo fa in circostanze simili quando la larghezza di banda e le reti inaffidabili erano un problema:

  • Crea una copia del repository e installalo nella posizione remota. Sai che hai CVS1 e CVS2.
  • Blocca una delle due copie (CVS1) impedendo il commit. Ciò si ottiene modificando "commitinfo" nel modulo CVSROOT.
  • CVS1 può essere utilizzato solo per gli aggiornamenti
  • CVS2 può essere utilizzato per gli aggiornamenti e il commit

Quando si desidera consentire l'accesso in commit alla copia 1, procedere come segue:

  • Blocca CVS2
  • Copia CVS2 in CVS1
  • Sblocca CVS1

Sembra ingombrante, ed è se lo fai manualmente, ma funziona. Richiede un po 'di disciplina se lo fai manualmente. Forse i fusi orari sono dalla tua parte per una volta.

Ho scritto uno strumento per tenere traccia di chi aveva il token di commit e per trasferire automaticamente i repository da un sito all'altro tramite rsync e SSH. Ha funzionato bene per un paio d'anni. Non abbiamo mai perso alcun dato e ci sono voluti circa 5 minuti per trasferire il token da una posizione a un'altra.

Lo strumento di trasferimento è stato scritto in perl e mi ci sono volute circa due settimane per svilupparlo, lavorando su di esso a tempo pieno.

So che molto tempo fa gli sviluppatori di FreeBSD hanno usato CVSup ma non ho mai usato questo strumento da solo.

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