2010-03-14 8 views
12

Finora ho utilizzato SVN e ora ho bisogno di acquisire ClearCase rapidamente, dal punto di vista dello sviluppatore. C'è qualche buona risorsa per questo? Grazie.Modo rapido per l'utente SVN per imparare ClearCase

- add on -
Esiste una mappa tra di SVN concetti/terminologie (cioè repository, copiare, tronco, ramo, tag, checkout, commettere, l'aggiornamento di lavoro, tornare) con CC? Base sulla lettura iniziale sono uscito con il seguente.

Repository => VOB?
Copia di lavoro => Visualizzazione istantanea?
Trunk => ??
Filiale => Stream di integrazione? flusso di sviluppo?
Tag => Etichetta? Baseline?
Checkout da repository come copia di lavoro => Checkout da VOB come visualizzazione istantanea?
Esegui dalla copia di lavoro in repo => Effettua il check-in dalla vista istantanea in VOB?
Aggiornamento => Rebase?
Ripristina => ??
?? => Consegna

AFAIK CC ha i suoi concetti unici, quindi non posso dire la mappa più vicina.

risposta

14

Si può iniziare con la lettura My So risposte:

Le due differenze principali è necessario essere consapevoli è:

  • ClearCase è incentrato sui file, non sul repository centrico, ovvero si ottengono file di sola lettura che è necessario eseguire il check-out uno alla volta per poterli modificare, (e si "esegue il commit" (checkin) uno per uno): nessun lavoro di revisione globale qui

  • ClearCase considerano ramificazione come vero metadati, e non come una "directory" con una copia a buon mercato in essa: non v'è non "directory" con il nome di una filiale in esso.


Detto questo, in fretta:

  • Repository => VOB:
    Sì: VOB è solo un altro termine per repo (base Object Versioned). Non è un database SQL, ma una vecchia base di file flat Atria.

  • Copia di lavoro => Visualizzazione istantanea?
    La visualizzazione snapshot è la più vicina meccanismo di accesso da una copia funzionante, poiché copia i file sul disco rigido.
    La visualizzazione dinamica consente di ottenere lo stesso accesso a una copia di lavoro ... senza copiare nulla sul disco rigido, il che è interessante per una rapida consultazione.

  • Trunk => ?? "main": questo è il ramo principale in ClearCase (ogni elemento - file o directory - in ClearCase ha almeno una versione su "main"), ma in realtà non esiste un trunk tranne l'unico ramo scegli come bagagliaio.

  • Filiale => Flusso di integrazione? flusso di sviluppo?
    Un flusso non è un ramo. Si tratta di metadati con l'elenco di etichette (linee di base) che è necessario lavorare. In questo caso, solo se si sceglie di utilizzare UCM. Altrimenti, un ramo è un ramo che è possibile creare senza UCM (mkbranch myBranch).
    Uno stream può fungere da modello per creare un ramo che lo ha nominato: qualsiasi checkout effettuato in una vista UCM (una vista configurata automaticamente dopo un flusso) creerà un ramo chiamato dopo il suo flusso.

  • Tag => Etichetta? Baseline?
    Prima un tag non è una directory con una copia economica come UCM.
    È un'etichetta applicata su qualsiasi versione a cui è necessario fare riferimento.
    La differenza tra un'etichetta (non UCM) e una linea di base (UCM) è che una linea di base è un'etichetta applicata su tutti i file di un componente (UCM) (gruppo di file), mentre un'etichetta può essere applicata su qualsiasi elemento di tua scelta, come solo un sottoinsieme di un determinato gruppo di file.

  • Pagamento da repo come copia di lavoro => Checkout da VOB come visualizzazione istantanea?
    Quasi, ma il termine corretto per la visualizzazione di istantanee è "aggiornamento".
    Per una vista dinamica, non è nemmeno necessario un aggiornamento (o svn checkout), poiché la vista è ... dinamica: si vede immediatamente la copia di lavoro corretta attraverso la rete. È solo un altro meccanismo di accesso.

  • Confermare dalla copia di lavoro in repo => Il check-in dalla vista istantanea in VOB?
    Non proprio, poiché un commit riguarderà tutti i file modificati, mentre un controllo verrà eseguito file per file (anche se ClearCase 7.1.1 ha introdotto la nozione di "atomic checkin": vedere checkin man page).

  • Aggiornamento => Rebase?
    No: significa aggiornamento nella vista snapshot (un nulla nella vista dinamica poiché è dinamico: eventuali modifiche apportate in un'altra vista con regola di selezione simile saranno visibili immediatamente nella visualizzazione)
    Rebase è un'unione UCM eseguita come ramo da un flusso genitore a un ramo da un flusso figlio. Alla fine, è solo un'unione.

  • Revert => ??
    Non banale ... È un substractive merge.

  • ?? => Consegna
    Consegna e Rebase sono semplicemente unioni tra "sorgente" di diramazione e "destinazione" di diramazione:
    L'unico vantaggio è che è possibile "vedere" il flusso di lavoro di unione in anticipo definendo una gerarchia di flussi (che non sono altro che un elenco di etichette), sapendo che qualsiasi fusione tra:

    • ramo da un flusso bambino ad un flusso genitore sarà un "consegnare"
    • ramo da un flusso genitore di un flusso di bambino sarà un "rebase "
+0

Ho appena incontrato il flusso di integrazione e il flusso di sviluppo. Ho compreso la loro differenza in termini di caso d'uso, ma mi chiedo se differiscono in termini di implementazione tecnica all'interno di ClearCase. Prendiamo SVN come esempio, possiamo avere rami di versione (cioè 2.x, 3.x) e rami di sviluppo, ma SVN considera essenzialmente il ramo di versione e il ramo di sviluppo. – shiouming

+0

@shiouming: per SVN, sia i rami di versione che i rami di sviluppo sono solo directory con una copia economica. Per CC, Int stream e dev stream sono entrambi i flussi (elenco di etichette): riproducono il ruolo che si desidera riprodurre. L'unica differenza è la seguente: quando si crea un progetto UCM, è necessario almeno un flusso (chiamato per convenzione "Integrazione" flusso), e quindi è possibile (ma non sono obbligati a) creare uno o più flussi secondari ("dev"). flussi). – VonC

+0

Direi che il ripristino è come clearcaseout non selezionato. Ho usato solo le viste dinamiche, quindi non so se è possibile fare lo stesso con le istantanee. –

1

La cosa principale che devi sapere è che l'uso di SVN oggi è chiamato snapshot views in clearcase. Per il resto clearcase ha un sacco di funzioni come viste dinamiche, attività, oggetti derivati ​​e il proprio sistema di creazione. Nessuno ha usato queste funzionalità presso la società per cui ho lavorato e ha fatto una scelta globale per il clearcase. O sì, e non funziona davvero se il server a cui ti colleghi non è nel tuo ufficio.

La maggior parte del materiale del clearcase che ho visto si concentra su tutte queste altre funzionalità, quindi le leggevo con un sano scetticismo.

+0

Sì, so che CC ha la vista dell'istantanea e la vista dinamica. – shiouming