Плагин слияния подрывной деятельности / Post Percein / Prececution
-
14-10-2019 - |
Вопрос
Я хотел бы использовать набор файлов, созданных в виде файлов ZIP, содержащих XML-файлы.
Поскольку в настоящее время эти файлы регистрируются как есть, они рассматриваются как двоичные файлы со всеми очевидными ограничениями
Поскольку эти файлы содержат файлы XML, чтобы не попросить программистов в ZIP / UNZIP, я хотел бы сделать следующее, автоматически
Для проверки: автоматически взорвать файлы:
- Эти файлы имеют уникальное расширение, поэтому для каждого файла, зарегистрированного с этим расширением
- Разарзание этого файла в местоположение памяти / температуры
- Для каждого из этих файлов (XML) их нормализуют (для сравнения / слияния)
- Перезаряйте прямые дочерние узлы корня в предопределенном порядке (например, в алфавитном порядке)
- Некоторые элементы имеют локальные ссылочные идентификаторы, переписывайте идентификаторы последовательно после
- Создайте папку в SVN с тем же именем, что и исходный файл Zipd
- Проверьте файлы в Zip в эту папку
Для выезда: автоматически переупаковать файлы:
- Менее важно - можно сделать с помощью Maven / ant
- При проверке взорванной папки (или в любом из его файлов контента)
- Вместо того, чтобы проверять эту папку / файлы:
- Застегивайте все файлы в этой папке
- И проверьте файл Zipd
Для слияний
Я предполагаю, что слияние не является серверной стороной SVN и является ответственностью клиента, поэтому есть ли простой способ написать плагин Merge (например, для черепахи)
Возможно ли что -то из вышеперечисленного? Если да, то как? Есть ли более одного пути?
Решение
Вместо того, чтобы усложнять до/после проверки крючка, написание обертки вокруг приложения, которое создает эти zip -файлы, будет проще. Обертка должна разкапливаться по всем файлам и предоставить их в папке.
Другой путь - это то, что вы описали. Но сложность состоит в том, чтобы иметь триггер, чтобы сделать это для всех файлов ZIP. Вы можете получить другой фильтр в триггере, чтобы сделать это только для файлов из определенных папок, и вам необходимо поддерживать набор папок в отдельном БД. Чтобы избежать этих сложностей, напишите обертку вокруг приложения.