2010-05-26 156 views

回答

3

快速谷歌搜索发现gitfs

gitfs是存储在 Git仓库源代码树的工作基于FUSE的文件系统。最终的目标是提供一个便捷的方式来工作 有很多分支和补丁。目前只实现了非常基本的功能 - 对现有标签和对象的只读访问。

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

1

基本上每个hg命令你想要处理一个任意修改可以 - 使用-rhg就像使用@@一直清晰。 hg“仅”需要-r,因为文件不是独立于版本库的版本,所以给定文件和回购版本,-r是明确的。

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

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

5

首先,[email protected]@/main/5extended pathname,你可以真正探索只能在dynamic views

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

git show REVISION:path/to/file 

(从Git仓库的根是该文件的路径总是)
你可以使用git秀例如其他用途(see the file as it is in another branch

查看"How to retrieve a single file from specific revision in Git?"了解更多。


在基于修订文件系统的动态探索来看,HGFS对Git的等效是:

  • gitfs基于FUSE的文件系统与存储在 的git源码树工作库。

figfs(文件系统接口GIT中文件系统),其扩展了gitfs。

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

为了提供一个音响lesystem服务,网络连接GFS使用Filesystem in User space (FUSE)

work of Reilly Grant

fuse

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

+1

根据Greg的评论,我能够找到http://www.ueber.net/code/man/hgfs/tip/man/4/hgfs.html。它为mercurial做了类似的事情。 我通过'hg cat'和类似的命令推断文件系统接口的原因是这些命令需要额外的一步来提取必须在IDE之外完成的修订。例如如果我正在使用xfig绘制原理图并希望加载具有文件系统接口的第5个修订版,则允许我执行直接文件 - >打开操作,而“hg cat”需要额外的步骤才能在使用前转储修订版。 – Vijay 2010-05-27 02:33:55

+0

@Vijay:理解。我已经完成了我的答案,并添加了相当于git的hgfs:figfs。 – VonC 2010-05-27 06:59:11

+0

OP没有指定操作系统,并且您忘记提及FUSE(以及hgfs,gitfs和figfs)是仅限于Linux的。不是每个人都运行Linux :) – 2012-01-09 20:56:29