Svn Subversion合并插件/签入后/签出前挂钩

Svn Subversion合并插件/签入后/签出前挂钩,svn,configuration-management,svn-hooks,Svn,Configuration Management,Svn Hooks,我想对一组构建为zip文件的文件进行源代码管理,其中包含XML文件 由于当前这些文件是按原样检入的,因此它们被视为具有所有明显限制的二进制文件 由于这些文件包含XML文件,为了避免要求程序员压缩/解压,我想自动执行以下操作 对于签入:自动分解文件: 这些文件具有唯一的扩展名,因此对于每个使用该扩展名签入的文件 将该文件解压缩到内存/临时位置 对于每个文件(XML),将其规范化(用于比较/合并) 按预定义顺序(例如,字母顺序)重新排列根的直接子节点 有些项目具有本地引用ID,请在排序后依次重写

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

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

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

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

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

  • 不太重要-可以使用Maven/Ant完成
  • 签出分解的文件夹(或其任何内容文件)时
  • 不签出该文件夹/文件:
  • 压缩该文件夹中的所有文件
  • 然后查看压缩文件
用于合并

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


上述任何一种可能吗?如果是的话,那怎么办?有不止一种方法吗?

与其使签入前/签入后钩子复杂化,不如在创建这些zip文件的应用程序周围编写一个包装器。包装器应解压所有文件并将其放在文件夹中


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

压缩存储XML文件的原因是什么?它们是包文件,系统就是这样生成的