Принципы преобразования данных средствами обновления VSS
Средства обновления Visual SourceSafe — это удобный метод однократного, одностороннего обновления базы кода с Visual SourceSafe до Team Foundation Server (TFS).Необходимо использовать средства для обновления данных, только если вы готовы прекратить доступ к ним в Visual SourceSafe и начать обслуживать их в TFS.
Между TFS и Visual SourceSafe есть существенные функциональные различия.В результате средства обновления Visual SourceSafe изменяют некоторые типы данных во время обновления.
Содержание раздела
Способ создания наборов изменений
Как обновляются общие и закрепленные элементы
Как переносятся исторические данные
Перенос данных об имени пользователя и отметке времени
Преобразование событий определенных типов
Перенос привязок системы управления версиями
Способ создания наборов изменений
Ключевая особенность управления версиями TFS связана с тем, как эта система группирует изменения нескольких файлов в единый блок, когда пользователь возвращает набор изменений.Такой единый блок называется набором изменений.
В Visual SourceSafe нет эквивалентов наборов изменений.Однако в процессе преобразования все изменения группируются в наборы изменений, если выполняются следующие условия:
изменения не противоречат друг другу.Например, если два действия не затрагивают один и тот же файл или папку;
разница во времени внесения изменений не превышает нескольких минут;
изменения были возвращены одним и тем же пользователем;
для изменений введены одинаковые комментарии при возврате.
Как обновляются общие и закрепленные элементы
В Visual SourceSafe файл можно предоставить для общего доступа в нескольких папках.Изменения, внесенные в общий файл, реплицируются во все папки, где он предоставлен в общий доступ.В системе управления версиями TFS нет эквивалентной функции.В ходе обновления общие файлы в проекте Visual SourceSafe обновляются путем создания дополнительной независимой копии элемента на сервере для управления версиями TFS.
В системе управления версиями TFS отсутствует функция, эквивалентная функции закрепления в Visual SourceSafeВо время обновления прикрепленные элементы в проекте Visual SourceSafe преобразуются в помеченные элементы на сервере для управления версиями TFS.Дополнительные сведения см. в следующем разделе.
Как переносятся исторические данные
Каждое событие в журнале элемента в базе данных Visual SourceSafe переносится на сервер Team Foundation Server в виде набора изменений.После завершения обновления эти данные можно просмотреть в окне "Журнал".Дополнительные сведения см. в разделе Получение истории элемента.
Во время обновления с данными происходят определенные изменения.
Перенос данных об имени пользователя и отметке времени
Когда запись в журнале элемента в базе данных Visual SourceSafe обновляется до набора изменений на Team Foundation Server, происходят следующие изменения:
В качестве отметки времени набора изменений задаются дата и время обновления элемента.
Исходная отметка времени сохраняется в поле "Комментарий" набора изменений.
имя пользователя сохранятся в поле "Пользователь" или в поле "Комментарий" набора изменений в зависимости от результата сопоставления пользователей.
Примечание
Если требуется контролировать назначение имен пользователя историческим данным, необходимо использовать VssUpgrade.См. раздел Указание способа обновления имен пользователей.
Преобразование событий определенных типов
События, например изменение, переименование и удаление, обновляются в базе данных Visual SourceSafe в наборы изменений на сервере Team Foundation Server достаточно естественным образом.Однако средства обновления преобразуют некоторые события достаточно неожиданным способом, как показано в следующей таблице.
Событие Visual SourceSafe |
Как они обновляются в системе управления версиями TFS |
---|---|
Добавление файла или папки |
Этот набор изменений является первым событием в истории всех обновляемых файлов и папок.В отличие от Visual SourceSafe, для родителя каждого внутреннего дочернего элемента событие не создается. |
Ветвление |
Общий доступ — это обязательное требование к ветвлению в Visual SourceSafe, однако система управления версиями TFS не поддерживает общий доступ. Поэтому обновление файла с ветвями создает копию файла в целевой папке. Общие файлы в базе данных Visual SourceSafe обновляются до системы управления версиями TFS путем копирования версии файла, существующей когда к нему был предоставлен общий доступ, и помещения копии в целевую папку.В результате каждый набор изменений реплицируется в обеих копиях файла до события ветвления. |
Метка |
Неявно помеченные элементы. В Visual SourceSafe, когда помечается папка, элементы, которые она содержит, помечаются неявно.Процесс обновления явно помечает все обновленные элементы в командном проекте. Явным образом помеченные файлы. В Visual SourceSafe при явной пометке отдельного файла создается новая версия файла. Процесс обновления переносит метку в соответствующую версию системы управления версиями TFS, но не создает новую версию. ![]()
Если база данных Visual SourceSafe содержит большое число меток, применяемых к большому числу файлов, процесс обновления может занять продолжительное время.Если требуется исключить эти данные, необходимо использовать VssUpgrade и настроить его, чтобы оно игнорировало метки.См. <Label migrate="false" />.
|
Перемещение папки |
Событие перемещения папки создает новую версию папки в системе управления версиями TFS. При использовании VssUpgrade не обновляется полную историю элементов в перемещенных папках, если только исходная и конечная папки не обновляются одновременно.См. Изучение и устранение проблем, найденных компонентом анализа. ![]()
Если событие перемещения папки объединено с событием восстановления, исторические данные могут быть обновлены правильно.
|
Восстановление |
Никакие исторические данные до события восстановления не обновляются. |
Закрепление и открепление |
Система управления версиями TFS не поддерживает прикрепление.Средства обновления обновляют прикрепленный файл, создавая две метки. Метка PINNED_LATEST применяется к закрепленным версиям закрепленных файлов и к последней версии открепленных файлов.Метка PINNED применяется только к закрепленным версиям закрепленных файлов.После обновления метка PINNED_LATEST будет извлекать те же файлы, что и с помощью команды Get Latest в Visual SourceSafe.Однако одно исключение: по метке PINNED_LATEST могут возвращаться различные файлы, если после закрепления файла произошли другие события, кроме возврата, например, переименование или удаление файла. |
Общий доступ |
Система управления версиями TFS не поддерживает общий доступ.Общие файлы в базе данных Visual SourceSafe обновляются до системы управления версиями TFS путем копирования версии файла, существующей когда к нему был предоставлен общий доступ, и помещения копии в целевую папку.В результате каждый набор изменений реплицируется в обеих копиях файла. |
Отмена удаления файла или папки |
В процессе обновления событий отмены удаления файла или папки инструменты воспроизводят событие, создавая новую версию файла или папки в системе управления версиями TFS. Средства обновления создают набор изменений, включающий имя файла или папку, дату и время отмены удаления, а также имя пользователя. |
Перенос привязок системы управления версиями
Средства обновления переносят привязки системы управления версиями для каждого решения.