递归覆盖Subversion目录文件

时间:2011-06-22 13:47:31

标签: svn

所以在我的subversion跟踪项目中,我有一个文件夹(让我们称之为/auto-generated/),这是一个GUI程序自动创建的(顾名思义)(它是一些xml文件中的一小部分)嵌套目录)。我的项目旨在与这个GUI程序协同工作,所以我显然希望在版本控制中保留它的任何配置。它已经添加并提交,因此每个目录都有自己的.svn/文件夹。

每次我想用所有新的嵌套文件更新/auto-generated/目录时,问题就出现了。我不能只是从GUI程序的位置复制粘贴整个目录,因为所有.svn/文件夹都会被覆盖。

懒惰的方法是并排进入每个文件夹并手动复制基本目录和其中每个子目录的文件。显然这非常乏味。

除了编写一个bash脚本为我这样做之外,是否有任何svn命令我可以使用它不会完全破坏已经跟踪的文件夹中的所有嵌套.svn/目录?

2 个答案:

答案 0 :(得分:1)

通常,您不应将生成的文件存储在源代码中。但是,有时这是不可能的。

我们在Robohelp生成的帮助文件中遇到了类似的问题。 Robohelp获取了Microsoft Word文档并生成了HTML文件。问题是每次运行Robohelp时都会更改所有文件和目录名称。通常,我只是自己生成该死的文件作为构建过程的一部分。但是,我们建立在Linux系统上,而Robohelp只能在Windows上运行(并且只能以交互方式运行)。

我们通过将Robohelp中的所有文件压缩到一个zip文件中来处理这个问题,然后只检查一个zipfile。我们的构建过程会在必要时将其解压缩。

您可以对自动生成的文件执行相同操作。您可以使用单个zip文件来检入和检出,而不是整个目录树。当自动生成的内容发生更改时,只有一个文件(zip)显示在历史记录日志中,而不是整个目录树中。

答案 1 :(得分:0)

检查派生的工件是你的问题 - 而不是颠覆。 你提到的项目很少,除了它是一个生成相关文件的GUI。是否可以将自动生成放在svn:ignore上然后让构建生成它们?工作站生成它们需要多长时间?他们多久更换一次?