Subversion - 删除/重新创建目录后协调更改

时间:2011-06-20 21:04:10

标签: svn tortoisesvn

我有一个进程,通过删除整个文件夹,重新创建它,然后填充文件来更新文件夹的内容。不幸的是,删除了使svn不满意的.svn文件夹。我可以使用什么过程来删除文件夹,写一些文件,然后告诉svn重新组合差异(即认识到我创建了一些具有相同名称但更新内容的文件,一些文件不再存在,新文件已被删除添加)?该解决方案也适用于子文件夹,因为这些将在此过程中删除/重新创建。

2 个答案:

答案 0 :(得分:2)

有点困惑你正在寻找什么。如果您有一个创建文件夹和数据的进程,为什么要在Subversion中存储文件夹和子文件夹? Subversion应该仅用于源而不是生成的内容。

我希望有更多的解释,你正在做什么以及为什么。

我们有人使用Robohelp来维护我们在源代码中使用的HTML文件。 Robohelp从MS-Word文档生成HTML文件。当它进行重新生成时,即使最小的更改,文件名,大小和目录也可能会发生变化。旧的方法是删除所有内容并将其重新读回。对于技术作者而言,这很难做到并在单个Subversion版本中生成了数千个更改。

最后,我们将Word doc文件存储在Subversion中。生成的HTML已删除。但是,我们确实存储了一个包含所有HTML的ZIP(因为我们的Unix构建过程无法从Robohelp生成HTML)。当一组新的帮助文件被重新生成时,Tech编写者只需将其压缩并替换我们的Subversion存储库中的zip文件。没有更多的大量添加和删除。

您是否尝试将Subversion中正在进行的工作与Subversion同步?例如,有人通过svn export下载文件,完成工作,检查所有更改是您的工作。在这种情况下,您应该编写一个小脚本来完成并将目录#1中的所有内容与目录#2中的所有内容进行比较,并以此方式进行更改。我相信我们在三次通过中做到了这一点。第一次,删除目录#1中不在目录#2中的所有内容,然后添加目录#2中不在目录#1中的所有内容。最后,比较目录#1和目录#2中的所有文件并提交这些更改。

答案 1 :(得分:0)

你必须自己编写脚本/编码。

要么:备份所有的.svn文件夹,并在你的3.方完成它之后将它们放回原处,或者在附近保留一份2.工作副本并复制来自1.工作副本的所有文件派对已经更新。

然后,找到所有已移除的文件svn status,标记为“D”的文件并在这些文件上发出svn rm。查找具有svn状态的所有新文件,标记为?并添加svn。

最后运行svn commit。