在ClearCase中,如果我正在處理某個文件X並希望看到其以前的版本(也就是版本5),則可以使用它作爲[email protected]@/main/5
。其他(最好是免費的)版本控制系統可以使用類似的東西嗎?另一個版本控制系統是否具有類似ClearCase的文件系統訪問文件版本?
Mercurial有hg cat
和hg co
,但他們仍然沒有接近ClearCase的上述功能。
在ClearCase中,如果我正在處理某個文件X並希望看到其以前的版本(也就是版本5),則可以使用它作爲[email protected]@/main/5
。其他(最好是免費的)版本控制系統可以使用類似的東西嗎?另一個版本控制系統是否具有類似ClearCase的文件系統訪問文件版本?
Mercurial有hg cat
和hg co
,但他們仍然沒有接近ClearCase的上述功能。
快速谷歌搜索發現gitfs:
gitfs是存儲在 Git倉庫源代碼樹的工作基於FUSE的文件系統。最終的目標是提供一個便捷的方式來工作 有很多分支和補丁。目前只實現了非常基本的功能 - 對現有標籤和對象的只讀訪問。
有可能提供類似功能的其他(更活躍)項目(包括Git和其他VCS)。
基本上每個hg
命令你想要處理一個任意修改可以 - 使用-r
在hg
就像使用@@
一直清晰。 hg
「僅」需要-r
,因爲文件不是獨立於版本庫的版本,所以給定文件和回購版本,-r
是明確的。
如果要編輯文件,管道hg cat
與讀取[email protected]@/branch/ver
完全相同 - 它們提供的數據完全相同(只讀)訪問。
如果你想在Mercurial中使用MVFS的動態視圖,這是一個完全不同的問題,你不能真正做到這一點(你可以通過NFS進行只讀,但顯然沒有版本)。
首先,[email protected]@/main/5
是extended 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的等效是:
figfs(文件系統接口GIT中文件系統),其擴展了gitfs。
存儲庫以文件系統的形式呈現,允許同時查看項目代碼的多個版本和分支,而無需重新配置用戶的工作空間。
爲了提供一個音響lesystem服務,網絡連接GFS使用Filesystem in User space (FUSE)
熔絲應用允許音響lesystem到作爲用戶空間進程來實現。
應用程序的請求通過VFS層傳遞到FUSE驅動程序,該驅動程序將請求發送到用戶空間文件系統守護進程。
Figfs隨後通過普通文件系統訪問Git存儲庫,並將結果數據返回給應用程序。
根據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
@Vijay:理解。我已經完成了我的答案,並添加了相當於git的hgfs:figfs。 – VonC 2010-05-27 06:59:11
OP沒有指定操作系統,並且您忘記提及FUSE(以及hgfs,gitfs和figfs)是僅限於Linux的。不是每個人都運行Linux :) – 2012-01-09 20:56:29