0

XMLファイルを含むzipファイルとして作成された一連のファイルをソース管理したいと思います。

現在、これらのファイルはそのままチェックインされているため、すべての明らかな制限があるバイナリファイルとして扱われます。

これらのファイルにはXMLファイルが含まれているため、プログラマーにzip / unzipを要求しないように、次のことを自動的に実行したいと思います。

チェックインの場合:ファイルを自動的に分解します:

  • これらのファイルには固有の拡張子があるため、その拡張子でチェックインされたファイルごとに
  • そのファイルをメモリ/一時的な場所に解凍します
  • それらのファイル(XML)ごとに、それらを正規化します(比較/マージ用)
    • ルートの直接の子ノードを事前定義された順序で並べ替えます(アルファベット順など)
    • 一部のアイテムにはローカル参照IDがあり、並べ替え後にIDを順番に書き換えます。
  • 元のzipファイルと同じ名前でSVNにフォルダーを作成します
  • zip内のファイルをそのフォルダーにチェックインします

チェックアウトの場合:ファイルを自動的に再パッケージ化します。

  • 重要性は低い-Maven/Antを使用して実行できます
  • 展開されたフォルダ(またはそのコンテンツファイルのいずれか)をチェックアウトするとき
  • そのフォルダ/ファイルをチェックアウトする代わりに:
  • そのフォルダ上のすべてのファイルを圧縮します
  • そしてzipファイルをチェックしてください

マージの場合

マージはSVNサーバー側ではなく、クライアントの責任であると思います。そのため、代わりにマージプラグインを作成する簡単な方法があります(Tortoiseなど)。

上記のいずれかが可能ですか?もしそうなら、どのように?複数の方法がありますか?

4

1 に答える 1

0

プリ/ポスト チェックイン フックを複雑にする代わりに、これらの zip ファイルを作成するアプリケーションのラッパーを作成する方が簡単です。ラッパーはすべてのファイルを解凍し、それらをフォルダーに提供します。

他の方法は、あなたが説明したものです。しかし複雑なのは、すべての zip ファイルに対してこれを行うためのトリガーを用意することです。特定のフォルダーのファイルに対してのみこれを行うために、トリガーに別のフィルターが必要になる場合があり、それらのフォルダーのセットを別の DB に維持する必要があります。これらの複雑さを回避するには、アプリケーションのラッパーを記述します。

于 2011-01-04T08:40:11.397 に答える