Как бороться с изменением ссылок на файлы VB6 .vbp - PullRequest
6 голосов
/ 02 октября 2009

Наш парень из VB6 был частью последнего RIF (Reduction in Force). Работа, которую он сделал, была разделена между мной и другим разработчиком. Мы оба часто вносим изменения в проекты одновременно. Это не проблема с CVS, так как мы работаем в разных областях. Однако VB6, похоже, изменяет раздел «Справочник» и меняет пути каждый раз, когда кто-либо из нас касается проекта. Поскольку у нас нет одинаковых настроек пути для исходных деревьев, мы постоянно сталкиваемся с конфликтами слияния в файле vbp.

Есть ли способ обойти это, кроме очевидного метода изменения наших настроек, чтобы у нас были одинаковые структуры каталогов?

Ответы [ 2 ]

5 голосов
/ 02 октября 2009

Я бы предложил две вещи:

  1. Не фиксируйте .vbp, пока не добавите файл в проект.
  2. Отметьте .vbp как доступный только для чтения и зарегистрируйте его как таковой в своем репо. Когда пользователи проверяют его, он все равно должен быть доступен только для чтения, что предотвратит сохранение изменений в ссылочных путях (и, по-видимому, случайное изменение порядка файлов). Когда вам нужно внести изменения в проект - сделайте файл доступным для чтения и записи, сохраните его и снова сделайте его доступным только для чтения перед фиксацией.
3 голосов
/ 30 мая 2013

В зависимости от вашей системы контроля версий, можно автоматизировать эту проблему. Хуки поддержки Subversion и Mercurial - скрипты, которые запускаются определенными событиями, такими как извлечение, обновление или фиксация. Мы написали довольно простой сценарий, который запускался при фиксации: он проверял, есть ли в пакете фиксации .vbp, и, если он был, запускал процедуру «нормализации», которая

  1. поместите все файлы .cls / .bas / .frm вверху .vbp в алфавитном порядке.
  2. поставить раздел ссылок в алфавитном порядке
  3. ссылочные пути в нижнем регистре

Остальная часть файла осталась одна, так как VB, похоже, только радуется, когда возится.

Следовательно, большую часть времени, когда вы фиксируете и не вносите каких-либо существенных изменений в .vbp, скрипт ловушки восстанавливает ваш файл .vbp в каноническое упорядоченное состояние (например, возврат), которое имеет эффект удаления его из коммита, так как он больше не изменяется.

В случае, если вы добавляете новый файл или ссылку на ваш проект, последовательная сортировка строк VBP по алфавиту означает, что избегаются конфликты слияния, поскольку ваш алгоритм слияния VC может легко и правильно обнаружить изменения.

Мы написали наш скрипт на Javascript и выполнили его с помощью Windows Script Host, поскольку, по крайней мере, для Windows-боксов это устраняет зависимость от интерпретатора, такого как Perl / Python.

Подключение этого скрипта к новым проектам VB - это 30-секундная работа. Преимущество перед другими ручными подходами заключается в том, что вам не нужно прилагать никаких сознательных усилий для работы с файлом VBP. Просто передайте это всем остальным, и скрипт позаботится обо всем остальном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...