Stiamo distribuendo e aggiornando i siti Web a diversi clienti. Normalmente aspettiamo le ultime modifiche da stabilizzare, quindi tagmo la versione di subversion come release e installiamo che la versione al cliente. Quindi riceviamo richieste di supporto e talvolta siamo costretti a fare correzioni rapide tra una release e l'altra. Trovo fastidioso mantenere queste correzioni nei rami, e mi chiedo perché non li memorizziamo come "modifiche locali" in alcune cartelle "Release X.Y" (su build-machine)? Può funzionare, o sta ramificando l'unico modo?
I motivi di questa modifica sono:
-
sembra molto più facile usare WinMerge-utility per unire le più recenti correzioni di bug in alcune "Release X.Y" -folder, che usare "branch integration" di tortoise-svn. WinMerge ti offre un controllo molto più preciso su quali modifiche unire e quali no (su base file, non su base commit).
-
quando si mantengono correzioni di bug come "modifiche locali" si ha un confronto a tre: in "Controlla modifiche" puoi vedere tutte le correzioni di bug nella versione attuale e con WinMerge puoi vedere tutte le ultime modifiche di tronco ( se confronta "Release XY" con "trunk" -folder)
-
sembra anche troppo ossessivo tenere tutto in SVN. IMO SVN dovrebbe servire l'utente e non il contrario.
-
anche la reintegrazione del ramo non unisce mai solo quei file che sono stati effettivamente modificati. Porta via tutta una serie di file non necessari, il che rende difficile tenere traccia di qualsiasi cosa nel registro SVN.