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


Миграция из Visual SourceSafe

Средство командной строки VSSConverter системы Team Foundation служит для миграции проектов, файлов, журнала версий, меток и пользовательских данных из базы данных Visual SourceSafe на сервер Team Foundation (подсистема контроля версий). Это средство входит в состав Visual Studio Team Foundation Server.

Дополнительные сведения о Visual SourceSafe см. на следующей странице веб-сайта Майкрософт: Visual SourceSafe.

Миграция данных из базы данных Visual SourceSafe

  1. **Ознакомьтесь с ключевыми понятиями.   **Перед переносом данных из базы данных Visual SourceSafe на сервер Team Foundation (подсистема контроля версий) необходимо ознакомиться с некоторыми ключевыми понятиями. Между Team Foundation и Visual SourceSafe есть существенные функциональные различия. Поэтому средство VSSConverter должно в процессе миграции изменять данные определенных типов.

    Дополнительные сведения см. ниже в разделе Преобразование данных средством VSSConverter.

  2. **Проверьте наличие необходимых разрешений.   **Для выполнения описанных в этом разделе процедур требуются разрешения нескольких типов. Дополнительные сведения см. ниже в разделе Необходимые разрешения.

  3. **Спланируйте и подготовьте процесс миграции.   **Чтобы избежать серьезных проблем для себя и членов своей команды, перед началом процессам миграции составьте его план и выполните необходимую подготовку. Дополнительные сведения см. ниже в разделе Планирование и подготовка процесса миграции.

  4. **Проанализируйте свои данные.   **Перед переносом данных из Visual SourceSafe в Team Foundation (подсистема контроля версий) необходимо воспользоваться функцией анализа средства Visual SourceSafe Converter, чтобы определить, могут ли какие-либо проблемы с данными повлиять на результат миграции. В ходе этого процесса также будет создан файл сопоставления пользователей, необходимый для переноса данных. Дополнительные сведения см. ниже в разделе Анализ данных.

  5. **Осуществите перенос данных.   **После выполнения функции анализа данные будут практически готовы к миграции. Чтобы перенести данные, необходимо указать, как будут переноситься имена пользователей, создать файл параметров миграции и выполнить команду Migrate. Дополнительные сведения см. ниже в разделе Миграция данных.

  6. **Проверьте результаты миграции и устраните проблемы.   **После завершения миграции необходимо выполнить следующие действия:

    • просмотреть отчет, созданный функцией миграции;

    • проверить данные на сервере Team Foundation (подсистема контроля версий) и убедиться, что данные из базы данных Visual SourceSafe были перенесены правильно.

    После выполнения этих действий может потребоваться устранить проблемы. Дополнительные сведения см. ниже в разделе Проверка результатов миграции и устранение проблем.

Необходимые разрешения

Для выполнения описанных в этом разделе процедур требуются следующие разрешения:

  • в базе данных Visual SourceSafe, содержащей данные, которые требуется перенести, необходимо знать пароль учетной записи Admin;

  • на компьютере переноса (компьютере, где установлен пакет Visual Studio) необходимо быть членом группы Администраторы;

  • в базе данных, используемой средством VSSConverter, необходимо иметь разрешение на создание баз данных. Дополнительные сведения см. ниже в разделе Указание базы данных для использования средством VSSConverter;

  • На уровне приложений Team Foundation необходимо быть членом группы безопасности Администраторы Team Foundation. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.

Планирование и подготовка процесса миграции

Чтобы избежать серьезных проблем для себя и членов своей команды, перед началом процесса миграции составьте его план и выполните необходимую подготовку.

Варианты, позволяющие сократить время миграции

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

  • миграция выбранных проектов. Вместо единовременного переноса всей базы данных Visual SourceSafe можно разные проекты переносить в разное время. Дополнительные сведения см. ниже в подразделе Раздел <ProjectMap>;

  • отсечение некоторых исторических данных. С помощью функции архивации Visual SourceSafe можно перенести лишь часть базы данных, ограниченную определенным временем. Этот вариант следует использовать, если старые данные не представляют интереса. В случае использования данной функции удаляются журналы версий файлов и папок до определенной даты. Дополнительные сведения см. ниже в разделе Ограничение истории элементов.

Планирование миграции вместе с членами команды

Попытайтесь запланировать миграцию на время, когда пользователям не требуется доступ к переносимым базам данных Visual SourceSafe. Если имеется большой объем данных, крупная команда или работа над проектами велась на протяжении длительного времени, может потребоваться выделить большее время на подготовку и миграцию данных.

Важно!

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

Копирование и подготовка базы данных Visual SourceSafe

