现在,我的 SVN 存储库位于笔记本电脑的 HDD 上(尽管我将代码托管服务用于更“关键”的个人项目),我只是每周复制一次目录(最终将被脚本化,或者我可能会制作一个应用程序的地狱)。我是否有损坏我的 SVN 存储库的风险?到目前为止,我对原件或副本都没有任何问题,但这并不意味着我将来没有风险。
6 回答
考虑使用热拷贝:
svnadmin hotcopy — 制作存储库的热副本...
此子命令对存储库进行完整的“热”备份,包括所有挂钩、配置文件,当然还有数据库文件。如果您通过
--clean-logs
切换,svnadmin
将对您的存储库执行热拷贝,然后从原始存储库中删除未使用的 Berkeley DB 日志。您可以随时运行此命令并制作存储库的安全副本,无论其他进程是否正在使用该存储库...
AFAIK 它是安全的,但为什么不导出备份呢?
您可能是安全的,但这只是因为您知道没有人在访问您笔记本电脑上的存储库。但是,svn (svnadmin) 提供了热复制和转储命令,它们与您的复制命令一样容易运行,并且它们是“保证安全的”。
您不应该冒着破坏主存储库的风险,只是做一个副本。但是,如果在复制时某些内容被锁定,则副本可能会损坏。
您可以使用诸如SyncBackSE之类的应用程序,它可以安排备份并在锁定的情况下使用卷影副本。
你写了:
现在,我的 SVN 存储库位于笔记本电脑的硬盘上,我只需每周复制一次目录
给你一个问题:为什么?
我是否有损坏我的 SVN 存储库的风险?
如果您的副本只是这样,则根本不是:副本。如果您的“副本”打开了一些锁定的文件以供写入,您可能会处于危险之中(您在评论中说它看起来像是在 Windows 下,并且可能发生在 Windows 上) - 如果有另一个进程试图将某些内容写入同时回购。
到目前为止,我对原件或副本都没有任何问题,但这并不意味着我将来没有风险。
真正的一点是:您是否出于备份目的进行复制?如果是这样,则副本可能没用(取决于还原过程的详细信息)。请参阅: http ://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate
所以最后: 使用 svnadmin dump
我曾经使用闪存盘,只是在上面创建了一个基于文件的存储库。唯一的缺点(除了忘记它!)是闪存盘必须在每台 PC 上具有相同的驱动器号,而且速度感觉就像互联网连接速度很慢。
否则,它工作得很好。