Ho pensato che normalmente quando si dirama, si dirama l'intero tronco, ma nella mia azienda ho visto le persone suddividere le sottocartelle del tronco e più in profondità- ci sono conseguenze pratiche di questo oltre alla confusione quando si cerca di trovare la directory giusta in il tronco per unirli di nuovo?Quali sono le conseguenze della creazione di un ramo da una sottocartella di trunk in SVN?
risposta
Il problema non è la ramificazione .. è la fusione:
Mai merge di nuovo in una cartella "sottostruttura" tale. Perché? Subversion memorizzerà le informazioni di fusione in questa cartella di sottostruttura. E non appena ciò accade, nessuno può più utilizzare l'unione-reintegrazione.
Look here for more information:
fonde Evitare di sottostruttura e sottostruttura mergeinfo, eseguire fonde solo sulla radice dei tuoi rami, non su sottodirectory o file
Questo significa fino a quando si dispone di sottostruttura merge -infos che gironzola nel bagagliaio non può usare l'opzione -reintegrate, che di solito dovresti usare, perché in questo modo la fusione è molto più facile.
esattamente quello che hai detto. SVN è abbastanza flessibile da poter diramarti da qualsiasi punto dell'albero, il che è impressionante, fino a quando non vuoi unirlo indietro e hai difficoltà a gestire il disastro che hai creato. A volte ha senso (es. Hai una directory di primo livello con altre cose lì dentro, o hai bisogno di un ramo localizzato molto speciale per sistemare un errore specifico) ma in generale vuoi mantenere le cose semplici per te.
Ciò significa scegliere una radice da utilizzare come diramazione e attenersi ad essa, anche se ciò significa diramazione solo dal livello superiore. Le cose diventano molto più semplici da gestire allora. Il costo della ramificazione è trascurabile anche se lo fai.