Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 源代码保存在SVN存储库中-我需要备份什么?_Windows_Svn_Tortoisesvn_Backup_Svndump - Fatal编程技术网

Windows 源代码保存在SVN存储库中-我需要备份什么?

Windows 源代码保存在SVN存储库中-我需要备份什么?,windows,svn,tortoisesvn,backup,svndump,Windows,Svn,Tortoisesvn,Backup,Svndump,我最近的任务是在我们的开发系统上实现版本控制。我通过执行以下操作,使用TortoiseSVN创建了一个SVN存储库: 在存储代码的计算机上安装SVN服务器 使用该计算机上的存储库浏览器将源代码导入存储库 导入代码后,我是否认为不再需要存储在那里的代码?其他机器上的工作副本的提交似乎没有改变代码,只有svn存储库 我熟悉SVN不简单存储原始代码,而是存储差异的概念。因此,我的问题是:单独备份SVN repository文件夹是否足以作为此代码的备份策略? 作为预防措施,我们每个月都会在工作机器

我最近的任务是在我们的开发系统上实现版本控制。我通过执行以下操作,使用TortoiseSVN创建了一个SVN存储库:

  • 在存储代码的计算机上安装SVN服务器
  • 使用该计算机上的存储库浏览器将源代码导入存储库
导入代码后,我是否认为不再需要存储在那里的代码?其他机器上的工作副本的提交似乎没有改变代码,只有svn存储库

我熟悉SVN不简单存储原始代码,而是存储差异的概念。因此,我的问题是:单独备份SVN repository文件夹是否足以作为此代码的备份策略?

作为预防措施,我们每个月都会在工作机器上手动备份代码,我正在考虑编写一个计划的批处理文件,每天将存储库备份到远程驱动器如果我使用后者,并且假设我们同时丢失了存储库服务器和工作机器,我们是否能够从daly svndump恢复代码?


希望有意义;提前感谢。

备份SVN存储库服务器就足够了。要记住的一件事是,如果工作机器发生故障,您将丢失您对工作机器所做的任何配置,例如服务器配置、系统变量等,因此请确保记录了这些配置。如果您在虚拟化环境中运行,您可以备份机器映像,这将真正加快恢复时间

至于svndump,这正是它的用途。您可以创建一个新的存储库并加载转储文件,这样您就有了工作代码和所需的一切


我建议您使用转储文件进行恢复的试运行,这样您就可以确信您正确地创建了转储文件,而不会在实际发生紧急情况时试图找出如何恢复转储文件

将代码导入存储库后,应删除原始“源代码”。它没有链接到存储库(除非您执行了就地导入),并且您不希望看到它的人认为他们可以/应该继续使用它。既然您的东西已经在SVN中了,那么该存储库就是您代码的规范源代码

将存储库数据库文件夹作为备份进行简单复制(或使用您选择的企业备份工具进行备份)可能不够。如果在执行另一个操作时执行了复制,则可能会导致存储库备份处于奇数状态。如今,这并不像基于
BDB
的存储库在地球上漫游时那么大的风险,但这需要考虑

使用
svndump
svnadmin hotcopy
制作备份副本。有关更多详细信息

您仍然需要备份您的访问控制配置(除非您使用的是1.8版中的新功能,即将其存储在存储库中)和钩子脚本。这些不是由
svndump
svnadmin热拷贝处理的

请记住,如果您正在执行每日备份,并且存储库中有大量的客户流失,那么您仍然会面临很大的风险。如果你在午夜进行备份,而硬盘在晚上11点发生头部碰撞,你就失去了一整天的工作。出于这个原因,一些存储库管理员在一天中或在每次提交后,为真正的偏执狂更频繁地进行增量转储或热拷贝

如果需要恢复存储库,则在开发人员工作站(或“工作机器”)上备份工作副本是没有用的,因为这些工作副本不保存存储库历史记录。如果它能让你感觉更好,就去做吧,但在Subversion中,工作副本被认为是一次性的。这样做的唯一原因是为了备份人们尚未提交的更改(在这种情况下,他们为什么要保留?),或者在需要备份后加快恢复工作的过程(不强制他们执行新的签出)