Domanda

Sto amministrando un repository svn per un progetto in cui l'origine non è stata importata con una singola directory di livello superiore. Di conseguenza, ci sono circa 15 "progetti" separati anziché uno. Come posso unirli in una cartella mantenendo la cronologia delle modifiche?

* suggerimento: svn move non funziona in questo caso.

[modifica] whoops, dupe di Combinazione di più repository SVN in uno

È stato utile?

Soluzione

Se non ti interessa conservare tutta la cronologia di uno dei repository, puoi semplicemente creare una nuova directory nel repository di un progetto, quindi importare l'altro.

Se ti interessa conservare la cronologia di entrambi, puoi usare 'svnadmin dump' per scaricare un repository e 'svnadmin load' per caricarlo nell'altro repository. I numeri di revisione saranno disattivati, ma avrai comunque la cronologia.

Copiato da qui: http://subversion.tigris.org/faq.html # multi-merge

Altri suggerimenti

Forse ho lavorato troppo con il martello di controllo della versione distribuita e tutto ciò che vedo a questo punto sono chiodi distribuiti. Ma devo ancora una volta dire che questo è probabilmente un lavoro per i DVCS.

Proverei a scherzare con git-svn o qualcosa del genere. Importa ogni " progetto " nel proprio repository git e si estraggono l'uno dall'altro. Risolvi eventuali conflitti e, dopo aver fatto tutto, reimposta la cronologia in Subversion.

Ma il tuo team potrebbe stare meglio semplicemente usando il controllo distribuito dopo aver finito di unire tutti i repository ...

È possibile creare un nuovo progetto di livello superiore che utilizza svn: externals per puntare a tutti gli altri progetti e posizionarli in sottodirectory appropriate.

  • gli sviluppatori dovranno solo controllare il tuo nuovo progetto di primo livello (svn seguirà automaticamente svn: externals e inserirà gli altri)
  • verrà mantenuta la cronologia completa delle versioni e le nuove modifiche verranno automaticamente impegnate nel relativo sottoprogetto
  • ci vorranno circa 5 minuti per implementare (creare il nuovo progetto di livello superiore ed eseguire svn propedit svn: externals top_dir ).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top