私が取り組んでいるプログラムには、かなりの数の属性を持ついくつかのシェープファイルがあります。現時点では、圧縮された blob (dbf.gz、shp.gz、および shx.gz) としてバージョン管理 (Subversion) に保存されています。これはプログラムで使用される方法ですが、バージョン管理の目的には非常に不便です。エントリや属性の変更に関する情報は得られません。ファイルのどこかで何かが変更されただけです。有用な差分はありません。
DBF は属性を持つものです。それを CSV として保存し、ビルド プロセスの一部としてDBF に変換して ??? を実行できるのではないかと考えていました。(未定) 有効なシェープファイルにしてから、現在使用されている圧縮バージョンを作成します。
もう 1 つのアプローチは、シェイプファイルからほぼすべての属性を削除し、それらを CSV/YAML/その他 (適切にバージョン管理できるもの) に保存し、シェイプ ID で検索するか、オブジェクトを取得した後にそれらをオブジェクトにアタッチすることです。シェープファイルなどからインスタンス化されています。
しかし、シェープファイルの経験が豊富な人は、より良いアイデアを持っているのではないでしょうか?