通过 SubVersion 进行个人源代码控制——在我走得太远之前阻止我!

通过 SubVersion 进行个人源代码控制——在我走得太远之前阻止我!

我最近被 SVN 困扰了;很大程度上是因为在工作中大量使用个人仓库来控制概念验证代码、文档和小文件,并保持我的两台机器同步。

我的家用 NAS 是 D-Link DNS-323,是一个坚固的小盒子,安装了一些额外的脚本和软件包,可以提供一些日常备份——但它也有一些缺点,无法像我希望的那样使用。我希望将它用作我的永远在线的文件服务器,供家庭和远程使用——但权限控制相当薄弱和不灵活,从我的家庭网络外部访问它仅限于 SSH/SCP 和 FTP(即使有的话也只是暂时打开)。

所以我心想:如果我主要将它用作基于 SVN 的文件服务器并允许通过 SSH+SVN 进行远程访问,会怎么样?我仍然可以拥有一个非 SVN Windows 共享来存储大型文件(例如我的笔记本电脑备份);但我可以将其大体用作个人文件的 SVN 存储库。

这里的问题是我应该在哪里停下来,SVN 对最大存储库大小或存储在其中的文件大小有哪些限制?

答案1

Debian 项目的开发人员 Joey Hess 撰写了一篇关于将 subversion 用于个人用途的长篇指导文章:颠覆你的主目录,或者让你的生活留在 svn 中。我想你会从中找到一些好的想法。

如果你仔细阅读那篇文章的顶部和底部,你会发现他首先在 CVS 中实现了这个想法,现在他的大部分主目录都保存在 git 中

答案2

Subversion 主要用作源代码控制系统,因此其主要目的不是对二进制文件进行版本控制。您认为使用 Subversion 保持系统同步有哪些优势(我觉得总是必须将 Subversion 元信息保存在我的常规文件中,并且管理这些信息会变得非常烦人,这很糟糕)?

也许是一个备份工具同步或文件同步器齐奏通过 FTP 或 SSH 更适合您要执行的操作。

答案3

虽然 subversion 用于源代码控制,但我(滥用)使用它进行备份。我遇到了许多有趣的限制:

  • 使用 http 传输时,我有时会遇到签出和提交时 2GB 的传输限制,但并非总是如此
  • .svn 子目录有每个文件的第二个副本,因此你的空间需求会立即翻倍
  • 目录中有大量文件时速度会非常慢
  • Subversion 存储库永远不会缩小;即使您“删除”了某个文件,它的大小也只会增加,因为它保留了该文件在过去的历史记录

但是,即使有这些限制,我发现它对我来说还是很好用的。你可以在服务器上做的一件有趣的事情是使用提交后挂钩将每个提交的副本自动推送到异地位置(使用 svnadmin 工具对该修订进行增量转储)。

答案4

我尝试将 subversion 用于开发代码以外的其他方面。我明白,虽然它对设计师用户来说非常有效,因为它记录了艺术作品的发展历程。我为 subversion 买的书开头提到他们确实将 subversion 用于一切,包括他们的购物清单。虽然我很少从事图形艺术工作,但 mediawiki 在一个已经易于使用的基于 Web 的界面中提供了相同的功能。它还具有其他功能,例如关于内容的讨论。我认为 Trac 做得非常好,它付出了额外的努力并将 wiki 与 svn 结合起来。作为 svn 的新手,除了额外步骤所需的额外时间外,我没有遇到任何限制。

相关内容