Domanda

ho capito il concetto di base di un ramo e si fondono. Tutte le spiegazioni che ho trovato parlare di ramificazione l'intero tronco per creare un progetto ramo e lavorare su di esso e poi la fusione indietro. E 'possibile ramo Un sottoinsieme di un progetto?

Credo che un esempio aiuterà a spiegare meglio ciò che voglio fare. Supponiamo che io ho un programma con dieci file file0 attraverso file10. Tutti i file sono interdipendenti e di essere in grado di testare qualsiasi file di tutti gli altri devono essere inclusi nella build. Voglio lavorare su file0 ma non ho bisogno di apportare modifiche al file1 attraverso file10. Posso ramo file0 modo che le modifiche impegnati a file0 aggiornerà qualcosa come myrepos / rami / a-ramo / file0 ma tutti gli altri file nella mia copia di lavoro sarà semplicemente dal tronco?

Il motivo che voglio fare questo è che sto lavorando su un enorme un'applicazione J2EE con decine di migliaia di file e sembra che si dirama l'intera cosa avrà un tempo molto lungo. Inoltre, sto usando Eclipse con subclipse (e potrei sbagliarmi su questo), ma sembrare come se io ramo un progetto in Eclipse, allora dovrò impostare un nuovo progetto Eclipse per puntare al ramo. Purtroppo importato questo particolare progetto da SVN per oscurare richiede diverse ore a causa delle dimensioni della domanda. Non è realistico per me di spendere così tanto tempo.

suppongo che avrei potuto avere i concetti sbagliata. Forse ramificazione un intero progetto non richiede una nuova copia di lavoro a tutti?

Grazie per qualsiasi luce su questo tema.

È stato utile?

Soluzione

Branching un intero (anche) molto grande albero in Subversion è un operazione molto a buon mercato , che fa pigro (O (1) volta) la copia di file.

Non è necessariamente cambiare tutta la tua copia di lavoro per lavorare su un solo file modificato. È possibile utilizzare svn passare per passare un file o una directory nella copia di lavoro per essere una versione verificata fuori del file sul ramo.

Altri suggerimenti

In Subversion, facendo un ramo è semplicemente fare una copia di una gerarchia di directory. Pertanto, si può diramare un sottoinsieme, ma solo se questo sottoinsieme può essere definito da una gerarchia di directory.

  

I Can   ramo file0 così impegnati a modifiche   file0 aggiornerà qualcosa di simile   myrepos / rami / a-ramo / file0 ma   tutti gli altri file nella mia copia di lavoro   sarà semplicemente dal tronco?

Per rispondere a questa domanda: No, non è possibile diramare un singolo file. Tuttavia, quello che penso che si vuole fare, invece è quello di fare un ramo e lavorare su file0 lì. Quando si apportano modifiche a trunk file, è sufficiente unirli in vostro ramo in cui si sta lavorando su file0.

In questo modo, avrete sempre le informazioni più recenti da trunk, che vi permetterà di testare i cambiamenti file0 indipendentemente tronco . Quindi è possibile utilizzare svn switch per spostare il "lente file" tra il tronco e il ramo (ma attenzione, Eclipse può lamentarsi tali imbrogli).

svn ramificazione si basa sul meccanismo di copia pigro, in modo da poter diramare in modo sicuro il vostro tutti i progetti: che non richiede molto tempo.

Come indicato nella domanda " Come faccio ramo un singolo file in SVN? "si potrebbe diramare un sottoinsieme, ma credo che questo sarebbe pericoloso con il svn: proprietà merginfo meccanismo :. funziona meglio che la proprietà è impostata dalla radice del progetto

Branching in SVN è un O (1) funzionamento. Inoltre, come SVN impiega internamente copia pigro, si paga solo una sanzione di spazio per quello che si cambia.

Quindi, se non siete sicuri, perché non andare avanti e ramificare l'intero progetto?

(Come accennato quark, un problema con ramificazione grandi progetti è che, se si verifica diversi rami / il tronco in parallelo, questo potrebbe prendere un sacco di spazio su disco locale.)

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