Как я могу потребовать, чтобы два файла были включены в один и тот же коммит subversion?

Я разрабатываю проекты с базами данных, которые поддерживаются в виде файла рабочей среды MySQL, который является двоичным файлом. Поскольку вы не можете легко определить разницу в двоичном файле между фиксациями, необходимо обновить сценарий создания SQL для этой схемы перед фиксацией. Таким образом, вы можете запустить diff файла SQL, чтобы увидеть, что изменилось.

Иногда люди либо забывают, либо ленятся и не обновляют файл SQL. Как я могу использовать subversion, чтобы потребовать, чтобы любая фиксация, включающая файл рабочей среды, также включала файл SQL?


person Brad Koch    schedule 15.09.2011    source источник


Ответы (3)


Вы можете написать Hook Script на сервере, чтобы сделать это требованием.

Вы можете использовать pre-commit-hook, чтобы проверить, содержит ли он файл рабочей среды, а также проверить, содержит ли он также файл SQL... если не прервать фиксацию.

person khmarbaise    schedule 15.09.2011
comment
Определенно отличное решение ... просто хочу убедиться, что я не упускаю из виду очевидную альтернативу внесению пользовательских модификаций в скрипты ловушек. - person Brad Koch; 15.09.2011

Хотя ответ khmarbaise работает, я предлагаю вам лучшее решение. Вместо того чтобы заставлять разработчиков редактировать файл SQL, попробуйте обновить его автоматически. Это означает, что на этапе вашего процесса сборки (предположим, что у вас есть процесс сборки) проверьте файл Workbench и в случае его обновления автоматически измените ваш файл SQL.

person Gupta    schedule 15.09.2011
comment
Звучит как отличное решение, но я не уверен, есть ли в MySQL Workbench способ создать скрипт для создания файла SQL. Я должен изучить это. - person Brad Koch; 15.09.2011
comment
К сожалению, MySQL Workbench не имеет надежного интерфейса командной строки и, похоже, в настоящее время не может сделать это с какой-либо легкостью. - person Brad Koch; 16.09.2011
comment
Если это невозможно, попробуйте создать БД с помощью файла рабочей среды и сгенерируйте сценарий SQL. Как правило, не размещайте в системе управления версиями два элемента, представляющих одну и ту же концепцию. Если у вас нет возможности, вы ДОЛЖНЫ автоматически обновлять один файл при изменении другого. НЕ доверяйте своим разработчикам обновлять их. - person Gupta; 16.09.2011
comment
В принципе согласен, но на практике следовать этому правилу в данном сценарии в нынешних обстоятельствах невозможно. Если кто-то не предложит лучшее решение, которое можно реализовать на практике, следующим лучшим вариантом будет требование фиксации двух файлов. (Кстати, завидую твоему местоположению, это место, которое я хотел бы посетить когда-нибудь) - person Brad Koch; 16.09.2011
comment
Хорошо, тогда Брэд. Но помните, что наличие обоих файлов в коммите не гарантирует целостность файлов, потому что скрипт мог быть изменен неправильно!!! (Это слишком мило с твоей стороны. Рассчитывай на меня, если собираешься когда-нибудь приехать :)) - person Gupta; 16.09.2011