2010-10-11 71 views
3

是否可以将项目的所有修订拷贝到本地机器上?基本上,我想要的是能够将项目W,X,Y和Z从远程SVN存储库中取出,并且可以在我的计算机上访问它们,理想情况下是在本地运行的SVN副本中。理想情况下,我想用某种GUI工具来做到这一点,因为我的unix技能有限,而且我无法在工作中准备好访问* nix盒子。获取SVN项目的所有版本的本地副本

我没有直接访问有问题的服务器,所以我仅限于可以在snv客户机上完成的方法。

我的第一个目标是在关闭服务器之前备份代码。我只是通过结账的方式以基本形式存在,但如果可能的话,我想保留更改历史记录。只要服务器启动就能够保持同步也很有用,但由于目前不太可能对代码进行任何额外的编辑,因此是一个较低优先级的目标。

回答

2

Subversion是一个基于'服务器'的版本控制系统。你在问什么,更适合'分布式版本控制系统'。使用git-svn,您可能有一个本地副本,同时仍然对中央(Subversion)存储库有贡献。

+0

的确如此。目前我主要关心的是第三方服务器的长期可用性。单向快照足以用于存档目的。如果有任何不太密集的可用资源,那种双向链接是过度的。 – 2010-10-11 13:09:33

+0

我问你同样的问题,我做了RUP。这种方法的粒度是多少。第三方存储库中有些项目我不想提及。 – 2010-10-11 15:49:02

+0

你的主要目标是什么?对源代码管理进行解耦,存档或本地脱机访问。 – zellus 2010-10-11 16:07:11

-1

你可以用svnadmin的转储备份:

http://svnbook.red-bean.com/en/1.1/re31.html

+0

您无法访问数据,它只是转储 – CharlesB 2010-10-11 13:40:36

+0

您可以轻松地将数据加载到本地存储库。而且它似乎无论如何都是有备份的。 – 2010-10-11 13:56:59

+0

如果您可以向第三方请求转储,那么您(或他们)可以使用捆绑的'svndumpfilter'脚本将其减少到您感兴趣的存储库部分。请注意,这不是(上次我尝试)与'--deltas'转储一起工作,只有'--incremental'。 – Rup 2010-10-11 18:08:34

1

还有svnsync;一旦您设置了预提交钩子来启用修订版本属性更改,就可以使用它镜像到本地存储库。

这仅使用客户端操作;至少如果你能说服你的管理员给你一个存储库转储,那么svnadmin dump/load方法可能更好。

+0

设置pre-commit钩子涉及什么?理想情况下,我想在公司SVN服务器上使用存储库,但对其进行的任何配置更改都需要通过我们的IT部门。 – 2010-10-11 13:59:25

+0

另外,svnsync是否允许控制它获得的范围?第三方存储库中有很多项目,我不想抓取其副本。 – 2010-10-11 14:51:18

+0

对于钩子,创建存储库以使用'svnadmin create'同步,然后查看那里的'hooks'目录;采取'pre-revprop-change.tmpl'并在Windows上将其重命名为'.bat',或者剥离该扩展名并使其可在Linux上执行 - 即只是轻微更改文件。文件中的注释可以很好地解释它,尽管对于同步存储库,您可能只想用'exit 0'(即true)替换它。选择性同步:不要这么认为,对不起 - 或者至少我从来没有这样做过,我也没有看到有关初始化或同步的任何参数。所以对你来说可能不是最好的解决方案。 – Rup 2010-10-11 18:06:41

4

如果您的目标仅仅是远程回购结账http://rsvndump.sourceforge.net/的备份。你只需要用户访问就可以获得这个转储,而且你不需要特殊的权限。需要提醒的是,它是一个命令行工具。

+0

,看起来比我目前看到的更接近我想要的东西。我需要为4个urls提供转储(base/app1,base/app2,base/lib1和base/lib2)。你知道这个工具是让我指定多个URL,还是可以将转储合并到一个本地存储库中并使修订数据全部匹配(即对于影响几个单独转储的检入)。 – 2010-10-12 14:34:33

+0

不,我不知道在同一个命令中给出4个URL的任何选项。我没有尝试将所有4个URL个人转储到一个存储库中。但我的直觉认为它会起作用。请保持我们张贴,如果它的工作。 – 2010-10-12 16:11:32