在ClearCase中,如果我正在处理某个文件X并想要查看其先前版本(例如版本5),则可以使用X@@/main/5
。是否有类似的其他(最好是免费的)版本控制系统?
Mercurial有hg cat
和hg co
,但他们仍然没有接近上面的ClearCase功能。
答案 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相当于:
figfs (Git FileSystem的文件系统接口),扩展了gitfs。
存储库呈现为一个文件系统,允许同时查看项目代码的多个版本和分支,而无需重新配置用户的工作区。
为了提供文件系统服务,fi gfs使用Filesystem in User space (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进行只读,但显然没有版本控制。)