2010-05-26 16 views
5

En ClearCase, si estoy trabajando en algún archivo X y también quiero ver su versión anterior (digamos la versión 5), está disponible como [email protected]@/main/5. ¿Hay algo similar disponible con otros sistemas de control de versiones (preferiblemente gratuitos)?¿Tiene otro sistema de control de versiones un acceso de sistema de archivos ClearCase a las versiones de archivo?

Mercurial tiene hg cat y hg co, pero todavía no se acercan a la función de ClearCase anterior.

Respuesta

3

Una rápida búsqueda en Google encontrados gitfs:

gitfs es un sistema de archivos basado en fusible para trabajar con árboles de origen almacenados en repositorios Git. El objetivo final es proporcionar una forma conveniente de trabajar con muchas ramas y parches. Actualmente solo se implementa la funcionalidad básica - acceso de solo lectura a las etiquetas y objetos existentes.

Es probable que haya otros proyectos (más activos) que ofrezcan funciones similares (tanto para Git como para otros VCS).

1

En principio, cada comando hg que se quiere manejar una revisión arbitraria puede - con ayuda de -r en hg es como usar @@ en clearcase todo el tiempo. hg "solo" necesita -r porque los archivos no están versionados independientemente del repositorio, por lo que dado un archivo y una versión repo, -r no es ambiguo.

Si desea editar un archivo, la tubería hg cat es exactamente como leer [email protected]@/branch/ver - proporcionan exactamente el mismo acceso (solo lectura) a los datos.

Si desea la conveniencia de las vistas dinámicas sobre MVFS en Mercurial, ese es un problema completamente diferente y realmente no puede hacerlo (puede hacerlo de manera solo lectura en NFS, pero obviamente no hay versiones allí).

5

En primer lugar, es un [email protected]@/main/5extended pathname la que realmente se puede explorar sólo en dynamic views.

En segundo lugar, usted puede rápidamente access an older version of a file in Git:

git show REVISION:path/to/file 

(con la ruta del archivo que se siempre desde la raíz del repositorio git)
y se puede utilizar muestran git para otros usos (see the file as it is in another branch, por ejemplo,)

Ver "How to retrieve a single file from specific revision in Git?" para más.


En término de la exploración dinámica de un sistema de ficheros basado en revisión, el equivalente de HGF para Git sería:

  • gitfs sistema de ficheros basado en fusible para trabajar con árboles de origen almacenados en git repositorios.

figfs (la interfaz del sistema de ficheros a Git sistema de archivos), que se expande en gitfs.

El repositorio se presenta como un sistema de archivos que permite ver múltiples versiones y ramas del código de proyecto simultáneamente y sin la necesidad de reconfigurar el espacio de trabajo del usuario.

el fin de proporcionar un servicio de sistema de ficheros fi, fi GFS utiliza la Filesystem in User space (FUSE)

Desde el work of Reilly Grant

fuse

Una aplicación FUSIBLE permite a un sistema de ficheros fi para ser implementado como un proceso de espacio de usuario.
La solicitud de una aplicación se pasa a través de la capa VFS y al controlador FUSE que envía la solicitud al daemon del sistema de archivos de espacio del usuario.
Figfs luego accede al repositorio de Git a través del sistema de archivos normal y devuelve los datos resultantes a la aplicación.

+1

Basado en el comentario de Greg, pude encontrar http://www.ueber.net/code/man/hgfs/tip/man/4/hgfs.html. que hace algo similar para mercurial. El motivo por el que me perferir la interfaz del sistema de archivos por 'hg cat' y comandos similares es que estos comandos requieren un paso adicional para extraer la revisión que debe realizarse fuera del IDE. p.ej. si estoy dibujando un esquema con xfig y quería cargar la quinta revisión con una interfaz de sistema de archivos, puedo hacer una operación directa de archivo-> abrir, mientras que 'hg cat' requiere un paso adicional para volcar la revisión antes de su uso. – Vijay

+0

@Vijay: entendido. He completado mi respuesta y he añadido el equivalente de hgfs para git: figfs. – VonC

+0

El OP no especificó un sistema operativo, y se olvidó de mencionar que FUSE (y por lo tanto hgfs, gitfs e figfs) es solo para Linux. No todo el mundo ejecuta Linux :) –

Cuestiones relacionadas