Программа, над которой я работаю, имеет несколько шейп-файлов с несколькими атрибутами. На данный момент они хранятся в нашей системе управления версиями (Subversion) в виде сжатых больших двоичных объектов (dbf.gz, shp.gz и shx.gz). Так они используются программой, но крайне неудобно для целей версионирования. Мы не получаем никакой информации об изменениях в записях или атрибутах — просто что-то где-то в файле изменилось. Нет полезного диф.
DBF - это тот, у которого есть атрибуты. Я подумал, может быть, мы могли бы сохранить его как CSV, а затем как часть процесса сборки, конвертировать в DBF и сделать ??? (будет определено), чтобы сделать его действительным шейп-файлом, а затем сделать заархивированную версию, как она используется в настоящее время.
Другой подход может состоять в том, чтобы удалить почти все атрибуты из шейп-файла, сохранить их в CSV/YAML/во что угодно (что может быть хорошо версионировано) и либо искать их по идентификаторам шейп-файлов, либо пытаться прикрепить их к нашим объектам после того, как они будут был создан из шейп-файлов, что-то в этом роде.
Но, может быть, у людей с большим опытом работы с шейп-файлами есть идеи получше?