2010-03-14 14 views
12

Hasta ahora he estado usando SVN, y ahora necesito recoger ClearCase rápidamente, desde la perspectiva del desarrollador. ¿Hay algún buen recurso para esto? Gracias.Forma rápida para que el usuario de SVN aprenda ClearCase

- add on -
¿Hay un mapa entre los conceptos/terminologías de SVN (es decir repositorio, copiar, tronco, rama, etiqueta, pago y envío, comprometerse, actualización de trabajo, volver) con CC? Basado en la lectura inicial, salí con lo siguiente.

Repositorio => VOB?
Copia de trabajo => ¿Vista de instantánea?
Tronco => ??
Branch => ¿Flujo de integración? secuencia de desarrollo?
Etiqueta => Etiqueta? ¿Base?
Pagar desde el repositorio como copia de trabajo => Pagar desde VOB como vista de instantánea?
¿Comprometerse desde la copia de trabajo a repo => Checkin desde la vista de instantánea en VOB?
Actualización => Rebase?
Revertir => ??
?? => Entregar

AFAIK CC tiene sus propios conceptos únicos, por lo tanto, no puedo decir el mapa más cercano.

Respuesta

14

Puede empezar por leer mis SO respuestas:

Las dos diferencias principales que hay que tener en cuenta es:

  • ClearCase está centrado en archivos, no está centrado en el repositorio, lo que significa que obtiene archivos de solo lectura que necesita verificar uno a uno para poder modificarlos (y "confirma" (registrar) uno por uno también): ninguna revisión espacio de trabajo global de aquí

  • ClearCase consideran ramificación como verdadero metadatos, y no como un "directorio" con una copia barata en él: no es no "directorio" con el nombre de una rama en el mismo.


Dicho esto, rápidamente:

  • repositorio => VOB:
    Sí: VOB es sólo otro término para repo (base objeto de versión). No es una base de datos SQL, sino una antigua base de archivos planos de Atria.

  • Copia de trabajo => ¿Vista de instantánea?
    La vista de instantáneas es el mecanismo de acceso más cercano de una copia de trabajo, ya que copia los archivos en su disco duro.
    La vista dinámica logra el mismo acceso a una copia de trabajo ... sin copiar nada en su disco duro, lo que es interesante para un rápido propósito de consulta.

  • Tronco => ??
    "main": esa es la rama principal en ClearCase (cada elemento - archivo o directorio - en ClearCase tiene al menos una versión en "principal"), pero en realidad no hay troncales excepto la rama elegir como tronco

  • Branch => ¿Flujo de integración? secuencia de desarrollo?
    Una secuencia no es una rama. Es un metadato con la lista de etiquetas (líneas de base) que necesita para trabajar. En ese caso, solo si elige usar UCM. De lo contrario, una rama es cualquier rama que puede crear sin UCM (mkbranch myBranch).
    Una secuencia puede servir como un patrón para crear una rama con el nombre: cualquier salida que realice dentro de una vista de UCM (una vista configurada automáticamente después de una secuencia) creará una rama denominada después de su secuencia.

  • Etiqueta => Etiqueta? ¿Base?
    Primero una etiqueta no es un directorio con una copia barata como UCM.
    Es una etiqueta que se aplica a cualquier versión a la que deba hacer referencia.
    La diferencia entre una etiqueta (no UCM) y una línea de base (UCM) es que una línea de base se aplica en todos los archivos de un componente (UCM) (grupo de archivos), mientras que una etiqueta se puede aplicar en cualquier elemento de su elección, como solo un subconjunto de un grupo determinado de archivos.

  • Pagar desde el repositorio como copia de trabajo => Pagar desde VOB como vista de instantánea?
    Casi, pero el término correcto para la vista de instantánea es "actualizar".
    Para una vista dinámica, ni siquiera necesita una actualización (o svn checkout), ya que la vista es ... dinámica: simplemente ve la copia de trabajo correcta a través de la red al instante. Es solo otro mecanismo de acceso.

  • Confirmar desde copia de trabajo en repo => ¿Entrar desde la vista de instantánea a VOB?
    No del todo, ya que una confirmación se referirá a todos los archivos modificados, mientras que la comprobación se realizará archivo por archivo (aunque ClearCase 7.1.1 ha introducido la noción de "atomic checkin": ver checkin man page).

  • Actualización => Rebase?
    Nope: significa actualizar en vista de instantánea (nada en la vista dinámica ya que es dinámico: cualquier cambio realizado en otra vista con regla de selección similar será visible instantáneamente en su vista)
    Rebase es una fusión de UCM que se hace siendo rama de una secuencia principal a una rama de una secuencia secundaria. Al final, es solo una fusión.

  • Revert => ??
    No es trivial ... Es un substractive merge.

  • ?? => Entregar
    Entregar y Rebase son simplemente fusiones entre "origen" de rama y "destino" de sucursal:
    La única ventaja es que puede "ver" su flujo de trabajo de fusión de antemano definiendo una jerarquía de flujos (que no son más que una lista de etiquetas), a sabiendas de que cualquier fusión entre:

    • rama de una corriente niño a una corriente de los padres será un "entregue"
    • rama de una corriente de los padres a una corriente niño será un "rebase "
+0

Acabo de encontrar flujo de integración y flujo de desarrollo. Entendí su diferencia en términos de casos de uso, pero me pregunto si difieren en términos de implementación técnica dentro de ClearCase. Tome SVN como ejemplo, podemos tener ramas de versión (es decir, 2.x, 3.x) y ramas de desarrollador, pero SVN considera que la rama de versión y la rama de desarrollador son esencialmente iguales. – shiouming

+0

@shiouming: para SVN, las ramas de versión y de desarrollo son solo directorios con copia barata. Para CC, la secuencia Int y la secuencia dev son ambas secuencias (lista de etiquetas): desempeñan la función que usted quiere que reproduzcan. La única diferencia es que cuando crea un proyecto de UCM, necesita al menos una secuencia (llamada por convención "Integración") y luego puede (pero no está obligado a) crear una o varias subcorrientes ("dev") corrientes). – VonC

+0

Yo diría que revertir es como borrar uncheckout. Sin embargo, solo he usado vistas dinámicas, por lo que no sé si puede hacer lo mismo con las vistas de instantáneas. –

1

Lo principal que debe saber es que la forma de usar SVN hoy en día se llama snapshot views en clearcase. Para el resto, clearcase tiene muchas funciones como vistas dinámicas, actividades, objetos derivados y su propio sistema make. Nadie usó estas funciones en la empresa para la que trabajé, que hicieron una elección global para clearcase. O sí, y realmente no funciona si el servidor al que se conecta no está en su oficina.

La mayoría del material de clearcase que he visto se concentra en todas estas otras características, por lo que las leería con cierto escepticismo saludable.

+0

Sí, sé que CC tiene vista de instantánea y vista dinámica. – shiouming

Cuestiones relacionadas