重新指向tortoiseSVN存储库

时间:2009-08-24 15:07:59

标签: tortoisesvn

我有一个网络存储库,用于将文件签出到我的本地工作目录。这很好。我现在想做的是获取存储库或本地版本并将其推送到新的存储库。我怎样才能做到这一点?我基本上试图将我的存储库从我的网络复制到一个在线的svn(项目锁定器)。 解释起来很困惑。我只想暂时将我的本地文件指向这个在线svn,这样我就可以将代码推送到那里了。任何建议

5 个答案:

答案 0 :(得分:6)

虽然您可以将repo转储并加载到托管站点,但它们可能无法让您访问shell以将转储加载到新的存储库中。您可以复制repo目录,但如果您正在更改平台,则执行此操作 - 例如,从Windows迁移到Linux主机。

然而,所有这些都不是问题 - 最简单的方法是使用svnsync。创建一个新的存储库(如果尚未创建),然后运行:

svnsync init http://url/to/new/repo http://url/to/old/repo

然后,您需要设置一个pre-revprop-change挂钩以允许所有更改(只需从钩子脚本中“退出0”)

完成后,只需输入:

svnsync --non-interactive sync http://url/to/new/repo

它会将您当前存储库中的每个版本重播到新版本,因此您最终会获得完美的副本。您可以根据需要中断同步,再次运行它并从中断处继续。 (警告:如果你用ctrl + c杀死它,你可能需要删除它使用的锁。输入这个来清除它)

svn propdel svn:sync-lock --revprop -r 0 http://url/to/new/repo

一个很大的好处是,您可以在以后使用现有存储库作为备份,重新初始化新存储库作为源并同步到现有存储库,它将根据需要重放所有最新提交。

答案 1 :(得分:2)

您需要使用svnadmin dump创建本地存储库的转储,然后将转储上传到托管设施,以便您(或他们)执行svnadmin load。我认为你不能用Tortoise来生产垃圾场;你需要完整的svn安装。

答案 2 :(得分:1)

如果您尝试将更改推送到其他位置,则可能尝试将存储库“重定位”到新URL。这是通过右键单击文件夹,选择TortoiseSVN-> Relocate。

来完成的

或者,如果您尝试创建新存储库,则只需复制该文件夹,删除所有.svn文件夹,然后将整个目录检入新存储库。

答案 3 :(得分:1)

我会选择 svnadmin转储解决方案,除非您不关心您的历史记录(然后您只需检查导出的工作副本)。重新安置等不会做你想要的(除非我理解你错了)

答案 4 :(得分:0)

您可能想查看SVN switch --relocate命令。