Sul mio posto di lavoro, utilizziamo un repository SVN per il codice sorgente, che contiene l'applicazione principale e alcuni altri progetti, e per l'applicazione principale è strutturato in questo modo:
- trunk
- app
- tags
- app
- 16.2.0
- 16.3.0
- ...
- branches
- app
- 17.1.0
- 00_master
- 01_feature
- 02_other feature
- ...
Quindi nei rami abbiamo un contenitore per ogni nuova release, e all'interno di esso c'è un ramo "master", creato usando svn copy
dal trunk, e un ramo per ogni funzionalità pianificata per quella release, creata usando svn copy
sul ramo principale.
Quando una funzionalità è completa, viene verificata e quindi integrata nel master per la sua versione e alla fine il master viene unito al trunk, che viene quindi utilizzato per aprire un altro ramo di versione.
Tuttavia, è accaduto che una funzione non potesse essere completata per la versione in cui era stata programmata e che doveva essere posticipata.
Quindi, quello che ho fatto, è stato creare il ramo master per la nuova versione, da quello creare il ramo per la funzione posticipata, e quindi provare a unire il vecchio ramo dalla versione precedente con questo nuovo.
Tuttavia, il client SVN si è rifiutato di eseguire l'operazione, a causa della diversa origine dei due rami.
C'è un altro modo, data questa configurazione, per spostare un ramo di funzionalità da un ramo di versione a un altro? O dovremmo davvero cambiare il layout qui?