Описание миграции событий истории
Обновлен: Ноябрь 2007
В этом разделе обсуждается, как выполняется миграция событий истории, зарегистрированных в Visual SourceSafe, в Team Foundation.
События истории
События истории переносятся в эквивалентную область Team Foundation. Это позволяет поддерживать историю исходных файлов. История версий файлов создается путем воспроизведения событий, создавших историю. В следующей таблице описано, как выполняется миграция каждого события истории:
Событие |
Описание миграции |
---|---|
Добавление файла или папки |
Событие добавления файла создает первую версию файла в Team Foundation. Событие добавления папки создает первую версию папки в Team Foundation. Если при добавлении папка содержит файлы или папки, они добавляются отдельно. |
Редактирование файла |
Событие редактирования файла создает новую версию файла в Team Foundation. |
Применение метки к файлу |
В Team Foundation метка применяется к версии файла или папки. В Visual SourceSafe метку можно применить к файлу явно или неявно. При явном применении метки к файлу в Visual SourceSafe создается новая версия файла, и при получении этой метки вы получите содержимое файла, соответствующее его предыдущей версии. Для миграции явных меток преобразователь применяет метку к версии, соответствующей помеченной версии в Visual SourceSafe, в Team Foundation. Однако новую версию он не создает. При применении метки к папке в Visual SourceSafe метка применяется неявно ко всем расположенным в ней файлам и папкам, и новые версии не создаются. Для неявных меток преобразователь не делает ничего, так как соответствующие версии в Team Foundation автоматически снабжаются метками во время миграции явных меток папки. |
Применение метки к папке |
В Visual SourceSafe при применении метки к папке неявно снабжаются метками все расположенные в ней файлы и папки, и новые версии не создаются. В процессе миграции этих папок преобразователь применяет метку к соответствующей версии папки в Team Foundation. При этом метка автоматически применяется к текущим версиям файлов и папок, расположенных в помеченной папке. |
Переименование, удаление или отмена удаления файла или папки |
В процессе миграции событий переименования, удаления и отмены удаления файла или папки преобразователь воспроизводит событие, создавая новую версию файла или папки в Team Foundation. |
Перемещение папки |
Событие перемещения папки создает новую версию папки в Team Foundation. В Visual SourceSafe команда перемещения не изменяет содержимое или историю папки, но вместо этого записывается в историю старой и новой родительских папок. При перемещении папки Visual SourceSafe не может реконструировать старую версию родительской папки. После миграции можно будет реконструировать старую версию, благодаря способу миграции события перемещения папки. Например, если метка "LABEL1" была применена к папке $/A, содержащей вложенную папку /B, а затем папка /B была перемещена в другую папку $/C, то если выполнить в Visual SourceSafe получение "LABEL1" для $/A, папка $/A/B получена не будет. После миграции на Team Foundation, однако, вы получите перемещенную папку ($/A/B) при получении метки. При миграции перемещенных папок существует три возможных сценария с различными результатами, в зависимости от того, что переносится:
Примечание.
Если событие перемещения папки объединено с событием восстановления, история может быть не перенесена надлежащим образом.
|
Общий доступ к файлам |
В Visual SourceSafe можно предоставить файл для общего доступа в нескольких папках. Изменения, внесенные в общий файл, реплицируются во всех папках, где он предоставлен в общий доступ. На глубоком уровне Visual SourceSafe создает между общими файлами софт-ссылки. Папки технически не предоставляются в общий доступ в Visual SourceSafe. При предоставлении папки в Visual SourceSafe в общий доступ создается копия этой папки, и все файлы из нее предоставляются в общий доступ. Team Foundation не содержит эквивалента общего доступа. Общие файлы переносятся путем создания версии в папке назначения с тем же содержимым, что и версия файла на момент начала общего доступа. В дальнейшем изменения, внесенные в общий файл, реплицируются в обоих местах преобразователем. |
Общий доступ и удаление файла |
Файл, который предоставляется в общий доступ, а затем удаляется, обрабатывается как общий файл, кроме того, что все действия после удаления игнорируются. Если удаление общего файла в дальнейшем отменяется, преобразователь сообщает об ошибках в процессе миграции каждого действия, например, редактирования или переименования. Однако в процессе миграции действия отмены удаления преобразователь выполняет отмену удаления и редактирование файла, чтобы его содержимое соответствовало содержимому подвергнутого отмене удаления файла в Visual SourceSafe. Если удаленный общий файл в дальнейшем будет переименован, преобразователь сообщает об ошибках в процессе миграции действия переименования. Действия после переименования перенесены не будут, и преобразователь для каждого такого действия будет сообщать ошибку. |
Ветвление файлов |
Общий доступ является предварительным условием ветвления. Преобразователь не может сопоставить ветвь Visual SourceSafe с ветвью Team Foundation (подсистема контроля версий). Миграция общего файла приводит к репликации файла в папке назначения. Миграция событий ветвления означает, что изменения, внесенные в общий файл, больше не реплицируются в обоих местах. Следовательно, изменения в любой ветви переносятся в соответствующую копию в Team Foundation. Отчет о миграции содержит список папок с файлами, предоставленными в общий доступ или разветвленными в Visual SourceSafe. |
Архивация |
При архивации файлов или папок в Visual SourceSafe можно либо удалить историю файла или папки полностью, либо удалить из нее некоторые версии. Если история была удалена, преобразователю не удастся выполнить миграцию удаленных версий. Преобразователь игнорирует событие архивации. |
Восстановление |
При восстановлении в Visual SourceSafe восстанавливается история архивного файла или папки. Преобразователь выполняет миграцию восстановленной истории файлов и папок. Преобразователь игнорирует событие восстановления. |
PIN и UNPIN |
Team Foundation (подсистема контроля версий) не поддерживает закрепление; поэтому все закрепленные файлы переносятся путем создания двух меток. Метка PINNED_LATEST применяется к закрепленным версиям закрепленных файлов и к последней версии незакрепленных файлов. Метка PINNED применяется только к закрепленным версиям закрепленных файлов. После переноса метка PINNED_LATEST будет извлекать те же файлы, что и метка Get Latest в Visual SourceSafe. Однако метка PINNED_LATEST может возвращать различные файлы, если после закрепления файла произошли другие события, кроме возврата, например, переименование или удаление файла. |
См. также
Основные понятия
Как преобразователь группирует наборы изменений для улучшения производительности