2011-01-20 11 views

risposta

10

Cosa devo fare per renderlo un'entità completamente indipendente?

L'unico collegamento tra il nuovo repository e l'originale è un numero di proprietà di revisione utilizzate da svnsync synchronize. È possibile rimuovere quelli come questo:

svn propdel --revprop -r 0 svn:sync-from-uuid http://svn.example.com 
svn propdel --revprop -r 0 svn:sync-last-merged-rev http://svn.example.com 
svn propdel --revprop -r 0 svn:sync-from-url http://svn.example.com 

Questo non fa molto, tranne fare in modo che svnsync synchronize non possono essere eseguiti più.

modifica: ho solo pensato a qualcos'altro. Potresti aver utilizzato le proprietà svn:externals nei tuoi progetti per fare riferimento a un altro repository o un'altra posizione all'interno dello stesso repository.

Uno deve utilizzare relative URL syntax per i collegamenti all'interno dello stesso repository, nel qual caso non vi è alcun problema. Ma se per questo è stato utilizzato un URL assoluto, tali collegamenti continueranno a puntare al repository originale dopo un svnsync. È possibile controllare tutti svn:externals immobili come questo (potrebbe richiedere un po ', esegue la scansione in modo ricorsivo tutte le cartelle):

svn propget -R svn:externals http://svn.example.com/ 
+0

Qualche idea su come correggere le proprietà 'svn: externals' sulle revisioni esistenti, comunque? – 0xC0000022L

+0

@STATUS_ACCESS_DENIED: in SVN manca un modo per rimappare semplicemente gli esterni ([come in mercurial] (http://mercurial.selenic.com/wiki/SubrepoRemappingPlan)) per le revisioni esistenti. Potrebbe ancora essere possibile riscrivendo la cronologia ('svnadmin dump 'l'intero repository, gli URL di ricerca e sostituzione, quindi' svnadmin load' in un nuovo repository), ma quello è un altro altro gioco. Non l'ho mai provato. –

+0

grazie per la risposta. Avevo paura di questo ... Sorry – 0xC0000022L

0

Fondamentalmente, è necessario la configurazione di apache:

  • di riferimento che il nuovo pronti contro termine con un URL diverso e un diverso AuthName
  • dichiarare il nuovo utente nel file conf/authz di detto nuovo pronti contro termine.
  • dichiarando la propria password (se si sta utilizzando: q modalità di autenticazione AuthType Basic)

Avere password diversa non è obbligatoria: una volta che i due repository vengono gestiti con due diversi indirizzi (sotto lo stesso Apache o due diversi 'apache'), saranno indipendenti l'uno dall'altro.

+0

* think * l'origine sta usando la messa a punto di tipo Apache e a destinazione sto usando svnserve su SSH (come per http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.choosing) – siliconpi

+0

@ matt74m: quindi il meccanismo di autenticazione sarà diverso, anche gli indirizzi. Questi due repository saranno abbastanza indipendenti (a meno che non sia necessario risincronizzarli regolarmente) – VonC