Скопируйте и подготовьте базу данных Visual SourceSafe, выполнив следующие действия.

  1. Верните файлы.   В идеальном случае все файлы в базе данных Visual SourceSafe должны быть возвращены. Постарайтесь вернуть по крайней мере большую часть файлов.

  2. Закройте доступ к проектам Visual SourceSafe.   Вы должны быть единственным человеком, имеющим доступ к переносимым проектам Visual SourceSafe.

  3. Скопируйте базу данных.   Выполните инструкции, приведенные на следующей странице веб-сайта Майкрософт: Резервное копирование базы данных Visual SourceSafe.

  4. Обновите копию базы данных.    Если база данных Visual SourceSafe имеет версию, более раннюю, чем Visual SourceSafe 6.0, выполните обновление до Visual SourceSafe 2005 с помощью служебной программы Visual SourceSafe DDUPD. Дополнительные сведения см. в следующем разделе веб-сайта Майкрософт: DDUPD Utility.

  5. (Необязательно.) Ограничьте историю элементов.   Дополнительные сведения см. ниже в разделе Ограничение истории элементов.

  6. Проверьте копию базы данных на ошибки целостности данных и исправьте эти ошибки.   С помощью служебной программы Visual SourceSafe ANALYZE найдите и исправьте в базе данных проблемы, связанные с целостностью данных. Дополнительные сведения об использовании этого средства см. на следующих страницах веб-сайта Майкрософт: ANALYZE Utility и Как обнаружить и исправить ошибки повреждения базы данных в Visual SourceSafe для Windows 6.0 и более.

Ограничение истории элементов

Если нет необходимости перемещать всю историю, хранящуюся в Visual SourceSafe, можно переместить только историю после определенной даты, воспользовавшись функцией архивации, доступной в Visual SourceSafe.

Предупреждение

Использование данного метода приводит к безвозвратному удалению журнала версий из базы данных Visual SourceSafe. Поэтому такую процедуру следует выполнять на копии базы данных Visual SourceSafe, а не на находящейся в работе базе данных.

Чтобы ограничить историю элементов в Visual SourceSafe, используйте функцию архива Visual SourceSafe. Отметку времени, до которой следует ограничить историю, можно задать с помощью одного из следующих значений:

  • метка;

  • версия папки;

  • дата.

Дополнительные сведения об архивации в Visual SourceSafe см. в разделе Visual SourceSafe Archive Databases.

Примечание

Функция архивации Visual SourceSafe ограничивает размер файла архива 2 гигабайтами (Гбайт).Если в процессе архивации произойдет ошибка, попробуйте архивировать проекты меньшими фрагментами.

Подготовка компьютера миграции

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

  1. Убедитесь, что на диске компьютера достаточно свободного места для выполнения процесса миграции. Чтобы оценить необходимый объем места, просуммируйте следующие значения:

    • 5 Гбайт, доступные средству VSSConverter для создания временных файлов и файлов журналов;

    • место на диске, в два раза превышающее размер проектов в переносимой базе данных Visual SourceSafe;

    • место на диске, достаточное для установки приложения, описанного в следующих шагах.

  2. Установите на компьютер миграции Visual Studio. 

    Важно!

    Для работы средства VSSConverter требуется база данных (SQL Server или экспресс-выпуск SQL Server).По умолчанию при установке Visual Studio устанавливается экспресс-выпуск SQL Server, а пользовать получает разрешения, необходимые для работы средства VSSConverter.Дополнительные сведения см. ниже в разделе Указание базы данных для использования средством VSSConverter.

  3. Установите на компьютер миграции Visual SourceSafe 2005.

  4. Установите обновление, описанное в статье 950185 базы знаний Майкрософт. Это программное обеспечение можно найти на следующей странице веб-сайта Майкрософт: KB950185 - VSS Required QFE for Orcas SP1 VSSConverter.

  5. Проверьте, что выполнены инструкции раздела Копирование и подготовка базы данных Visual SourceSafe.

  6. Скопируйте базу данных Visual SourceSafe в папку на компьютере миграции.

    Предупреждение

    Если для обращения к базе данных Visual SourceSafe с компьютера миграции вместо копирования базы данных используется функция совместного доступа к файлам, необходимо предоставить разрешение на чтение и изменение для учетной записи, от имени которой осуществляется вход на компьютер миграции. Применять такой подход не рекомендуется, поскольку это может увеличить срок миграции.

    Важно!

    Независимо от способа доступа к базе данных Visual SourceSafe с компьютера миграции проверьте, что процесс миграции выполняется на копии базы данных, а не на находящейся в работе базе данных.Такой подход позволяет защитить данные.

Указание базы данных для использования средством VSSConverter

Для работы средства VSSConverter требуется база данных (SQL Server или экспресс-выпуск SQL Server). По умолчанию при установке Visual Studio устанавливается экспресс-выпуск SQL Server. Если при установке Visual Studio соответствующий флажок был снят, необходимо вручную установить экспресс-выпуск SQL Server позже или использовать в качестве базы данных SQL Server.

Независимо от выбранной базы данных необходимо иметь разрешение на создание баз данных. В случае экспресс-выпуска SQL Server это разрешение предоставляется автоматически при установке вместе с Visual Studio.

