Поделиться через


Дополнительные рекомендации по управлению версиями для проектов и редакторов

Существует ряд рекомендаций, которые проекты и редакторы должны придерживаться для поддержки системы управления версиями.

Рекомендации

Проект или редактор также должны выполнять следующие действия для поддержки системы управления версиями:

Площадь Project Редактор Сведения
Частные копии файлов X Поддержка среды частные копии файлов. То есть каждый пользователь, зачисленный в проект, имеет собственную частную копию файлов в этом проекте.
Сохраняемость ANSI/Юникод X X Если вы пишете код сохраняемости, сохраняйте файлы в форме ANSI, так как большинство программ управления версиями в настоящее время не поддерживают Юникод.
Перечисление файлов X Проект должен содержать определенный список всех файлов в нем и должен иметь возможность перечислить список файлов с помощью IVsSccProject2 или GetProperty (VSH_PROPID_First_Child/Next_Sibling). Проект также должен предоставлять имена элементов через его GetMkDocument реализацию и поддержку подстановки имен (включая специальные файлы) через ее IsDocumentInProject реализацию.
Формат Текст X X По возможности файлы должны находиться в текстовом формате для поддержки объединения различных версий. Файлы, которые не находятся в текстовом формате, не могут быть объединены с другими версиями файла позже. Предпочтительный текстовый формат — XML.
Справочная ссылка X Проекты на основе ссылок легко поддерживаются в системе управления версиями. Однако проекты на основе каталогов также поддерживаются системой управления версиями, если проект может создать список своих файлов по запросу, независимо от того, существуют ли эти файлы на диске. При открытии проекта из системы управления версиями файл проекта сначала будет выведен до любого из его файлов.
Сохранение объектов и свойств в прогнозируемом порядке X X Сохраняйте файлы в предсказуемом порядке, например в алфавитном порядке, чтобы упростить слияние.
Перезагрузить X X При изменении файла на диске редактор должен иметь возможность перезагрузить его. При участии в системе управления версиями среда перезагрузит данные, вызвав реализацию ReloadDocData . Самый сложный случай перезагрузки заключается в том, что проверка out возникает при вызове IVsQueryEditQuerySave::QueryEditFiles и обрабатывает информацию. Однако код перезагрузки должен выполняться в этой ситуации.

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