Come aggiornare il filesystem di sovversione FSFS v2 a v3


9

In primo luogo, sto cercando di reintegrare un ramo con il trunk (usando TortoiseSVN) ma sto ricevendo il messaggio di errore "La query delle informazioni di unione richiede la versione 3 dello schema del filesystem FSFS; il filesystem E: / MyRepository / usa solo la versione 2".

Non era davvero possibile reintegrare i rami nelle versioni precedenti di sovversione? O c'è un altro modo di farlo?

Ad ogni modo, come posso aggiornare il file system dalla versione 2 alla versione 3?


Risposte:


6

Non hai specificato la versione di Subversion in esecuzione sul tuo server. Ma in base al messaggio fornito nella domanda, è probabilmente una versione 1.4.x o precedente. Non ricordo se è stato fornito o meno un comando di aggiornamento per la conversione da 1.4.xa 1.5.x, ma il modo sicuro per ottenere il repository dalla versione 2 alla versione è il dump e il caricamento. Ma non importa molto, ti consigliamo di installare 1.6.x per andare con le ultime. Quindi, ecco i passaggi che devi fare:

  • Aggiorna a Subversion 1.6.x se non l'hai già fatto
  • Scarica il tuo repository esistente usando svnadmin dump
  • Crea un nuovo repository, chiamalo _new
  • Carica il tuo nuovo repository con il dump del vecchio usando il caricamento svnadmin
  • Copia il file uuid dal vecchio repository nel nuovo repository
  • rinominare il vecchio repository in _old
  • rinominare il nuovo repository in

Vedi anche Domande frequenti su Subversion http://subversion.apache.org/faq.html#dumpload per un esempio concreto.

Questo dovrebbe occuparti di te e il file uuid impedirà ai tuoi clienti di andare fuori di testa. Fai un aggiornamento svn per essere sicuro però.


2
da svnadmin help loadun messaggio: --force-uuid : set repos UUID to that found in stream, if any. In breve: non c'è bisogno di giocare con i file
Hubert Kario,

@Hubert Kario: Sì, la riga di comando ha questa opzione. Ma non tutti i client della GUI lo fanno. E, se puoi farlo sul lato server, ciò semplifica gli utenti. Ma terrò presente questo interruttore la prossima volta che incontrerò quel problema. Grazie per il consiglio!
jgifford25,

Quando si crea il nuovo repository, prestare attenzione all'impostazione delle autorizzazioni. Ad esempio, se si accede al repository tramite apache mod_svn, apache viene eseguito sotto l'utente "www", il gruppo "www" e si è effettuato l'accesso come "fred", probabilmente sarà necessario qualcosa del tipo: sudo chown -R fred:www myrepositoryseguito da un sudo chmod g+wto myrepository/db/repcache.dbemyrepository/db/uuid
xgretsch

8

Dump / caricamento non è necessario per l'aggiornamento dei repository Subversion. Utilizzare il comando di aggiornamento svnadmin:

svnadmin upgrade <path-to-repos>

NOTA: svnadmin upgrade "esegue solo la minima quantità di lavoro necessaria per raggiungere questo obiettivo pur mantenendo l'integrità del repository. Mentre un dump e il successivo caricamento garantiscono lo stato di repository più ottimizzato, l'aggiornamento svnadmin no." - consultare anche la documentazione di aggiornamento svnadmin


1
NOTA, tuttavia, che "esegue solo la minima quantità di lavoro necessaria per raggiungere questo obiettivo pur mantenendo l'integrità del repository. Mentre un dump e il successivo caricamento garantiscono lo stato di repository più ottimizzato, l'aggiornamento svnadmin non lo fa." - vedi anche svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html
Jörg

1
NOTA, inoltre, che "dovresti sempre eseguire il backup del tuo repository prima" utilizzando l'aggiornamento svnadmin, mentre con dump / load hai un tipo di backup implicito.
Jörg,

5

Ivan ha un buon consiglio che funziona, l'ho provato ed è molto semplice.

svnadmin upgrade <path-to-repos>

Una cosa che mi è mancata nell'esempio di Ivans che può essere utile agli altri sono:

Ex.

<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)

Non puntare svnadmin alla directory db, ma alla directory contenente la directory db.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.