Если вместо экспресс-выпуска SQL Server используется SQL Server, необходимо изменить файл параметров. Дополнительные сведения см. ниже в подразделе Раздел <SQL>.

Подготовка экземпляра Team Foundation Server

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

  1. Убедитесь, что на уровне данных Team Foundation достаточно свободного места в хранилище. Может потребоваться объем примерно вдвое превышающий размер данных в проектах в переносимой базе данных Visual SourceSafe.

    Это значение может быть выше или ниже в зависимости от следующих факторов:

    • размер переносимой базы данных Visual SourceSafe;

    • число переносимых действий.

  2. Для применения функции миграции коллекции командных проектов и командные проекты должны уже существовать на сервере Team Foundation (подсистема контроля версий), прежде чем можно будет начать процесс миграции. Если командный проект или коллекция командных проектов, куда должны быть перенесены данные Visual SourceSafe, еще не созданы, выполните оба следующих действия:

    • создайте коллекцию командных проектов, в которую будут перенесены данные из базы данных Visual SourceSafe. Дополнительные сведения см. в разделе Создание коллекции командных проектов;

    • создайте один или несколько командных проектов, в которые будут перенесены данные из базы данных Visual SourceSafe. Дополнительные сведения см. в разделе Создание командного проекта.

Анализ данных

Перед переносом данных из Visual SourceSafe в Team Foundation (подсистема контроля версий) необходимо воспользоваться функцией анализа средства Visual SourceSafe Converter, чтобы определить, могут ли какие-либо проблемы с данными повлиять на результат миграции. Эта функция также создает файл сопоставления пользователей, который будет использоваться при переносе данных с помощью функции миграции.

Создание файла параметров анализа

Чтобы воспользоваться функцией анализа, необходимо создать файл параметров. В этом файле указывается путь к переносимой базе данных Visual SourceSafe и к переносимым папкам.

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

<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
     <Source name="VSS">
          <VSSDatabase name="c:\ourvss"></VSSDatabase>
          <UserMap name="c:\ourvss\migrate\Usermap.xml"></UserMap>
     </Source>
     <ProjectMap>
          <Project Source="$/Core"></Project>
          <Project Source="$/ProjectA"></Project>
          <Project Source="$/ProjectB"></Project>
     </ProjectMap>
</ConverterSpecificSetting>
<Settings>
     <Output file="c:\ourvss\migrate\logs\ContosoVSSAnalyze.xml"></Output>
</Settings>
</SourceControlConverter>

Код этого примера можно скопировать в собственный файл параметров, после чего изменить. Ниже приведены сведения, которые могут помочь при адаптации примера к конкретным требованиям.

Атрибут <?xml encoding>

Атрибут <?xml encoding> должен соответствовать кодировке, используемой в файле параметров. Например, если файл сохранен в кодировке Юникод, то тег <?xml encoding> имеет следующий вид:

<?xml version="1.0" encoding="unicode">

Атрибут <VSSDatabase name>

В атрибуте <VSSDatabase name> задается путь к папке, содержащей файл srcsafe.ini для копии переносимой базы данных Visual SourceSafe. Ниже показан пример атрибута.

<Source name="VSS">
   ...
   <VSSDatabase name="c:\ourvss"></VSSDatabase>
   ...
</Source>

Путь должен содержать строку srcsafe.ini. Например, следующий атрибут <VSSDatabase name> некорректен и приведет к сбою команды VSSConverter:

<Source name="VSS">
   ...
   <VSSDatabase name="c:\ourvss\srcsafe.ini"></VSSDatabase>
   ...
</Source>

Атрибут <UserMap name>

Функция анализа собирает и компилирует данные о пользователях Visual SourceSafe и сохраняет их в XML-файл. При необходимости с помощью атрибута <UserMap name> можно указать путь и имя файла, в который должны быть помещены эти данные. Если этот атрибут не задан, функция анализа создаст файл с именем UserMap.xml и поместит его в текущий каталог.

Раздел <ProjectMap>

В разделе <ProjectMap> в атрибуте Source элемента <Project> указывается путь к каждому проекту Visual SourceSafe, которые требуется перенести.

Чтобы перенести все данные из базы данных Visual SourceSafe, необходимо оформить раздел <ProjectMap> в соответствии со следующим примером:

<ProjectMap>
   <Project From="$/"></Project>
</ProjectMap>

Вместо единовременного переноса всей базы данных Visual SourceSafe можно разные проекты переносить в разное время. Такой вариант позволяет избежать остановки работы команд на время миграции, если объем переносимых данных велик.

Пути в атрибутах Source не должны пересекаться. Например, следующий раздел <ProjectMap> является недопустимым:

<ProjectMap>
   <Project Source="$/ProjectA"></Project>
   <Project Source="$/ProjectA/Controller"></Project>
</ProjectMap>

Атрибут <Output file>

