可能是个愚蠢的问题。但我通过 apt-get 安装了 SVN 1.4.6。一切都很好,没有问题。我想备份所有的 SVN 文件,所以我想备份 /svn,这是设置 appache 的地方。
无论如何。我有一个名为 retroeventhandler.vbs 的文件。当我跑
sudo find / -name retroeventhandler.vbs
我什么也得不到。但我可以在 ip/svn/ 浏览服务器并查看那里的所有文件。
这些文件应该在哪里的任何想法?我是不是错过了什么。
更新基于 squillman 的帖子:
ls -l /svn/repos/avqbsync/db/revs 返回
total 35252
-rw-r--r-- 1 www-data root 115 2009-09-01 14:42 0
-rw-r--r-- 1 www-data root 9445835 2009-09-01 14:42 1
-rw-r--r-- 1 www-data root 2490 2009-09-01 14:42 2
-rw-r--r-- 1 www-data root 800 2009-09-01 14:42 3
-rw-r--r-- 1 www-data www-data 4779 2009-09-08 14:06 4
-rw-r--r-- 1 www-data www-data 8914223 2009-09-08 14:45 5
-rw-r--r-- 1 www-data www-data 8816246 2009-09-08 16:28 6
-rw-r--r-- 1 www-data www-data 651 2009-09-08 16:30 7
-rw-r--r-- 1 www-data www-data 862 2009-09-08 16:31 8
-rw-r--r-- 1 www-data www-data 8818276 2009-09-08 16:35 9
我的理解是,这些都是版本或版本。所以如果我备份这个目录,我想我以后可以恢复文件?或者没有。对不起,如果这是一个菜鸟问题,只是有点混乱。
另一个更新: 找到这个链接可能会给我一个更好的解决方案:
Subversion 将存储库信息存储在平面文件的数据库中。如果您的存储库位于 /svn 中,那么这就是您提交的文件所在的位置。它实际上并不将存储库数据存储在与您在客户端创建的文件结构相同的文件结构中。您实际上不会在文件系统级别看到 retroeventhandler.vbs。
如果您想浏览存储库,请使用subversion 客户端(例如 Windows 中的 TortoiseSVN)或 svnlook。
作为对您的编辑
的回应:看看这篇文章,它在底部谈到了使用
svnadmin dump
.您可能应该使用它
svnadmin dump
来进行备份。我强烈建议通读svn 书斯奎尔曼是对的。您不会发现这些文件只是坐在那里,它们包含在数据库中。这是一个很棒的 perl 脚本,它执行备份,将其复制到另一台机器,测试备份的完整性,并将结果通过电子邮件发送给您。
我刚刚完成了一个 shell 脚本,它每月进行完整备份和每晚增量备份,所有这些都到异地服务器。这是它的工作原理:
异地服务器每晚运行一个 cron 作业。每个月的第一个星期日,此脚本运行
ssh svnuser@myhost svnadmin dump /svnpath
并将输出通过管道传输到文件。然后它从文件末尾向后扫描,并在文件中记录最后的修订号。在所有其他晚上,脚本通过 ssh 运行“svnlook youngest /svnpath”,并将输出与最后记录(备份)的修订号进行比较。如果有新的提交,它会运行
svnadmin dump -q --deltas --incremental -r $LASTREV+1:HEAD /svnroot
并将输出转储到文件中。然后它运行一些清理代码来删除超过 $N 天的完整转储和任何比最新完整更旧的增量转储。