Subversion合并插件/ post checkin / pre checkout hooks

时间:2010-12-30 11:03:55

标签: svn configuration-management svn-hooks

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

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

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

办理登机手续:自动分解文件:

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

结帐:自动重新打包文件:

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

对于合并

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

上述任何一种可能吗?如果是的话怎么样?是不是有一种方式?

1 个答案:

答案 0 :(得分:0)

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

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

相关问题