有没有人知道一种方法来访问文件系统中的所有版本库的修订版本? 我真的能从本地引用文件中受益,例如“/var/svn/repo/rev4235/project/trunk/file.c”等。
我可以相当直接地写一些脚本来手动在手动创build的目录树中将不同版本的文件从Subversion中移出,但直接到达svn会更好。
[旁白:我知道svnfs,但这只是介绍了当前的版本,虽然我已经能够创build确切的function,我需要在Apache上,我看不出任何方式来挂载该Web服务器,例如httpfs(需要文件范围访问,我不认为这是可能的mod_dav_svn服务)或mod_dav&davfs等…(我可以提供mod_dav_svn ??!?!
谢谢
克里斯
我不确定是否正确读取了你的内容,但是如果你只需要在同一个盒子上运行本地存储库访问表单脚本,就可以使用file:// URIscheme和svn命令行工具:
svn info -r <rev> file:///var/svn/repo/rev4235/project/trunk/file.c
大多数svn命令都可以工作,只要用户拥有对存储库文件系统的写入权限,甚至可以对其进行提交。 无论您为存储库select的数据库后端如何,这都应该可以工作。
请注意,如果这种情况发生在其他地方(例如在apacheconfiguration中),则绕过authentication。 这可能是一个问题,取决于你的环境。
嗯,这是另外一个不了解我自己的需求的例子,因为不了解SVN几乎和我真正需要的一样。 我只需要创build我想要访问的每个版本的标签,然后就不需要在后面进行修改以达到特定的修订版本。 难怪一些人的要求只是违背惯例,而且在很大程度上是多余的。
感谢您的答复,虽然,赞赏
你可以咕咕地回购git(长时间一次性导入):
git svn clone -s file:///var/svn/repo/project
并使用git fs来访问内容。
git fs cd .git/fs/HEAD/log cd ~rev/worktree cat file.c
免责声明:git fs是我的工作。
不,SVN FS没有办法做到这一点。 它将所有variables存储在repo / db /文件夹中的文件中,每个变更集包含1个文件,其中包括每个更改文件的所有变化量。 如果偶尔运行svnadmin包,那么这些文件最终将全部打包到一个文件中(当目录中有1000个文件时)。
所以..不,没有通过浏览存储库存储来获取整个文件的文件系统方式。
但是,您可以通过webdav或file:// URI访问SVN。 我不知道你是否可以只读mod_dav和读写mod_dav_svn(你可以通过webdav使用RW访问svn HEAD)。 我认为最好的方法是使用脚本的文件机制,不难通过SVN命令使用它。
为什么不简单地使用svnFS 。 这一切都在你所寻找的。
至less比将迁移回迁移到git更容易,只是使用git fs。