代码之家  ›  专栏  ›  技术社区  ›  mandel

应将哪些文档添加到SVN回购中?

svn
  •  4
  • mandel  · 技术社区  · 16 年前

    我正在处理一个个人项目,虽然我有一个wiki,但我想将不同的文档文件添加到SVN存储库中。这些文件包括XML(由monodoc生成)和UML图(由dia生成)。

    在这个好主意中,我听到/读到了一些关于不向SVN repo添加二进制数据的评论,并试图保留代码,对吗????

    10 回复  |  直到 13 年前
        1
  •  16
  •   Tim Cooper    13 年前

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

        2
  •  3
  •   Garry Shutler    16 年前

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

        3
  •  1
  •   Avi    16 年前

    我认为保存任何不能从SVN中的源文件重新生成的文件都是完全可以的。其中包括dia/xml文档和图像。

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

        4
  •  1
  •   itsmatt    16 年前

    除了最终产品的版本之外,我不倾向于将大量的二进制文件放在Subversion中。通常,如果我能在飞行中生成一些东西,我就不费事了,除非生成它们需要太长的时间,然后我就把它们粘在那里。

    也就是说,如果能让我的生活更轻松的话,我宁愿把最新文档的副本(不管我是否可以轻松地将它们区分开来)扔进SVN。当老板或客户说“你有10月份的XYZ文档吗?”时,最好能亲手复印一份(不管是最新的还是以前的版本)。.

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

    就我的两分钱。

        5
  •  0
  •   runako    16 年前

    Subversion处理二进制文件很好:

    http://subversion.tigris.org/faq.html#binary-files

    所以如果在源代码树中保存这些文件是有意义的,我会说签入它们。

        6
  •  0
  •   Joonas Pulakka    16 年前

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

        7
  •  0
  •   Ned Batchelder    16 年前

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

        8
  •  0
  •   Krzysztof Kozmic    16 年前

    我的个人规则是不要添加你可以从其他东西中生成的东西。很好的例子是可以用代码注释生成的文档文件。

        9
  •  0
  •   Laserallan    16 年前

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

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

    如果您从分支中反向导出内容,那么也可以反向导出其相应的文档。

        10
  •  0
  •   Peter Neubauer    16 年前

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

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