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


4

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

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

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

这里的问题是我在哪里停止,关于最大回购大小或其中存储的文件大小,SVN受到哪些限制?

Answers:



13

Subversion主要用作源代码控制系统,因此主要目的不是对二进制文件进行版本控制。您在使用Subversion保持系统同步时看到了什么优势(我总是总是不得不将Subversion元信息保存在我的普通文件中并进行管理可能会很烦人,这很糟糕)?

也许像rsync之类的备份工具或通过FTP或SSH通过文件Synchronizer Unison进行备份更适合您的工作。


4

虽然Subversion用于源代码控制,但我(将其)用于备份。我遇到了许多有趣的限制:

  • 使用http传输,我有时在结帐和提交方面遇到2GB的传输限制,但并非总是如此
  • .svn子目录有每个文件的第二个副本,因此您立即需要加倍空间
  • 目录中的大量文件变得非常慢
  • 颠覆存储库永远不会缩小;即使您“删除”文件,它的大小也只会增加,因为它会保留该文件的历史记录

但是,即使有这些限制,我仍然觉得它非常有效。您可以在服务器上做的一件有趣的事情是使用提交后挂钩自动将每个提交的副本推送到异地位置(使用svnadmin工具进行该修订的增量转储)。


哦,我还记得另一个:在将我的主目录签出到一台新机器上时,我必须确保我触摸了mbox索引文件,以便kmail不会重建它们并抛出read / replied / etc标志。在上面。使用maildir代替mbox遇到了我已经提到的第三个缺点。
2009年

追溯,您可以编辑答案以包括您的评论。在相关注释上,您也可以在将其合并到答案中后将其删除。
特拉维斯,

4

就大小限制而言,我从未拒绝过文件。包括将ISO文件放入其中等。存储库大小几乎总是受硬盘驱动器大小限制,而不是受subversion限制

回应Daff的回答: rsync不做颠覆可以做的事情。您是否想拥有一个可以随处刻录的Ubuntu ISO?大! rsync可以分发文件,效果很好。但是现在您更新到Ubuntu 69.88,但是一周后您发现它不适用于旧的486sx笔记本电脑。使用rsync,您必须查找较旧的ISO,然后下载它,等等。使用subversion,您可以简单地回滚到该文件的较旧版本。

如果您打算对某些文件使用subversion,则不妨全力以赴并将其用于所有内容。较大的文件效率不高,但是最好将其集中化。

</ 2美分>


您可以使用RSync进行增量版本备份,主要要点是,与SOURCE版本控制系统相比,有更好的工具来处理二进制文件备份(对于备份,我更喜欢用另一种方法:让服务器代替新的备份)必须始终承诺所有事情)。我从未说过,如果您可以忍受所有缺点,那将是行不通的。
Daff

backuppc.sourceforge.net显示了如何在使用rsync的同时保留备份的修订版。
gbjbaanb 2010年

2

我试图推动将Subversion用于开发代码以外的其他事情。我了解到,尽管它对设计师的用户非常有用,因为它对艺术品的发展具有历史意义。我购买的用于颠覆的书开头提到他们确实对包括杂货店购物清单在内的所有商品都使用颠覆。尽管我没有太多图形艺术,但MediaWiki在已经易于使用的基于Web的界面中提供了相同的功能。它还具有其他功能,例如有关内容的讨论。我认为Trac可以通过加倍努力并在svn中加入wiki来做得很好。作为svn的新手,除了其他步骤所需的额外时间外,我没有遇到任何限制。


1

继续前进!我已经做了几年了,这真的很棒!虽然确实需要一些注意,但是现在每当我有一台新机器时,我都会进行svn co并在其中运行脚本,然后得到Firefox和类似的东西。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.