Опубликован: 25.03.2010 | Уровень: специалист | Доступ: платный
Дополнительный материал 2:

Практические рекомендации

Как перекрыть политику возврата после правки

Чтобы перекрыть политику возврата после правки, задайте параметр Override policy failure and continue check-in в диалоговом окне Policy Failure. Перекрыть политику возврата после правки волен любой пользователь, обладающий разрешением на возврат файлов.

Чтобы проследить за перекрытием политики возврата после правки, воспользуйтесь службой событий Team Foundation Eventing Service.

Дополнительные ресурсы

Как отменить возврат после правки

Для отмены возврата файла используется команда rollback из комплекта Team Foundation Power Tools. Эта команда возвращает файл к его предыдущей версии. Команда rollback позволяет выполнить откат сразу всего набора изменений, но можно также выбирать для отката лишь некоторые файлы из набора. Это очень удобно, когда нужно отменить ошибочно возвращенное изменение файла или возвращенные изменения привели к серьезным конфликтам сборки.

Отмена возврата файла

  1. Запустите приведенную ниже команду в окне командной строки. Переменная PATH должна включать путь \Program Files\Microsoft Team Founda-tion Server Power Tools.
    TFPT rollback filename.cs
    Примечание Если вам известен номер набора изменений, содержащего правку, которую вы хотите отменить, укажите его в команде, как показано ниже:
    TFPT rollback filename.cs /changeset:54
  2. Команда rollback запросит подтверждение на обновление рабочей области. Щелкните кнопку Yes в информационном окне Roll Back Changeset. После этого в рабочую область будут переданы файлы с сервера.
  3. Если вы не указали номер набора изменений в командной строке, откроется диалоговое окно Find Changeset. Введите критерий поиска или просто щелкните кнопку Find. Найдите и выделите набор изменений, содержащий правку, которую вы хотите отменить, и щелкните Roll Back. Откроется окно Roll Back Changeset.
  4. Поскольку в наборе может содержаться несколько изменений, выделите файл, отмену возврата которого хотите выполнить, и щелкните Roll Back.

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

Отменяя возврат после правки командой TFPT rollback, учитывайте следующие соображения:

  • Расположение рабочей области TFPT определяет расположение рабочих областей следующими способами. Если вы указали путь к файлу в качестве аргумента, для поиска рабочей области используется он. Если вы не указали путь к файлам, в качестве рабочей области используется локальная папка, если для нее есть сопоставление. Чтобы гарантировать, что инструмент будет работать в нужной рабочей области, запустите команду из локально сопоставленной папки.
  • Незавершенные изменения Нельзя откатить набор, содержащий незавершенные изменения. При попытке сделать это вы получите сообщение об ошибке. Перед запуском команды rollback отложите ( shelve ) незавершенные изменения, которые хотите сохранить, а остальные отмените или запишите на сервер.
  • Слияния Если вы отменяете возврат файла, который был произведен совсем недавно, вам, вероятно, не придется выполнять перенос изменений: маловероятно, что кто-нибудь уже успел обновить элемент. Если же вы хотите отменить возврат, который не является последним изменением файла, вам потребуется трехстороннее слияние. Нужно будет объединить текущую версию на сервере, версию в вашей рабочей области и версию, которую вы хотите откатить. При возникновении конфликтов в файле удаляются изменения из версии, предназначенной для отката. Любые изменения, внесенные после этой версии, сохраняются.
  • Разрешение конфликтов Если в процессе слияния возник конфликт, на экране появится специальное окно. Чтобы все-таки выполнить слияние, выделите элемент и щелкните кнопку Merge. Первоначально предпринимается попытка автоматического слияния. В случае неудачи для разрешения конфликта вызывается инструмент слияния. Если вы щелкнете кнопку Auto-Merge All, будет произведена попытка выполнить автоматическое слияние всех элементов, находящихся в списке слияния. Инструмент слияний не вызывается.

Дополнительные ресурсы

Как создать пользовательскую политику возврата после правки

Для создания пользовательской политики возврата после правки используется модель надстройки, предоставленная средой политики ( policy framework ).

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

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

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

  • IPolicyDefinition Методы, используемые в процессе определения требований политики к командным проектам.
  • IPolicyEvaluation Методы, используемые в процессе оценки соответствия требованиям политики во время возврата после правки. Принимают возвращаемое содержимое и анализируют его на предмет соответствия определенной политике.

