Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 另一个版本控制系统是否有类似ClearCase的文件系统访问文件版本?_Git_Mercurial_Clearcase - Fatal编程技术网

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

Git 另一个版本控制系统是否有类似ClearCase的文件系统访问文件版本?,git,mercurial,clearcase,Git,Mercurial,Clearcase,在ClearCase中,如果我正在处理某个文件X,并且还想查看其以前的版本(比如版本5),那么它可以作为X@@@main/5提供。其他(最好是免费的)版本控制系统是否也有类似的功能 Mercurial有hg cat和hg co,但它们仍然没有接近ClearCase的上述功能。谷歌快速搜索发现: gitfs是一个基于FUSE的文件系统,用于处理存储在 git存储库。最终目标是提供一种方便的工作方式 有很多树枝和补丁。目前只有非常基本的功能 实现了对现有标记和对象的只读访问 可能还有其他(更活跃的)

在ClearCase中,如果我正在处理某个文件X,并且还想查看其以前的版本(比如版本5),那么它可以作为
X@@@main/5
提供。其他(最好是免费的)版本控制系统是否也有类似的功能


Mercurial有
hg cat
hg co
,但它们仍然没有接近ClearCase的上述功能。

谷歌快速搜索发现:

gitfs是一个基于FUSE的文件系统,用于处理存储在 git存储库。最终目标是提供一种方便的工作方式 有很多树枝和补丁。目前只有非常基本的功能 实现了对现有标记和对象的只读访问


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

基本上,您想要处理任意修订的每个
hg
命令都可以在
hg
中使用
-r
就像一直在clearcase中使用
@
一样
hg
“only”需要
-r
,因为文件的版本不是独立于存储库的,所以给定文件和repo版本,
-r
是明确的

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


如果您想在Mercurial中方便地查看MVFS上的动态视图,这是一个完全不同的问题,您无法真正做到这一点(您可以在NFS上以只读方式进行查看,但显然没有版本控制)。

首先,
X@@@main/5
是一个您只能在中进行探索

其次,您可以快速:

(文件路径始终来自git存储库的根目录)
您还可以将git show用于其他用途(例如)

更多信息,请参阅


就基于修订版的文件系统的动态探索而言,Git的hgfs等效于:

  • 基于FUSE的文件系统,用于处理存储在 git存储库
(Git文件系统的文件系统接口),它在gitfs上扩展

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

为了提供文件系统服务,FIGFS使用

FUSE应用程序允许将文件系统实现为用户空间进程。
应用程序的请求通过VFS层传递到FUSE驱动程序,该驱动程序 将请求发送到用户空间文件系统守护程序。

然后,Figfs通过普通文件系统访问Git存储库,并将生成的数据返回给应用程序。

根据Greg的评论,我能够找到。这对mercurial也有类似的作用。我之所以在
hgcat
和类似命令上执行文件系统接口,是因为这些命令需要额外的一步来提取修订版本,这必须在IDE之外完成。e、 g.如果我正在用xfig绘制原理图,并且希望加载第五个版本,并且有一个文件系统接口,则允许我执行直接文件->打开操作,而
hg cat
需要额外的步骤在使用前转储该版本。@Vijay:明白。我已经完成了我的回答,并为git添加了hgfs的等价物:figfs。OP没有指定操作系统,而且您忘了提到FUSE(因此hgfs、gitfs和figfs)仅适用于Linux。不是每个人都运行Linux:)
git show REVISION:path/to/file