В разделе <Settings> в атрибуте <Output file> задаются путь и имя файла, в который должен быть записан отчет об анализе. Если этот атрибут не задан, программа преобразования сохранит отчет в файле с именем VSSAnalysisReport.xml в текущем каталоге.

Элемент <SQL>

Чтобы средство преобразования использовало SQL Server вместо экспресс-выпуска SQL Server, можно добавить в раздел <Source> файла параметров миграции элемент <SQL>. В этом элементе используется следующий синтаксис: <SQL Server="SQL_Server_name"></SQL>.

Например, следующий элемент <SQL> указывает, что необходимо использовать сервер ContosoSQLServer:

<Source name="VSS">
   ...
   <SQL Server="ContosoSQLServer"></SQL>
   ...
</Source>

Запуск команды Analyze

Анализ проекта с помощью средства преобразования

  1. Нажмите кнопку Пуск, последовательно выберите Все программы, Microsoft Visual Studio 2010 и Средства Visual Studio, щелкните правой кнопкой мыши Командная строка Visual Studio 10.0 и выберите пункт Запуск от имени администратора.

    Если появится диалоговое окно Контроль учетных записей пользователей, нажмите кнопку Продолжить.

  2. В командной строке введите следующее:

    VSSConverter Analyze settings.xml

    Вместо settings.xml укажите путь и имя созданного файла параметров анализа.

  3. При появлении запроса введите пароль администратора Visual SourceSafe.

    Средство VSSConverter отображает ход выполнения анализа. После завершения процесса функция анализа создает отчет и файл сопоставления пользователей.

Просмотр и устранение проблем, обнаруженных функцией анализа

Отчет об анализе содержит сведения о проблемах в базе данных Visual SourceSafe, которые могут привести к неполадкам в процессе миграции. Попытайтесь устранить максимальное число этих проблем, чтобы свести к минимуму вероятность неполадок в процессе миграции, как описано в следующем разделе.

Некоторые файлы извлечены

В отчете указаны файлы, которые извлечены. В процессе миграции сведения о состоянии извлечения не сохраняются. В идеальном случае все файлы в базе данных Visual SourceSafe должны быть возвращены. Постарайтесь вернуть по крайней мере большую часть файлов.

У некоторых элементов имеются проблемы целостности данных

В отчете указаны элементы, целостность данных в которых нарушена. Эти элементы не будут перенесены. Возможно, эти проблемы могут быть исправлены с помощью служебной программы Visual SourceSafe ANALYZE. Дополнительные сведения см. на следующих страницах веб-сайта Майкрософт: ANALYZE Utility и Как обнаружить и исправить ошибки повреждения базы данных в Visual SourceSafe для Windows 6.0 и более.

Некоторые папки в сопоставленных проектах содержат историю, не включенную в раздел <ProjectMap>

Если папка переносится из одного проекта в другой в базе данных Visual SourceSafe, история этой папки сохраняется как в исходном, так и в текущем проекте. Чтобы перенести такую папку со всей ее историей, необходимо перенести и исходный, и текущий проект.

Предположим, например, что переносится проект Visual SourceSafe Project2. Этот проект содержит папку $/Project2/FeatureA, которая была перенесена из проекта Project1 в определенной точке своей истории.

Если раздел <ProjectMap> содержит…

Например…

То…

Оба проекта.

<ProjectMap>
   <Project Source="$/Project1"></Project>
   <Project Source="$/Project2"></Project>
</ProjectMap>

Папка переносится с полной историей.

Проект, который изначально содержал папку, но не проект, которые содержит ее сейчас.

<ProjectMap>
   <Project Source="$/Project1"></Project>
</ProjectMap>

Папка не переносится.

Проект, который сейчас содержит папку, но не проект, которые изначально содержал ее.

<ProjectMap>
   <Project Source="$/Project2"></Project>
</ProjectMap>

Папка переносится с сокращенной историей, начиная с момента переноса в текущий проект. История папки до ее перемещения в текущий проект не переносится.

Дополнительные сведения о разделе <ProjectMap> файла параметров см. выше в подразделе Раздел <ProjectMap>.

Некоторые имена меток не поддерживаются системой управления версиями Team Foundation

В отчете указаны имена меток, которые будут изменены в процессе миграции, поскольку они содержат знаки, неподдерживаемые системой Team Foundation (подсистема контроля версий).

Миграция данных

После выполнения функции анализа данные будут практически готовы к миграции. Перед запуском команды Migrate необходимо создать файл параметров миграции. Кроме того, можно указать, как должны переноситься имена пользователей.

Указание способа переноса имен пользователей

Способом переноса сведений о пользователях из Visual SourceSafe в Team Foundation (подсистема контроля версий) можно управлять. В частности, можно указать, какие имена пользователей функция миграции должна связать с каждым набором изменений в журнале каждого элемента Team Foundation (подсистема контроля версий). Для этого необходимо изменить файл сопоставления пользователей, созданный при выполнении функции анализа, как было описано выше в этом разделе.

