Quali opzioni ci sono se un repository SVN diventa non disponibile?

5

Un progetto a cui sto lavorando è stato ospitato su un repository svn su bettercodes.org. Questo era sotto il nome di un altro utente e quel repository non è ora disponibile .

Alla persona responsabile del progetto è stata inviata un'esportazione da Eclipse e ho avuto un progetto più o meno aggiornato sulla mia macchina. Non ho potuto vedere altra opzione che impegnare la mia copia del progetto in un altro repository. Ora è possibile che alcune delle modifiche più recenti di un altro programmatore siano mancanti .

Ora, quali opzioni devo portare insieme questo progetto? Alcuni metadati necessari sono salvati su Eclipse o tutte le modifiche sul repository originale? Quali strumenti posso usare per verificare cosa manca in termini di classi, file di configurazione e codice?

    
posta James P. 08.11.2011 - 23:56
fonte

5 risposte

5

Che tipo di progetto è questo? Perché il repository non è disponibile?

Nel caso di SVN, tutte le modifiche e diff sono nel repository del server e non sui client. Avrai bisogno in qualche modo di accedere al repository originale se vuoi tutto gli altri dati.

Alcuni dei sistemi di controllo delle versioni distribuite, come Git e Mercurial, memorizzano tutti i metadati su tutte le macchine usando il repository. In futuro, potrebbe essere una saggia idea utilizzare uno di questi. In alternativa, utilizza un server SVN sotto il tuo controllo diretto.

    
risposta data 09.11.2011 - 00:19
fonte
3

Come dice whatsisname, in una risposta separata , in SVN tutte le informazioni sulla cronologia si trovano nel repository del server e non sui client locali.

Direi che la soluzione migliore è provare molto difficile per prendere contatto con bettercodes.org - vedi i loro "Chi siamo" Pagina dei contatti , e:

  1. Spiega la situazione
  2. Fornire documentazione / prove del motivo per cui tu o la tua organizzazione avete i diritti per utilizzare il codice.
  3. Richiedi una copia scaricabile del codice, con cronologia
risposta data 09.11.2011 - 00:29
fonte
3

Un'opzione è chiedere alla comunità attorno al progetto.

Se chiunque ha funzionato tramite git svn o hgsubversion , puoi utilizzare il loro repository (con tutta la sua cronologia locale) per creare un nuovo repository svn con cronologia completa.

Dato il modo in cui questi strumenti mantengono una cronologia lineare utilizzando rebase prima di ogni push, questi repository dovrebbero essere abbastanza lineari, semplificando la conversione in un repository svn.

Ci sono alcuni suggerimenti su come fare questo per git in questa risposta StackOverflow, e ci sono informazioni su come fare questo per sulla sua wiki

In alternativa, potrebbe essere un buon momento per spostare il tuo progetto su git o hg , in cui puoi ottenere i vantaggi dell'hosting su siti come github o bitbucket .

    
risposta data 09.11.2011 - 19:57
fonte
2

Se possibile, chiedi a quel programmatore quale fosse il suo ultimo cambiamento (o fagli leggere il codice che hai). Per quanto ne so, Eclipse non ha conservato la cronologia o la fonte effettiva, dato che SVN è il posto in cui tenerlo. Nella migliore delle ipotesi, farà riferimento ai numeri di commit SVN, ora inutili per te.

Going foward - (e OT ma penso che valga la pena di menzionare) Quando si sceglie un altro rev. strumento di controllo, considerare uno strumento distribuito come GIT o Mecurial. Con questi hai l'intera cronologia memorizzata localmente, quindi la perdita del repository "master" non è un grosso problema, hai ancora tutta la cronologia e puoi estrarre le modifiche da qualsiasi altro repository, in modo da poter recuperare il più recente modifiche fornite al committente di quelli che ha ancora il suo repo locale. Questi strumenti possono ancora operare in modo simile al concetto SVN di un master repo se questo è il modo in cui li vuoi.

(OT) Grazie per questa domanda - aggiunge potenza di fuoco a un argomento secondo cui "il cloud" non è un repository adatto / affidabile per archiviare dati mission-critical.

    
risposta data 09.11.2011 - 00:28
fonte
1

Se tutto il resto fallisce e non ci sono trucchi Eclipse eleganti (io non uso Eclipse, quindi non ho idea: P) ...

Sai chi ha lavorato al progetto? Se è così, se si attacca il repository qualche volta, è possibile ottenere le patch di diff dagli altri sviluppatori e applicarle al progetto.

Come creare e applicare una patch SVN

    
risposta data 09.11.2011 - 00:16
fonte

Leggi altre domande sui tag