Ubuntu 服务器上的 Subversion 路径

Ubuntu 服务器上的 Subversion 路径

这可能是一个愚蠢的问题。但我通过 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

我的理解是,每个都是修订版本。所以如果我备份这个目录,我假设我以后可以恢复这些文件吗?或者不行。抱歉,这是一个新手问题,只是有点令人困惑。

另一个更新: 找到了这个关联这可能会给我一个更好的解决方案:

答案1

Subversion 将存储库信息存储在平面文件数据库中。如果您的存储库位于 /svn,那么您提交的文件就在那里。它实际上并不将存储库数据存储在您在客户端创建的相同文件结构中。您实际上不会在文件系统级别看到 retroeventhandler.vbs。

如果你想浏览存储库,请使用颠覆客户端(例如 Windows 中的 TortoiseSVN)或 svnlook。

回应您的编辑:
看一下本文,在底部它谈到了使用来备份 repo svnadmin dump

答案2

您可能应该使用svnadmin dump它来进行备份。我强烈建议您阅读svn 书

答案3

斯奎尔曼是正确的。您不会发现文件就放在那里,它们包含在数据库中。这里是一个很棒的 perl 脚本,它可以执行备份、将其复制到另一台机器、测试备份的完整性并通过电子邮件向您发送结果。

答案4

我刚刚完成了一个 shell 脚本,该脚本每月执行一次完整备份,每晚执行一次增量备份,全部备份到异地服务器。它的工作原理如下:

异地服务器每晚运行一个 cron 作业。每月的第一个星期日,此脚本运行ssh svnuser@myhost svnadmin dump /svnpath并将输出传送到文件。然后,它从文件末尾向后扫描,并将最新的修订号记录在文件中。

在其他所有夜晚,脚本通过 ssh 运行“svnlook youngest /svnpath”,并将输出与最后记录(备份)的修订号进行比较。如果有新的提交,它会运行svnadmin dump -q --deltas --incremental -r $LASTREV+1:HEAD /svnroot并将输出转储到文件中。

然后它运行一些清理代码来删除超过 $N 天的完整转储以及任何超过最新完整转储的增量转储。

相关内容