Файл сопоставления пользователей не является обязательным. Если пропустить элемент <UserMap> в файле параметров, каждый набор изменений будет строиться следующим образом:

  • в поле "Пользователь" будет задаваться имя учетной записи, от имени которой запущено средство VSSConverter;

  • имя пользователя, выполнившего действие в базе данных Visual SourceSafe, будет сохранено в поле "Комментарий".

Пример файла сопоставления пользователей

При выполнении функции анализа она компилирует данные о пользователях Visual SourceSafe и сохраняет их в XML-файл. В этом файле перечисляются все пользователи Visual SourceSafe, которые когда-либо выполняли операции системы управления версиями в переносимых проектах Visual SourceSafe.

Ниже показан пример файла сопоставления пользователей, созданного с помощью функции анализа средства Visual SourceSafe Converter.

<?xml version="1.0" encoding="utf-8"?>
<UserMappings>
   <UserMap From="Admin" To=""></UserMap>
   <UserMap From="Guest" To=""></UserMap> 
   <UserMap From="Kim" To=""></UserMap>
   <UserMap From="Satomi" To=""></UserMap>
   <UserMap From="Mark" To=""></UserMap>
</UserMappings>

В атрибуте To можно задать ни одного, несколько или все элементы UserMap из файла сопоставления пользователей. Например, можно следующим образом изменить предыдущий пример:

<?xml version="1.0" encoding="utf-8"?>
<UserMappings>
   <UserMap From="Admin" To="NORTHAMERICA\KenM"></UserMap>
   <UserMap From="Guest" To="Test1"></UserMap> 
   <UserMap From="Kim" To="EUROPE\KimT"></UserMap>
   <UserMap From="Satomi" To="ASIA\SatomiH"></UserMap>
   <UserMap From="Mark" To=""></UserMap>
</UserMappings>

Обратите внимание, что в предыдущем примере пользователь Guest сопоставлен пользователю Test1, а домен не указан. В этих случаях средство VSSConverter предполагает, что учетная запись принадлежит к домену по умолчанию.

Если атрибут <UserMap To> не задан, каждый набор изменений строится следующим образом:

  • в поле "Пользователь" будет задаваться имя учетной записи, от имени которой было запущено средство VSSConverter;

  • имя пользователя, выполнившего действие в базе данных Visual SourceSafe, будет сохранено в поле "Комментарий";

  • если атрибут <UserMap To> задан, а его значение представляет собой имя допустимого пользователя на сервере Team Foundation, в поле "Пользователь" задается имя этой учетной записи. Если значение не является именем допустимого пользователя на сервере с Team Foundation, средство VSSConverter выведет ошибку и завершит процесс миграции.

Создание файла параметров миграции

Файл параметров миграции служит для определения данных Visual SourceSafe, которые необходимо перенести, и управления несколькими аспектами их переноса. Самый простой способ создания этого файла — скопировать файл, созданный ранее в разделе Создание файла параметров анализа. Затем необходимо добавить в файл данные, чтобы он мог использоваться функцией миграции.

Ниже показан пример файла параметров миграции.

<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
     <Source name="VSS">
          <VSSDatabase name="c:\ourvss"></VSSDatabase>
          <UserMap name="c:\ourvss\migrate\Usermap.xml"></UserMap>
     </Source>
     <ProjectMap>
          <Project Source="$/Core" Destination="$/CoreTeamProject"></Project>
          <Project Source="$/ProjectA" Destination="$/ClientTeamProject/ProjectA"></Project>
          <Project Source="$/ProjectB" Destination="$/ClientTeamProject/ProjectB"></Project>
     </ProjectMap>
</ConverterSpecificSetting>
<Settings>
     <TeamFoundationServer name="My_Server" port="8080" protocol="http" collection="tfs/DefaultCollection"></TeamFoundationServer>
     <Output file="c:\ourvss\migrate\logs\ContosoVSSMigrate.xml"></Output>
</Settings>
</SourceControlConverter>

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

Атрибут <Project Destination>

Для каждого элемента <Project> в разделе <ProjectMap> файла параметров задается атрибут Destination, указывающий путь к расположению на сервере Team Foundation (подсистема контроля версий), в которое необходимо перенести содержимое проекта в базе данных Visual SourceSafe (задается атрибутом Source).

Предположим, требуется перенести содержимое ProjectA в базе данных Visual SourceSafe в ProjectA в корне командного проекта Client.

<ProjectMap>
   <Project Source="$/ProjectA" Destination="$/ClientTeamProject/ProjectA"></Project>
</ProjectMap>

