Qual è l'uso corretto delle cartelle di lavoro e dei segnalibri in Versions (Subversion Client) per i repository locali?

2

Ho usato Versions, il popolare client Subversion per OS X, per collegarmi a repository Subversion remoti. Questi repository remoti vengono mantenuti come segnalibri nella barra laterale sinistra. Tuttavia, quando si tratta di repository locali, devo ammettere che sono ancora un po 'incapace. Vedo che Versions ha in aggiunta ai segnalibri, il concetto di cartelle di lavoro. Non sono sicuro che le cartelle di lavoro debbano essere utilizzate separatamente dai segnalibri o se le cartelle di lavoro devono essere posizionate all'interno dei segnalibri. Qual è il modo corretto di configurare e controllare un repository locale?

La cartella del repository locale A è destinata a rimanere separata dalla cartella B che contiene i file che voglio mantenere sotto il controllo della versione? La cartella B può essere una sottocartella di A? Inoltre, per quanto riguarda il suo funzionamento interno: dove sono conservate le versioni precedenti dei file nel file system?

Ho creato un repository locale usando Versions e ho visto sul mio file system che molti file e cartelle di sistema di Subversion sono stati creati nella cartella del repository locale. In nessun luogo ho visto i soliti "rami", "tag" e "trunk" che di solito trovo su repository remoti che sono già stati creati. Sono quelli creati a mano?

Sarebbe gradito qualche chiarimento sulle basi nude dei repository locali. Spero di trovare il flusso di lavoro corretto da impostare per iniziare con il mio primo check-out. Grazie.

    
posta Christian Correa 29.09.2011 - 22:42
fonte

2 risposte

4

Ho usato versioni, ma preferisco Cornerstone 2. È un client molto più robusto.

Un repository è una cartella memorizzata su un computer (locale o remoto.) Contiene tutti i dati relativi al controllo della versione di un set di file, memorizzati in una struttura dati che la maggior parte delle persone non ha bisogno di capire.

Una cartella di lavoro è una cartella sul tuo sistema locale che contiene una copia dei file che sono memorizzati nella struttura di dati pazzi che è il repository.

Quindi, se si dispone di un repository locale, tale cartella viene archiviata sul disco rigido. Dovresti mai aver bisogno di accedere a questo dal Finder o dal Terminale, o bene, attraverso qualsiasi mezzo che sia attraverso il tuo client SVN (Versioni).

Per lavorare con i file archiviati nel repository locale, utilizzare Versioni per "Ritirare" una copia funzionante dei file. Questi file andranno in una seconda cartella da qualche parte sul tuo filesystem. Questi file a cui puoi accedere direttamente utilizzando qualsiasi applicazione galleggia la tua barca. Dopo aver apportato le modifiche ai file, si torna a Versioni e si controllano i file nel repository. Questa azione crea una seconda versione dei file all'interno della struttura di dati pazzo che è il tuo repository.

Usando Versioni, puoi quindi spostarti avanti e indietro tra queste varie versioni dei tuoi file. Qualunque sia la versione che vuoi lavorare, viene caricata nella tua copia di lavoro o puoi controllare una seconda copia di lavoro se vuoi lavorare con una versione diversa dei file, mantenendo la directory di lavoro corrente come bene.

Ecco come sistemo i miei repository SVN e le directory di lavoro.

Primo: i repository sono tutti memorizzati in ~ / svnroot. Ho un paio di tipi di progetti per i quali utilizzo SVN, quindi la struttura è simile a questa.

~/svnroot/scripts/project1
~/svnroot/scripts/project2
~/svnroot/documentation/project3
etc etc etc

Ricorda che in ogni esempio precedente, l'ultima parte del percorso sopra è il repository attuale.

Secondo: poi creo copie di lavoro di questi repository. Tengo quelli nella stessa struttura nella mia home directory. Sembra così.

~/scripts/project1
~/scripts/project2
~/documentation/project3
etc etc etc    

Notare l'assenza della directory svnroot in questi esempi ... Inoltre, tieni presente che l'ultima parte del percorso sopra è la directory che si trova sotto il controllo della versione, altrimenti chiamata Working Copy. Questi sono i file che puoi modificare in base al tuo cuore.

Quindi, per mantenere le cose organizzate, creo le directory degli script e della documentazione nella barra laterale delle versioni e inserisco qui le voci per le directory di lavoro e i repository.

Cercherò di ricordare di fornire uno screenshot quando torno a casa stasera.

Terzo: ora metti i file che vuoi sotto controllo di versione nelle cartelle di Working Copy nel Finder. Torna a Versioni e controlla i file nel repository. Ora sei tutto pronto e dovresti riuscire a lavorare.

Le versioni non generano tag, rami e tronchi. Se si desidera utilizzarli nel progetto, creare ciascuna cartella nella Copia di lavoro e quindi controllarli nel repository. Per creare un tag o un ramo, è necessario controllare il sito Web di Versions. La loro documentazione di aiuto copre quell'elemento ... e deve essere fatto nella vista del repository, non nella vista della copia di lavoro.

link

Oh, e "Segnalibri" è solo il termine utilizzato da Versions per tenere traccia dei repository e delle copie di lavoro nella barra laterale della finestra principale.

    
risposta data 29.09.2011 - 23:40
fonte
2

Uso le versioni da un paio di anni, ma non ho mai prestato attenzione all'idea di "segnalibri", anche se l'ho usato sia per repository locali che per repository remoti con copie di lavoro locali. Quindi, ho cercato.

Sembra che i "segnalibri" siano solo la lista di Versions.app dei contenuti a cui ti sei collegato, che si tratti di una risorsa svn remota per la navigazione o di una copia locale di qualcosa su cui stai lavorando in remoto. Ci sono alcuni suggerimenti e amp; trucchi su come impostare Versioni per collegare & organizza ciò con cui stai lavorando e puoi consultare l'aiuto in questa guida (Aiuto > Versions Help > Versions Workflow > Bookmarks).

Quindi, il resto della risposta alla tua domanda è il consiglio di svn standard, e ciò che @ TheWellington ha scritto qui sembra proprio su quell'argomento. Le "cartelle di lavoro" sono copie locali di alcuni aspetti del tuo repository remoto. In genere il codice risiede su un server remoto o in un "repository locale" da qualche altra parte sul disco che non si tocca direttamente. Si crea una "cartella di lavoro" quando si desidera apportare effettivamente delle modifiche. Questo può essere legato al "tronco" o a un "ramo" del progetto. Suggerisco di leggere il libro SVN per le "migliori pratiche" legate a questi: potresti iniziare con questi link:

Come notato @VxJasonxV, sta a te creare a mano la struttura della directory svn standard (trunk, tag, rami) ed è un buon consiglio farlo. Ciò rende molto più facile tornare indietro nel tempo, esplorare percorsi alternativi e sapere esattamente quale codice / dati è associato a una particolare cosa che hai rilasciato in libertà.

Infine, per essere chiari, non si dovrebbe mai interagire direttamente con i file "repository locale" sul disco. Trattalo come una black box molto criptica (che è), e usa il client svn (Versions.app o command line) per accedere ai tuoi dati, esaminare la cronologia, ecc.

    
risposta data 29.09.2011 - 23:54
fonte

Leggi altre domande sui tag