另一个版本控制系统是否具有类似ClearCase的文件系统访问文件版本?

时间:2010-05-26 05:14:53

标签: git mercurial clearcase

在ClearCase中,如果我正在处理某个文件X并想要查看其先前版本(例如版本5),则可以使用X@@/main/5。是否有类似的其他(最好是免费的)版本控制系统?

Mercurial有hg cathg co,但他们仍然没有接近上面的ClearCase功能。

3 个答案:

答案 0 :(得分:5)

首先,X@@/main/5 extended pathname ,您只能在dynamic views中进行探索。

其次,您可以快速access an older version of a file in Git

git show REVISION:path/to/file

(文件的路径始终来自git存储库的根目录)
您可以将git show用于其他用途(例如see the file as it is in another branch

有关详情,请参阅"How to retrieve a single file from specific revision in Git?"


在基于修订版的文件系统的动态探索方面,Git的hgfs相当于:

  • gitfs 基于FUSE的文件系统,用于处理存储在其中的源树 git repositories。

figfs (Git FileSystem的文件系统接口),扩展了gitfs。

  

存储库呈现为一个文件系统,允许同时查看项目代码的多个版本和分支,而无需重新配置用户的工作区。

     

为了提供文件系统服务,fi gfs使用Filesystem in User space (FUSE)

来自work of Reilly Grant

fuse

FUSE应用程序允许将文件系统实现为用户空间进程 应用程序的请求通过VFS层传递到FUSE驱动程序中 将请求发送到用户空间文件系统守护程序 然后,Figfs通过普通文件系统访问Git存储库,并将结果数据返回给应用程序。

答案 1 :(得分:3)

快速Google搜索gitfs

  

gitfs是一个基于FUSE的文件系统,用于处理存储在其中的源树   git存储库。最终目标是提供便捷的工作方式   有很多分支和补丁。目前只有非常基本的功能   已实现 - 对现有标签和对象的只读访问权限。

可能还有其他(更活跃的)项目提供类似功能(包括Git和其他VCS)。

答案 2 :(得分:1)

基本上,您希望处理任意修订的每个hg命令都可以 - 在-r中使用hg就像在{clear}中一样使用@@hg“仅”需要-r,因为文件未独立于存储库进行版本控制,因此在给定文件和repo版本的情况下,-r是明确的。

如果要编辑文件,管道hg cat与阅读file@@/branch/ver完全相同 - 它们提供与数据完全相同(只读)的访问权限。

如果你想在Mercurial中获得MVFS动态视图的便利,这是一个完全不同的问题,你不能真正做到这一点(你可以通过NFS进行只读,但显然没有版本控制。)