Чтобы значение атрибута Destination было допустимым, должны выполняться следующие условия:

  • командный проект в атрибуте Destination (в предыдущем примере используется командный проект ClientTeamProject) уже должен находиться в коллекции командных проектов до начала миграции;

  • если папка в атрибуте Destination (в предыдущем примере это папка ProjectA) уже находится в командном проекте, она должна быть пустой;

  • путь в атрибуте Destination элемента <Project> не должен перекрывать путь в атрибуте Destination какого-либо другого элемента <Project>. Например, следующий раздел <ProjectMap> является недопустимым:

    <ProjectMap>
       <Project Source="$/ProjectA" Destination="$/ClientTeamProjectA/"></Project>
       <Project Source="$/ProjectB" Destination="$/ClientTeamProjectA/ProjectB"></Project>
    </ProjectMap>
    

Тег <TeamFoundationServer>

В разделе <Settings> добавьте тег <TeamFoundationServer> и укажите имя, порт, протокол и путь к коллекции командных проектов на сервере с Team Foundation Server, используя для этого следующий формат:

<TeamFoundationServer name="ServerName" port="PortNumber" protocol="http" collection="path/collection name></TeamFoundationServer>

Тег <Label migrate="false" />

Если база данных Visual SourceSafe содержит большое число меток, применяемых к большому числу файлов, процесс миграции может занять продолжительное время. Если эти данные не нужны команде, можно настроить средство VSSConverter таким образом, чтобы оно игнорировало метки; для этого следует добавить тег <Label migrate="false" /> в раздел <Settings>.

Атрибут <Output file>

В разделе <Settings> в атрибуте <Output file> задаются путь и имя файла, в который должен быть записан отчет о миграции. Если этот атрибут не указан, программа преобразования сохранит отчет в файле с именем VSSMigrationReport.xml в текущем каталоге.

Запуск команды Migrate

Запуск команды Migrate

  1. Нажмите кнопку Пуск, последовательно выберите Все программы, Microsoft Visual Studio 2010 и Средства Visual Studio, щелкните правой кнопкой мыши Командная строка Visual Studio 10.0 и выберите пункт Запуск от имени администратора.

    Если появится диалоговое окно Контроль учетных записей пользователей, нажмите кнопку Продолжить.

  2. В командной строке введите следующую команду:

    VSSConverter Migrate settings.xml

    Вместо settings.xml укажите путь и имя созданного файла параметров миграции.

    Функция миграции выведет все проекты, переносимые из базы данных Visual SourceSafe, и все папки, в которые данные будут перенесены на сервере с Team Foundation (подсистема контроля версий).

  3. При появлении запроса нажмите клавишу Y, чтобы подтвердить миграцию.

  4. При появлении запроса введите пароль пользователя, являющегося администратором базы данных Visual SourceSafe.

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

Возобновление процесса с помощью добавочной миграции

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

Чтобы запустить добавочную миграцию, выполните инструкции раздела Запуск команды Migrate. Когда функция миграции выдаст запрос о необходимости выполнения добавочной миграции, нажмите клавишу Y.

Ограничения добавочной миграции

Добавочная миграция завершится неудачно, если не выполняются следующие ограничения:

  • в базе данных Visual SourceSafe нельзя выполнять операции удаления, очистки, архивации и восстановления;

  • нельзя изменять раздел <ProjectMap> файла параметров миграции;

  • на сервере Team Foundation (подсистема контроля версий) нельзя изменять какие-либо папки (или содержимое таких папок), указанные в разделе <ProjectMap> файла параметров миграции.

Проверка результатов миграции и устранение проблем

После завершения работы функции миграции необходимо выполнить следующие действия:

  • просмотреть отчет, созданный функцией миграции;

  • проверить данные на сервере Team Foundation (подсистема контроля версий) и убедиться, что данные были перенесены правильно.

После выполнения этих действий может потребоваться устранить проблемы.

Решение проблемы, связанной превышением максимально допустимого размера хранилища для экспресс-выпуска SQL Server

По умолчанию средство VSSConverter использует экспресс-выпуск SQL Server для хранения временных метаданных. Эти метаданные обычно занимают очень небольшой процент от общего объема переносимых данных. Маловероятно, что миграция завершится неудачно из-за 4-гигабайтного ограничения экспресс-выпуска SQL Server; но можно применить параметр, в соответствии с которым средство преобразования будет вместо этого использовать развертывание SQL Server. Дополнительные сведения см. выше в подразделе Элемент <SQL>.

Преобразование файлов в совместимый с MS-DOS короткий формат (8.3) (TF227014)

Team Foundation (подсистема контроля версий) не позволяет использовать имена файлов, не соответствующие совместимому с MS-DOS короткому формату (8.3), например abcdef~1.txt. При анализе или попытке переноса файла с таким именем появляется ошибка TF227014.

Чтобы избежать этой проблемы, можно временно применить на уровне приложений Team Foundation параметр, разрешающий файлы с такими именами. Для этого в базе данных конфигурации Team Foundation необходимо присвоить параметру Allow8Dot3Paths значение True.

Важно!

Чтобы избежать проблем с клиентскими компьютерами, поддерживающими совместимые с MS-DOS короткие имена, после завершения процесса миграции, рекомендуется присвоить параметру Allow8Dot3Paths значение False, как описано в следующей процедуре.

