0

我想对一组构建为 zip 文件的文件进行源代码管理,其中包含 XML 文件。

由于目前这些文件按原样签入,因此它们被视为具有所有明显限制的二进制文件

由于这些文件包含 XML 文件,为了避免要求程序员压缩/解压缩,我想自动执行以下操作

对于签到:自动分解文件:

  • 这些文件具有唯一的扩展名,因此对于使用该扩展名签入的每个文件
  • 将该文件解压缩到内存/临时位置
  • 对于这些文件(XML)中的每一个,将它们标准化(用于比较/合并)
    • 以预定义的顺序(例如字母顺序)重新排序根的直接子节点
    • 有些项目有本地参考ID,排序后按顺序重写ID
  • 在 SVN 中创建一个与原始压缩文件同名的文件夹
  • 将 zip 中的文件签入该文件夹

对于签出:自动重新打包文件:

  • 不太重要 - 可以使用 Maven / Ant 完成
  • 检查展开的文件夹(或其任何内容文件)时
  • 而不是签出该文件夹/文件:
  • 压缩该文件夹中的所有文件
  • 并查看压缩文件

对于合并

我假设合并不是 SVN 服务器端,而是客户端的责任,所以有没有一种简单的方法来编写合并插件,(例如对于 Tortoise)

以上任何一种可能吗?如果是这样,那怎么办?有不止一种方法吗?

4

1 回答 1

0

在创建这些 zip 文件的应用程序周围编写一个包装器,而不是使 pre/post checkin 钩子复杂化,这样会更容易。包装器应解压缩所有文件并将它们提供在一个文件夹中。

另一种方式是你所描述的。但复杂性是要有一个触发器来为所有的 zip 文件执行此操作。您最终可能会在触发器中使用另一个过滤器来仅针对特定文件夹中的文件执行此操作,并且必须将这些文件夹集维护在单独的数据库中。为了避免这些复杂性,在应用程序周围编写一个包装器。

于 2011-01-04T08:40:11.397 回答