我正在努力改进我在Linux上的工作流程今天我正在研究版本控制,在Windows上我有tortoiseSVN,它为我提供了足够的功能,但是在Linux上我到目前为止一直使用命令行命令。这很好,但显然有一个GUI来显示东西将有助于提高生产力。我发现自己开始依赖我的存储库主机提供的Web界面来查看历史记录详细信息。我得到了Subclipse工作,因为我很喜欢Eclipse CDT,所以我认为这是我将从现在开始使用的工具。
现在,只要我点击Subclipse中的任何内容,无法提高工作效率的是1-2秒等待。显然,它每次都在访问远程存储库。
有没有办法设置系统,以便它可以立即加载与每个文件相关的统计数据?我真的很想能够快速浏览一个文件夹,它可以帮助我保持“全局”的新鲜感,但如果现在需要的话,我肯定不会这么做。
当然,如果我在本地计算机上创建了存储库的克隆,我可以接近即时数据访问时间。这个奖励是我在Windows上浏览TortoiseSVN日志时会注意到一个愉快的速度,前提是我在两个操作系统上都可以访问我的repo,例如在NTFS分区上。
因此,无论何时提交任何更改,我都需要能够将存储库克隆到本地磁盘。我怎么能自动化呢?
我猜测SVN结帐副本不包含这些浏览器正在访问的所有存储库数据,因此寻找与已检出的本地副本链接的选项对我没有任何好处:例如,它不会有数据显示带注释的文件,本地检出的副本只有文件本身(在我结账时指定的任何修订版)以及.svn目录中的任何元数据。
如果我有任何错误,请纠正我。我已经根据使用软件的经验汇总了所有这些结论,而不是阅读实际的文档(我想做的但是真的不能花时间)。
更新:经过一些挖掘后,看起来有一个或多或少的命令可以完全按照我的需要进行操作svnsync
。我真的不想在这里搞任何东西,因为我没有备份我的存储库而且我没有手动设置它,我正在使用Unfuddle的免费服务,这是一流的,方式。
一旦设置了镜像,一旦我在提交更新时让它自动同步,它将同时用作缓存和备份。这将非常方便。我想知道我是否可以从存储库的只读镜像直接签出。这是有道理的。我只是无法对其进行更改。
所以我真正的实际问题是,我怎样才能设置这种回购的同步/镜像呢?我不打算将本地仓库托管到网络或任何东西,我想要的是能够告诉我的SVN客户端(Subclipse或TortoiseSVN)使用这个本地仓库从中提取数据。一个潜在的缺陷是,我不确定我对基本存储库的访问权限是什么,以设置同步。从概念上讲,它应该是一个只读操作,但是当我提交更改时,它必须以某种方式“推送”更新。
更新2:好的,我找到了helpful blog post,这段代码给了我一个重复的回购:
svnadmin create /tmp/localsvn
echo '#!/bin/sh' > /tmp/localsvn/hooks/pre-revprop-change
chmod +x /tmp/localsvn/hooks/pre-revprop-change
svnsync init file:///tmp/localsvn https://your.unfuddle.com/svn/your_root
svnsync sync file:///tmp/localsvn
我没有把我放在/tmp/
中,但这非常简单。
我对这个仓库的访问与Subclipse相得益彰。这很快。
现在的问题是如何在提交时自动同步本地存储库。
更新3:好的,所以看起来我基本上需要在服务器上设置post-commit
和post-revprop-change
挂钩来调用svnsync来访问镜像。它也不可能以任何其他方式完成,这是有道理的......
我想我最终会制作一个脚本并在我想要更新我的本地仓库时调用它。
答案 0 :(得分:0)
这个问题的答案是git
。我一直很满意。