Чтобы выполнить следующую процедуру, на сервере уровня приложений Team Foundation необходимо включить Windows PowerShell. Дополнительные сведения см. в следующем разделе на веб-сайте Майкрософт: Создание сценариев Windows PowerShell.

Необходимые разрешения

Чтобы выполнить эту процедуру, необходимо быть членом группы Администраторы на сервере уровня приложений Team Foundation. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.

Миграция базы данных Visual SourceSafe, содержащей файлы с именами в совместимом с MS-DOS коротком формате

  1. Войдите на сервер уровня приложений для Team Foundation.

  2. Создайте скрипт Windows PowerShell с именем Allow8Dot3Paths.

    1. Скопируйте текст скрипта PowerShell Allow8Dot3Paths и вставьте его в этот скрипт.

    2. Измените значение ServerPath в соответствии с путем в URL-адресе, используемом для подключения к Team Foundation Server. По умолчанию путь к серверу имеет вид "tfs".

    3. Измените значение CollectionName в соответствии с именем коллекции командных проектов, в которую переносятся данные (например, DefaultCollection).

      В результате в скрипте появится строка примерно следующего вида:

      $collectionBaseUrl = "https://localhost:8080/tfs/DefaultCollection/";
      
  3. Запустите скрипт Allow8Dot3Paths.

  4. Заново запустите пул приложений для Team Foundation.

    1. Нажмите кнопку Пуск, выберите пункт Администрирование, а затем — Управление компьютером.

    2. В области переходов разверните узел Службы и приложения.

    3. Щелкните Диспетчер IIS, разверните локальный компьютер и дважды щелкните Пулы приложений.

    4. Щелкните пул приложений правой кнопкой мыши и выберите Повторный запуск.

  5. Запустите команду миграции.

    Дополнительные сведения см. в разделе Запуск команды Migrate.

  6. Измените ранее созданный скрипт Windows PowerShell Allow8Dot3Paths, заменив "true" на "false".

  7. Запустите измененный скрипт Allow8Dot3Paths.

  8. Заново запустите пул приложений для Team Foundation.

    1. Нажмите кнопку Пуск, выберите пункт Администрирование, а затем — Управление компьютером.

    2. В области переходов разверните узел Службы и приложения.

    3. Щелкните Диспетчер IIS, разверните локальный компьютер и дважды щелкните Пулы приложений.

    4. Щелкните пул приложений правой кнопкой мыши и выберите Повторный запуск.

  9. Откройте Сред. Командный обозреватель и подключитесь к коллекции командных проектов, в которую были перенесены данные.

  10. В окне Обозреватель управления исходным кодом переименуйте все файлы, имеющие имена в совместимом с MS-DOS коротком формате (8.3).

Скрипт PowerShell Allow8Dot3Paths

# Load client OM assembly.
[Reflection.Assembly]::Load("Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");

$collectionBaseUrl = "https://localhost:8080/ServerPath/CollectionName/";

$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($collectionBaseUrl);
$collectionHive = $tfs.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationRegistry]);

# Set some version control settings in the collection hive.
$collectionHive.SetValue("/Service/VersionControl/Settings/Allow8Dot3Paths", "True");

# Display all version control settings as a table.
$collectionHive.ReadEntries("/Service/VersionControl/Settings/...") | ft -a

Преобразование данных посредством VSSConverter

Между Team Foundation и Visual SourceSafe есть существенные функциональные различия. Поэтому средство VSSConverter должно в процессе миграции изменять данные определенных типов.

Наборы изменений

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

В Visual SourceSafe нет эквивалентов наборов изменений. Однако в процессе преобразования все изменения группируются в наборы изменений, если выполняются следующие условия:

  • изменения не противоречат друг другу. Например, если два действия не затрагивают один и тот же файл или папку;

  • разница во времени внесения изменений не превышает нескольких минут;

  • изменения были возвращены одним и тем же пользователем;

  • для изменений введены одинаковые комментарии при возврате.

Дополнительные сведения см. в разделе Работа с наборами изменений.

Общий доступ и закрепление

В Visual SourceSafe файл можно предоставить для общего доступа в нескольких папках. Изменения, внесенные в общий файл, реплицируются во все папки, где он предоставлен в общий доступ. В Team Foundation (подсистема контроля версий) нет эквивалентной функции. В ходе миграции общие файлы в проекте Visual SourceSafe переносятся путем создания дополнительной независимой копии элемента на сервере Team Foundation (подсистема контроля версий).

В Team Foundation (подсистема контроля версий) нет функции, эквивалентной функции закрепления в Visual SourceSafe. В ходе миграции закрепленные элементы в проекте Visual SourceSafe преобразуются в помеченные элементы на сервере Team Foundation (подсистема контроля версий). Дополнительные сведения см. в следующем разделе.

Дополнительные сведения о метках в Team Foundation (подсистема контроля версий) см. в разделе Использование меток для создания снимков файлов.