Вы можете упаковать несколько надстроек политик в один файл сборки. Единственное требование - реализовать надстройки как отдельные классы.

Примечание Данные интерфейсы отображены в классе PolicyBase. В качестве альтернативы применению интерфейсов IPolicyDefinition и IPolicyEvaluation вы можете использовать производный класс из PolicyBase.

Дополнительные ресурсы

  • Дополнительную информацию о создании и использовании пользовательской политики возврата после правки вы найдете в разделе "Как создать пользовательскую политику возврата после правки в Visual Studio Team Foundation Server " этого курса.
  • Дополнительную информацию о настройке политики возврата после правки вы найдете в статье "Walkthrough: Customizing Check-in Policies and Notes" по адресу http://msdn2.microsoft.com/en-us/library/ms181281 (VS.80).aspx.
  • С примером кода, запрещающего определенные варианты программирования, можно ознакомиться по материалам статьи "Checkin Policy to Disallow Certain Patterns" по адресу http://blogs.msdn.com/jmanning/archi ve/2006/02/02/523125.aspx.
  • С примером кода, заставляющего добавлять комментарии при возврате после правки, можно познакомиться в статье "Sample Checkin Policy: Make Sure the Comment Isn't Empty" по адресу http://blogs.msdn.com/ jmanning/archive/2006/01/21/515858.aspx.
  • Дополнительную информацию о том, как зарегистрировать новую политику возврата после правки, вы найдете в статье "I've Made a New Check-In Policy! How Do I Add It?" по адресу http://blogs.msdn.com/jmanning/ar-chive/2006/02/07/526778.aspx.
  • Дополнительную информацию об использовании инструментов анализа кода вы найдете в статье "Guidelines for Using Code Analysis Tools" по адресу http://msdn2.microsoft.com/en-us/library/ms1 82023(VS.80).aspx.
  • Дополнительную информацию о создании новой политики вы найдете в статье "Policy Plug-ins" по адресу http://msdn2.microsoft.com/en-us/ library/bb130343(VS.80).aspx.

Отладка, извлечение и блокировка

  • Как синхронизировать компьютер с TFS.
  • Как подготовить файл к редактированию.

Как синхронизировать компьютер с TFS

Для синхронизации компьютера с сервером управления версиями используется команда tf get. С ее помощью вы легко синхронизируете свою работу с остальными разработчиками и всегда будете иметь дело с новейшими версиями файлов. Чтобы загрузить все файлы, а не только обновленные, запустите в окне командной строки Visual Studio 2005 следующую команду: tf get /all

При запуске этой команды перезапись всех записываемых локальных файлов, имеющихся на вашем компьютере, не производится. Если вы хотите перезаписать локальные записываемые файлы для полной синхронизации вашего компьютера с сервером, используйте ключ /force, как показано в примере: tf get /force

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

Чтобы провести синхронизацию из Visual Studio, выполните следующие действия:

  1. В окне Team Explorer дважды щелкните папку Source Control, правой кнопкой щелкните сервер или командный проект и выберите команду Get Specific Version.
  2. Задайте параметры Overwrite writable files that are not checked out и Force get of file versions already in workspace.
  3. Убедитесь, что в раскрывающемся списке Type выбран вариант Latest Version и щелкните кнопку Get.

Чтобы полностью синхронизировать компьютер с сервером управления версиями, не задавайте в Visual Studio параметр Get Latest Version. Эта команда загружает только те файлы, которых нет в вашей рабочей области, и не перезаписывает записываемые файлы, извлеченные в локальную папку. Таким образом, синхронизация компьютера с сервером фактически не выполняется.

Дополнительные ресурсы

Как подготовить файл к редактированию

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

Подготовка файла для редактирования

  1. В окне Source Control Explorer выберите файл, щелкните его правой кнопкой мыши и выберите команду Get Latest Version. Это приведет к загрузке последней версии файла в рабочую область на вашем компьютере. Пока она будет доступна только для чтения.
  2. Щелкните файл правой кнопкой и выберите команду Check Out for Edit.
  3. Задайте тип блокировки. Выберите None, чтобы разрешить другим пользователям извлекать и возвращать файл одновременно с вами.

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

