2009-06-01 10 views
11

Sto provando a impostare una sorta di collegamento simbolico nel nostro repository di subversion con svn: externals, ma non funziona davvero così bene. Quello che voglio fare è collegare una cartella in una parte della stessa repository ad un altro, in questo modo:Come fare svn interno: esterni

src/somewhere_else/schema https://svn.acme.com/svn/project/trunk/src/schema

Questo funziona bene per le risorse realmente esterne (vale a dire, le directory in un repository diverso), ma non riesco a farlo funzionare per risorse all'interno dello stesso repository come sopra. L'ho cercato su Google per un po 'e sembra che debba essere supportato, cosa mi manca?

Stiamo usando Subversion 1.5.5 sotto VisualSVN su un'installazione del server Windows 2003.


EDIT:

ho dimenticato di dire che non ho ricevuto gli eventuali errori, la cartella che dovrebbe avere il suo contenuto dalla altra cartella rimane solo vuota.

risposta

3

Provare a eseguire un "Aggiornamento a una revisione specifica" e specificare "Completamente ricorsivo". Se la tua copia di lavoro è bloccata su "Working copy only", non otterrà contenuti esterni.

+0

Questo sembra aver fatto il trucco, grazie! –

3

Non penso che questo sia il tuo vero problema, ma definisco le proprietà direttamente sulla cartella. Nel tuo caso, creo una cartella src\somewhere_else e aggiungere la proprietà:

schema https://svn.acme.com/svn/project/trunk/src/schema 

Solo una piccola cosa da ricordare, se si definisce URL esterna in assoluto, come si propone di fare:

src/somewhere_else/schema https://svn.acme.com/svn/project/trunk/src/schema 

non lo faranno cambia automaticamente se crei un TAG o una FILIALE. Significa che una parte di un TAG (l'url esterno) punta sempre al TRONK del tuo schema.

Ovviamente, se lo schema non cambia troppo, potrebbe essere un problema in futuro quando si applica un'applicazione di 2 anni per la patch e lo schema è stato ampiamente modificato.

+1

Commento molto bello dei percorsi, grazie! –

+0

grazie!mi ha semplicemente aiutato a ricordare a qualcun altro che stava esternamente in una cartella nel suo stesso repository perché non farlo :) – ehambright

1

La sintassi si dà:

working-copy-relative-path full-repo-url 

dovrebbe funzionare bene. Ma se segui questo percorso, devi fornire l'URL completo come lo utilizzeresti se stavi effettuando il check-out, anche se il link si trova nello stesso repository. Lo stai facendo, vero?

L'alternativa, introdotta con 1.5 sono gli esterni relativi:

repo-url-o-parente-percorso del collegamento di

Vedere Roger Lipscombe per ulteriori informazioni lavorare-copia-relativo percorso.

Ancora, quello che stai descrivendo dovrebbe essere lavoro. Se non funziona, non devi descrivere ciò che stai facendo in modo abbastanza accurato. Alcuni dettagli sono ancora mancanti.