Данные журнала

Каждое событие в журнале элемента в базе данных Visual SourceSafe переносится на сервер Team Foundation (подсистема контроля версий) в виде набора изменений. После завершения миграции эти данные можно просмотреть в окне "Журнал". Дополнительные сведения см. в разделе Использование окна журнала.

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

Перенос данных об имени пользователя и отметке времени

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

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

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

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

Преобразование событий определенных типов

События, например изменение, переименование и удаление, переносятся из базы данных Visual SourceSafe в наборы изменений на сервере Team Foundation (подсистема контроля версий) достаточно естественным образом. Однако средство VSSConverter переносит некоторые события достаточно неожиданным способом, как показано в следующей таблице.

Visual SourceSafe Событие

Порядок переноса в Team Foundation

Добавление файла или папки

Этот набор изменений является первым событием в истории всех переносимых файлов и папок.

В отличие от Visual SourceSafe, для родителя каждого внутреннего дочернего элемента событие не создается.

Ветвление

В Visual SourceSafe обязательным условием ветвления является общий доступ, однако в Team Foundation (подсистема контроля версий) общий доступ не поддерживается. Поэтому при переносе файла с ветвлением создается копия файла в папке назначения. 

Общие файлы в базе данных Visual SourceSafe переносятся в Team Foundation (подсистема контроля версий) путем копирования версии файла, существовавшей на момент предоставления общего доступа, и помещения копии в папку назначения. В результате каждый набор изменений реплицируется в обеих копиях файла до события ветвления.

Применение метки к файлу 

В Team Foundation метка применяется к версии файла или папки. В Visual SourceSafe метку можно применить к файлу явно или неявно. При явном применении метки к файлу в Visual SourceSafe создается новая версия файла. И при получении файлов по этой метке пользователи получают содержимое файла, соответствующее версии этого файла, существовавшей до создания метки. Для переноса явных меток средство преобразования применяет к версии файла в Team Foundation метку, соответствующую помеченной версии в Visual SourceSafe. Однако новая версия при этом не создается.

При применении метки к папке в Visual SourceSafe эта метка неявно применяется ко всем папкам и файлам внутри этот папки, а средство преобразования не создает новые версии. В случае неявных меток средство преобразования не делает ничего, так как соответствующие версии в Team Foundation автоматически помечаются во время миграции явных меток папки.

ПримечаниеПримечание
Если база данных Visual SourceSafe содержит большое число меток, применяемых к большому числу файлов, процесс миграции может занять продолжительное время.Если эти данные не нужны команде, можно настроить средство VSSConverter таким образом, чтобы оно игнорировало метки.Дополнительные сведения см. выше в разделе Тег <Label migrate="false" />.

Применение метки к папке

В Visual SourceSafe при применении метки к папке неявно снабжаются метками все расположенные в ней файлы и папки, а новые версии не создаются. В процессе миграции этих папок средство преобразования применяет метку к соответствующей версии папки в Team Foundation. При этом метка автоматически применяется к текущим версиям файлов и папок, расположенных в помеченной папке.

ПримечаниеПримечание
Если база данных Visual SourceSafe содержит большое число меток, применяемых к большому числу файлов, процесс миграции может занять продолжительное время.Если эти данные не нужны команде, можно настроить средство VSSConverter таким образом, чтобы оно игнорировало метки.Дополнительные сведения см. в разделе Тег <Label migrate="false" />.

Перемещение папки

Событие перемещения папки создает новую версию папки в Team Foundation.

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

ПримечаниеПримечание
Если событие перемещения папки объединено с событием восстановления, исторические данные могут быть перенесены правильно.

Восстановление

Никакие исторические данные до события восстановления не переносятся.

Закрепление и открепление

Team Foundation (подсистема контроля версий) не поддерживает закрепления. Средство VSSConverter переносит закрепленный файл, создавая две метки.

Метка PINNED_LATEST применяется к закрепленным версиям закрепленных файлов и к последней версии открепленных файлов. Метка PINNED применяется только к закрепленным версиям закрепленных файлов. После переноса по метке PINNED_LATEST будут извлекаться те же файлы, что и с помощью команды Get Latest в Visual SourceSafe. Однако по метке PINNED_LATEST могут возвращаться различные файлы, если после закрепления файла произошли другие события, кроме возврата, например, переименование или удаление файла.

Общий доступ

В Team Foundation (подсистема контроля версий) общий доступ не поддерживается. Общие файлы в базе данных Visual SourceSafe переносятся в Team Foundation (подсистема контроля версий) путем копирования версии файла, существовавшей на момент предоставления общего доступа, и помещения копии в папку назначения. В результате каждый набор изменений реплицируется в обеих копиях файла.

Отмена удаления файла или папки

В процессе миграции событий отмены удаления файла или папки средство преобразования воспроизводит событие, создавая новую версию файла или папки в Team Foundation.

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

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

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