В зависимости от вашей системы контроля версий, можно автоматизировать эту проблему. Хуки поддержки Subversion и Mercurial - скрипты, которые запускаются определенными событиями, такими как извлечение, обновление или фиксация. Мы написали довольно простой сценарий, который запускался при фиксации: он проверял, есть ли в пакете фиксации .vbp, и, если он был, запускал процедуру «нормализации», которая
- поместите все файлы .cls / .bas / .frm вверху .vbp в алфавитном порядке.
- поставить раздел ссылок в алфавитном порядке
- ссылочные пути в нижнем регистре
Остальная часть файла осталась одна, так как VB, похоже, только радуется, когда возится.
Следовательно, большую часть времени, когда вы фиксируете и не вносите каких-либо существенных изменений в .vbp, скрипт ловушки восстанавливает ваш файл .vbp в каноническое упорядоченное состояние (например, возврат), которое имеет эффект удаления его из коммита, так как он больше не изменяется.
В случае, если вы добавляете новый файл или ссылку на ваш проект, последовательная сортировка строк VBP по алфавиту означает, что избегаются конфликты слияния, поскольку ваш алгоритм слияния VC может легко и правильно обнаружить изменения.
Мы написали наш скрипт на Javascript и выполнили его с помощью Windows Script Host, поскольку, по крайней мере, для Windows-боксов это устраняет зависимость от интерпретатора, такого как Perl / Python.
Подключение этого скрипта к новым проектам VB - это 30-секундная работа. Преимущество перед другими ручными подходами заключается в том, что вам не нужно прилагать никаких сознательных усилий для работы с файлом VBP. Просто передайте это всем остальным, и скрипт позаботится обо всем остальном.