Domanda

Sto usando Eclipse / subclipse per lo sviluppo. Ho anche il client TortoiseSVN.

Sto cercando di spostare un repository CVS. Il vecchio repository CVS ha avuto un unico progetto. Vogliamo reogranize come molti dei progetti hanno i loro flussi di sviluppo, e dovrebbe essere gestita separatamente.

Ho eseguito il completo spostamento standard del repository utilizzando cvs2svn, e abbiamo avuto problemi.

Voglio ristrutturare i progetti nel repository subversion, così dopo la cvs2svn, ho tentato di fare una mossa svn e ha fatto la ristrutturazione. Sono stato in grado di fare con successo il movimento, ancora una volta senza problemi.

I check out il progetto in Eclipse, e quindi scegliere un file in una delle progetti. E 'apparentemente non importa quale progetto. Se faccio una versione aggiornata in Eclipse, e scegliere una versione nella storia del file da aggiornare a, il file viene eliminato dal mio file system, ma la vecchia versione non scende. Il file è semplicemente sparito.

Ho lo stesso problema con TortoiseSVN, quindi immagino che non si tratta di una questione subclipse.

La cosa interessante è che se faccio un svn move di un progetto Indietro nella sua posizione originale in cui è stato inizialmente convertito, e seguire la stessa procedura, non ho problemi , la versione di aggiornamento funziona come previsto.

Quindi, alla mia domanda (s):

  1. Ho fatto qualcosa di sbagliato durante lo spostamento cvs2svn che mi precluderebbe da riorganizzare con successo il mio repository subversion?
  2. C'è un modo migliore per fare quello che sto cercando di fare?
È stato utile?

Soluzione

Dove lavoro, abbiamo deciso di spostare i file in SVN dopo l'importazione dal CVS. CVS ha limitato le capacità di storia con lo spostamento, mentre il repository SVN può essere "rollback" per vedere ciò che sembrava in qualsiasi momento. Anche in questo caso, in questo modo, la decisione è stata presa che mantenendo una cronologia di tutte le modifiche e si muove era più importante.

Quello che abbiamo fatto è spostare il modulo da CVS in SVN così com'è. Quindi, utilizzando il browser repository, spostare tutti i file, se necessario, prima di un check-out.

Ora, questo non affronta il problema quando si aggiorna un singolo file a una versione precedente che potrebbe scomparire. Abbiamo deciso di vivere con questo, perché stiamo cercando di allontanarsi da una visione di file-centrica del repository (CVS) a uno snapshot-based. Quindi, se abbiamo bisogno di tornare a una versione precedente, aggiorniamo l'intero progetto. Se stai solo guardando alla storia diff, che funziona bene da TortoiseSVN quando permettiamo mosse / rinomina.

Altri suggerimenti

  1. No, non ha fatto nulla di male
  2. Sì. Si dovrebbe riorganizzare la vostra CVS Repository prima si importa tramite cvs2svn

La ragione per questo sintomo:

Hai sempre bisogno di controllare una cartella. Se si aggiorna a una versione precedente, questa cartella non può esistere (la cartella è stata spostata) allora Subversion cancellerà i suoi contenuti. Rinominare in Subversion è sempre implementate come rimuovere e aggiungere. In modo da avere una connessione sottile fra i file, ma è solo per la storia di questo file. Se volete vedere il nuovo layout è necessario checkout una cartella che contiene sia: target e cartella di origine. Di quello che sarà in grado di "vedere" la mossa di questa cartella, se avete solo una delle cartelle nella cassa, la cartella sarà solo svaniscono e avete bisogno di checkout un URL diverso (sia origine o di destinazione).

E 'più facile di ristrutturare i vostri progetti in CVS e quindi migrare. Svantaggio:. Non si ha alcuna storia della vostra ristrutturazione e non siete in grado di costruire / compilare le versioni precedenti (che sono stati creati nel CVS)

Sono d'accordo con Peter Parker che è facile e preferibile per riorganizzare i progetti nel CVS prima che la conversione a Subversion, se che cosa si vuole fare è riorganizzare le cartelle ei file all'interno di singoli progetti.

Ma se si vuole riorganizzare il layout dei progetti stessi (vale a dire, in cui un progetto vive rispetto a un'altra), si può farlo facilmente come parte della conversione cvs2svn. Quando si esegue un multiprogetto conversione , è possibile specificare dove cvs2svn dovrebbe porre il tronco, i rami e tag directory per ciascuno dei progetti. È sufficiente posizionare secondo la vostra nuova organizzazione del progetto desiderato, quindi si dovrebbe avere alcun problema a lavorare con il repository utilizzando uno qualsiasi dei soliti strumenti.

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