Примечание Не путайте получение последней версии файла ( Get Latest Version ) и его извлечение для редактирования ( Check Out for Edit ). Это разные операции, и они должны выполняться отдельно. В этом TFS отличается от Microsoft Visual SourceSafe.

Выбирая тип блокировки, учитывайте следующие соображения:

  • Тип блокировки None позволяет избежать задержек, связанных с невозможностью одновременной работы над одним и тем же файлом.
  • Блокировать файл на время редактирования следует только в случае, если вы опасаетесь возникновения конфликтов, который приведут к необходимости трудоемкого ручного слияния.
  • Выбрав тип блокировки Check Out, вы лишаете других пользователей возможность извлекать и возвращать файл. Это фактический запрет на редактирование файла, который может привести к замедлению разработки. При этом у вас появляется возможность применять изменения к БД управления исходным кодом, не опасаясь изменений, сделанных другими пользователями.
  • Тип блокировки Check In позволяет другим пользователям извлекать файл для редактирования, но не разрешает возвращать его. Этот вариант также гарантирует вам бесконфликтное возвращение ваших правок.

Дополнительные ресурсы

Совместное использование кода

  • Как организовать общий доступ к коду.
  • Как управлять общими двоичными файлами.

Как организовать общий доступ к коду

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

Для разработчиков, использующих общий исходный код, существует два варианта действий:

  • установить ссылку на код из общего расположения;
  • выполнить ветвление общего кода.

Установка ссылки на код из общего расположения

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

Преимущество этого способа состоит в том, что изменения, вносимые в общий исходный код, переносятся при каждом извлечении новейшего исходного кода в рабочую область. Допустим, у вас есть два командных проекта - Client и Shared Code. В проекте Shared Code расположен общий исходный код. Чтобы установить ссылки на код в общем расположении, эти проекты используют единый путь на диске клиента, как показано в примере:

  • c:\TestProject\Client
  • c:\TestProject\Shared Code

В обоих проектах имеются сопоставления с этими локальными путями.

Папка системы управления исходным кодом Локальная папка
$/Client c:\TestProject\Client
$/Shared Code c:\TestProject\Shared Code

Дополнительную информацию вы найдете в статье "Working with multiple team projects in Team Build" по адресу http://blogs.msdn.com/manishagar-wal/archive/2005/12/22/506635.aspx.

Ветвление общего кода

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

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

Допустим, у вас есть два командных проекта - Client и Shared Code. В проекте Shared Code расположен общий исходный код. Для ветвления кода из общего расположения выполните следующие действия:

  1. В окне Source Control щелкните правой кнопкой корневую папку проекта Shared Code.
  2. Выберите команду Branch.
  3. В диалоговом окне Branch укажите в поле Target корневую папку командного проекта Client. Щелкните OK.
  4. По завершению операции ветвления не забудьте возвратить исходный код, полученный в результате ветвления.

Дополнительные ресурсы

Как управлять общими двоичными файлами

Управление общими двоичными файлами очень похоже на управление общим исходным кодом: главное - решить, где вы собираетесь хранить двоичные файлы и как будет организован общий доступ к ним.

Существуют следующие варианты хранения общих двоичных файлов:

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

Ветвление общих двоичных файлов в проект

  1. В окне Source Control правой кнопкой щелкните корневую папку проекта с общими двоичными файлами.
  2. Выберите команду Branch.
  3. В диалоговом окне Branch укажите в поле Target корневую папку клиентского командного проекта. Щелкните OK.
  4. По завершению операции ветвления не забудьте возвратить исходный код, полученный в результате ветвления.

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

  • Main.
    • Source - код проекта.
    • Lib - общие двоичные файлы.

Дополнительные ресурсы

Илья Макаренко
Илья Макаренко

Добрый день.

Вопрос №1

Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте?

Вопрос №2

Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже?

Александр Медов
Александр Медов

Здравствуйте, какова полная сумма предоставленной услуги с печатью документа и отправкой по почте?

Елена Ходакова
Елена Ходакова
Россия
Игорь Шубин
Игорь Шубин
Россия, Москва, НОУ МФПУ