2014-10-09 5 views
0


Я новичок в TFS и только что сделал свое первое погружение в мир TFS за последние несколько дней (могу сказать, что мои знания о TFS до сих пор , ограничивается только чтением блогов, MSDN и быстрым чтением нескольких книг). В настоящее время мне задали задачу расширить элемент управления браузером репозитория, который ранее был сделан другим разработчиком (указанная версия TFS SDK - 2010). Основная цель этого элемента управления - перечислить все содержимое по заданному пути. У меня есть несколько запросов, которые я хотел бы уточнить, прежде чем я перейду к этому;TFS SDK 10.0 Совместимость с версиями и блокировкой сервера TFS без локальной рабочей области

  1. Могу ли я использовать SDK 2010 для подключения к серверам TFS 2010, 2012 и 2013 года без необходимости переключения на более новую версию SDK на основе версии сервера?
  2. Я также хотел бы иметь несколько команд, реализованных в моем элементе управления, которые позволят пользователям;

    • Применить ярлык к файлу/папке
    • блокировки/разблокировки файлов
    • Создать подкаталог под папку
    • перетаскивать файлы/папки

      Я хотел бы знать, могу ли я эти команды выполняются без локального сопоставления рабочего пространства (что-то похожее, как в случае браузера TortoiseSvn Repo, где можно заблокировать/разблокировать или удалить файлы/папки без локальной рабочей копии).

Спасибо!

ответ

0
  1. Это зависит от того, какую часть API вы вызываете. Некоторые вещи будут обратно совместимы без перекомпиляции. Некоторым вещам необходимо будет ссылаться на более новые версии двоичных файлов TFS API, и некоторые вещи нужно будет переписать, поскольку определенные объекты и методы устарели в новых версиях TFS. На самом деле это вопрос широкий.

EDIT: Вы хотите потратить некоторое время, чтобы узнать в документации TFS API: Если вы в основном связаны с операциями управления версиями, то вы хотите, чтобы стать друзьями с Microsoft.TeamFoundation.VersionControl.Client и Microsoft.TeamFoundation.VersionControl.Common Затем вернуться, когда у вас есть еще немного конкретные сведения об импликации кода.

  1. Нет. Если вы хотите управлять файлами из Source Control, у вас должно быть рабочее пространство. В TFS 2012 и выше есть 2 вида рабочей области, рабочие области рабочего стола сервера отслеживают изменения на сервере TFS, и вы должны явно проверить файлы для их изменения. Локальные рабочие пространства Бывают более похожими на SVN и отслеживают изменения локально. TFS 2010 поддерживает только рабочие области сервера. В дополнение к этому TFS 2013 позволяет размещать репозиторий Git в TFS, но вы не можете смешивать и сопоставлять между TFSVC и Git, вам нужно решить, какой из них вы хотите, создав Team Project. Вы могли бы использовать SVN Bridge, который обертывает TFSVC, чтобы его можно было вызвать с помощью инструментов Tortoise, однако это добавило бы много сложности вашему решению, возможно, проще просто получить API для создания рабочей области.

EDIT: Еще раз API вызовы, все там, я не сделал много работы в этом пространстве, но Item.QueryItem Method в Microsoft.TeamFoundation.VersionControl.Server пространства имен является хорошим местом для начала.

+0

Большое спасибо @ Джеймс Рид.Что касается вопроса 1, мой код касается клиентской части API в целом и, в основном, части управления версиями, чтобы пользователи могли выполнять базовые операции, такие как checkin, checkout, lock unlock и т. Д., Надеюсь, это поможет. Я хотел бы получить дополнительную информацию по вопросу 2, есть ли способ перечислить содержимое в проекте, что-то похожее на способ, как показано в интерфейсе веб-доступа (я предполагаю, что содержимое попадает туда, независимо от отображения рабочего пространства. –

+0

добавил некоторую деталь к ответу. –

+0

Спасибо @James. Как я уже говорил ранее, я занимаюсь разработкой, с которой предыдущий разработчик оставил ее. Я подумал, что было бы лучше решить рано, нужно ли мне использовать новый SDK версия, и если я перейду к более новой версии, это повлияет на любую из существующих функций. Как вы упомянули, я вернусь позже с более конкретными вопросами, если таковые имеются. Мой текущий план заключается в использовании версии, на которую ссылается в настоящее время (10.0) и двигаться вперед. Я не могу проголосовать за ваш ответ, поскольку у меня недостаточно очков, хотелось бы подождать пару дней, прежде чем я помету ваш ответ как принятый. –