Abbiamo un grande progetto con diversi sotto-progetti. Ci stiamo avvicinando a una versione del nostro progetto e le nuove funzionalità in un sottoprogetto non saranno completate prima del rilascio come originariamente previsto. Quello che mi piacerebbe fare è spostare tutte le modifiche a quel sottoprogetto relative alle nuove funzionalità in un ramo separato per continuare a lavorare per la prossima versione, ma non sono sicuro di come farlo al meglio.Subversion - come spostare alcuni changeset dal trunk a un ramo?
La situazione è fondamentalmente:
/proj/trunk/A/ /proj/trunk/B/ /proj/trunk/C/
Abbiamo revisioni a..z controllati nel dall'ultima release. Le revisioni d, f, g e j..n contengono lavori relativi a una nuova funzionalità in C che non verrà completata in tempo. Le revisioni e, h e q contengono modifiche non correlate in C che devono essere presenti in questa versione. Mi piacerebbe creare un /proj/branches/new-feature-for-C/
e spostare le modifiche d, f, g e j..n lì, mantenendo e, h, e q nel bagagliaio. Non vi è alcuna sovrapposizione tra le modifiche da spostare nel ramo e le modifiche da mantenere sul trunk e nessuna delle modifiche da spostare nel ramo dipende da eventuali modifiche in qualsiasi altro sottoprogetto dall'ultima versione.
ho giocato un po ' con questo modo, ma non riesco a vedere un modo semplice per unire tutto nel bagagliaio una volta che la nuova funzionalità è stata completata.Poiché ci siamo diramati dalla testa del tronco, poi abbiamo ripristinato le modifiche indesiderate sul tronco, non sembra esserci un buon modo per rimettere quelle modifiche dal ramo insieme alle modifiche più recenti per completare la caratteristica C, preservando le modifiche al tronco non correlato alla caratteristica C. – Thomee
quale versione di subversion stai usando? In 1.5+ dovrebbe funzionare, anche se potresti voler usare l'opzione --reintegrate. Prima della 1.5 ho usato lo script svnmerge.py con un certo successo. –
Il repository non è stato aggiornato, quindi non dispongo delle funzionalità di tracciamento unione 1.5+. Il problema che sto incontrando (e forse è qualcosa che sto sbagliando), è che quando sto cercando di reintegrare il ramo della funzione, non c'è nulla da distinguere tra la rimozione della feature incompleta dal trunk e altri significativi cambiamenti che sono accaduti sul tronco dopo quello. Quindi tutto il lavoro esistente che è stato copiato viene rimosso, rimane rimosso o io perdo le altre modifiche apportate dopo aver rimosso la funzionalità incompleta. – Thomee