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


Принципы преобразования данных средствами обновления 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 в виде набора изменений.После завершения обновления эти данные можно просмотреть в окне "Журнал".Дополнительные сведения см. в разделе Получение истории элемента.

Во время обновления с данными происходят определенные изменения.

ms253166.collapse_all(ru-ru,VS.110).gifПеренос данных об имени пользователя и отметке времени

Когда запись в журнале элемента в базе данных Visual SourceSafe обновляется до набора изменений на Team Foundation Server, происходят следующие изменения:

  • В качестве отметки времени набора изменений задаются дата и время обновления элемента.

  • Исходная отметка времени сохраняется в поле "Комментарий" набора изменений.

  • имя пользователя сохранятся в поле "Пользователь" или в поле "Комментарий" набора изменений в зависимости от результата сопоставления пользователей.

    ПримечаниеПримечание

    Если требуется контролировать назначение имен пользователя историческим данным, необходимо использовать VssUpgrade.См. раздел Указание способа обновления имен пользователей.

ms253166.collapse_all(ru-ru,VS.110).gifПреобразование событий определенных типов

События, например изменение, переименование и удаление, обновляются в базе данных 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.

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

Перенос привязок системы управления версиями

Средства обновления переносят привязки системы управления версиями для каждого решения.

Следующий шаг

Подготовка к обновления Visual SourceSafe