首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用svnsync对存储库进行一次转换安全吗?

使用svnsync对存储库进行一次转换安全吗?
EN

Server Fault用户
提问于 2010-11-29 13:58:34
回答 2查看 1.5K关注 0票数 1

我的任务是提取subversion (1.6)存储库的子目录,并将其放入自己的新存储库中。

出于几个原因,我希望使用svnsync将子目录复制到新的存储库中。我现在想确保这是安全的,因为SVNBook说(颠覆1.5)

svnsync对镜像存储库中的更改非常敏感,这些更改不是作为镜像操作的一部分进行的。为了防止这种情况发生,最好是svnsync进程是唯一允许修改镜像存储库的进程。

和(颠覆1.6)

警告不要以某种方式修改镜像存储库,使其版本历史与镜像存储库的版本历史发生偏差。唯一发生在镜像存储库上的提交和修订属性修改应该是由svnsync工具执行的修改。

如果您想使用svnsync实际保持镜像的最新情况,我假设这是有效的。

我们的用例是

  1. 将存储库A的子目录同步到存储库B
  2. 使存储库的子目录为只读(仅用于存档目的)
  3. 进一步提交存储库B上的内容

有人能确认这个用例是可行的吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2010-11-29 16:02:06

在这种情况下,我总是倾向于为这类任务使用dump->filter->load方法,因为它是最干净的路由。(虽然我意识到在大型存储库上花费了相当长的时间)。在你的案子里有什么可以排除的吗?

也就是说,在同步之后,您将得到一个完整的、功能良好的存储库,因此它应该可以工作。为了保持干净,在第一次同步之后,在镜像回购上运行以下命令:

代码语言:javascript
复制
svnlook pl -v --revprop -r0 <path to repo root>

你会看到三个svn:同步..。由svnsync init命令创建的属性。我建议在你写之前把它们删除。我不认为这是绝对必要的,但它应该防止事故发生(例如,在这两个存储库各自为政之后,尝试重新同步)。

不过,我还是会按dump>filter->load作为正确的路线.(噢,标记旧子目录,然后从头中删除它)。

票数 2
EN

Server Fault用户

发布于 2010-12-02 17:03:55

由于我必须稍微调整目标存储库中的目录,下面是我最后要做的事情(旧的repo有一个路径前缀/SOME/,我想去掉它):

  • 初始化和同步:svnsync init [new repo URL] [old repo URL]
  • svnsync sync [new repo URL]
  • 转储用于筛选的新存储库:svnadmin dump [new repo PATH] >REPO.dump
  • 从存储库路径中删除前缀/SOME/DIR:svndumptool.py merge -i REPO.dump -s '^SOME\/DIR\/' '' -x SOME -x SOME/DIR -o REPO_filtered.dump
  • 重新导入存储库:mv [new repo PATH] [away]
  • svnadmin create [new repo PATH]
  • svnadmin load --force-uuid [new repo PATH] <REPO_filtered.dump
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/206992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档