哪些文件应添加到svn回购协议中?

哪些文件应添加到svn回购协议中?,svn,Svn,我正在从事一个个人项目,虽然我有一个wiki,但我想向svn存储库添加不同的文档文件。这些文件包括XML(由monodoc生成)以及UML图(由dia生成) 这是一个好主意,我听到/读过关于不向svn repo添加二进制数据的评论,并尝试只保留代码,对吗?我会将所有文档、库和任何其他内容添加到存储库中。基本上是与项目相关的任何内容,因为这样每个人都可以访问该项目,并且也将拥有最新版本。Subversion可以很好地处理二进制文件: 因此,如果将这些文件放在源代码树中有意义的话,我会说将它们签入

我正在从事一个个人项目,虽然我有一个wiki,但我想向svn存储库添加不同的文档文件。这些文件包括XML(由monodoc生成)以及UML图(由dia生成)


这是一个好主意,我听到/读过关于不向svn repo添加二进制数据的评论,并尝试只保留代码,对吗?

我会将所有文档、库和任何其他内容添加到存储库中。基本上是与项目相关的任何内容,因为这样每个人都可以访问该项目,并且也将拥有最新版本。

Subversion可以很好地处理二进制文件:


因此,如果将这些文件放在源代码树中有意义的话,我会说将它们签入。

这不是关于二进制与文本的关系,而是关于它是否生成。如果您生成了这些内容,为什么不将生成的源代码与生成到SVN的工具一起添加,而不是添加生成的文件本身呢?然后,再加上良好的构建脚本(也在SVN中),您总是可以再次重新生成它们。否则,您将面临生成的文件与源文件不同步的风险,或者有人将生成的文件视为“主文件”,并将其更改混淆地覆盖。

我认为在SVN中保留任何无法从源文件重新生成的文件是完全可以的。包括dia/xml文档和图像


当然,在可能的情况下,最好将它们存储为文本-因此,CSV电子表格比Excel文件更好。

添加与项目相关的所有内容。添加二进制文件(例如库)没有问题,但是:避免添加重复的数据,比如从源代码编译的文件。

svn可以很好地处理二进制文件,但我不会添加生成的文件,只添加源代码。如果您的文档是从其他文件生成的,请不要签入,让其他开发人员自己构建。只有当文件很难构建时,我才会将它们签入Subversion。

除了最终产品的版本之外,我不会将大量二进制文件放入Subversion。通常,如果我可以动态生成一些东西,我就不麻烦了,除非生成它们需要很长时间,然后我就把它们放在那里

也就是说,如果svn能让我的生活更轻松的话,我宁愿把最新文档的副本(不管我是否能轻松地将它们区分开来)扔进svn。当老板或客户说“你有10月份的xyz文档吗?”时,你能拿到某件东西的副本(无论是最新的还是以前的版本)总是很好的

至于你的特殊需要,那么。。只有你知道,但磁盘空间是便宜的,如果有他们的价值,我会这样做


只有我的两分钱。

我的个人规则是不添加可以从其他内容生成的内容。很好的例子是可以由代码注释生成的文档文件。

如果您有一个文档系统,可以以一种巧妙的方式进行合并和差异化,我认为文档的“源”应该在树中。即.tex文件,而不是.pdf文件

如果您分支出一个需要编辑代码和文档的版本,那么文档更改也将在SVN中进行。当您发布一个版本时,您可以从代码和文档源中构建二进制文件


如果您从分支中备份内容,您也可以备份其相应的文档。

我将创建并可能更改的数据放入SVN。例如,我将源代码、解决方案和生成文件以及文档放在SVN中。我尽量避免添加生成的文件,例如从其他格式、二进制文件和第三方库生成的PDF。我不生成和更改的内容(如其他供应商的手册)最终会保存在共享文件夹中。这与其他人所说的完全一致

但是,当我(1)发布版本并需要保留准确发布的文件时,我确实会添加生成的文件和二进制文件;或者(2)文件很难构建,我不希望其他开发人员处理构建过程。有时,为了方便起见,我会添加第三方库,这样新开发人员就不必查找、下载和安装它们——这对我很有帮助,因为我的许多开发机器都没有到Internet的连接