Получить дату набора изменений в TFS SDK?

Я хочу получить дату набора изменений. В TFS SDK много ссылок. Какая ссылка и класс мне нужны?


person user1536577    schedule 19.07.2012    source источник


Ответы (1)


Один из лучших ресурсов, которые я нашел по TFS API, — это серия сообщений в блогах: http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+API/default..aspx

В этом случае нет ничего явно о получении информации об наборе изменений (что я видел), но есть пара других сообщений, связанных с контролем версий. Оттуда вы увидите, что вам нужно начать с получения VersionControlServer, и страница MSDN для этого класса должна помочь вам в остальном: вызовите GetChangeset, чтобы получить конкретный объект Changeset, который, в свою очередь, имеет свойство CreationDate. .

(Если вы на самом деле не знаете номер набора изменений, который вам нужен, вы можете использовать такие методы, как QueryHistory, чтобы получить списки наборов изменений для определенных путей в базе данных системы управления версиями.)

var collectionUrl = "http://tfsserver:8080/tfs/DefaultCollection";
var tpc = new TfsTeamProjectCollection(collectionUrl);

var vc = tpc.GetService<VersionControlServer>();

// Get changeset #1234
var cs = vc.GetChangeset(1234);

// Get the last changeset checked into TFS by anyone.
var cslatest = vs.GetChangeSet(vs.GetLatestChangesetId());    

// Get a list of all changesets for the $/MyProject/Main branch
var cslist = vc.QueryHistory("$/MyProject/Main", null, 0, RecursionType.Full, 
    null, null, int.MaxValue, false, false);
person Michael Edenfield    schedule 19.07.2012
comment
я получил teamproject, я могу использовать teamproject.name, чтобы получить имя проекта. но как я могу получить набор изменений ?? Getchangeset(int changeset), что означает набор изменений int??? - person user1536577; 19.07.2012
comment
Наборам изменений присваиваются номера, уникальные для всей системы. Значение — это просто число, которое вы видите, когда смотрите на набор изменений в представлении «История» или что-то еще — идентификатор набора изменений. Вам необходимо получить ссылку на сервер контроля версий для вашего командного проекта. Я добавлю пример кода в ответ. - person Michael Edenfield; 19.07.2012
comment
@MichaelEdenfield Одно (педантичное) исправление: наборы изменений и уникальные для коллекции командных проектов (а в одной системе может быть много коллекций проектов). - person Richard; 19.07.2012
comment
Это правда; Я перешел с TFS2005 и никогда не видел ни одного с несколькими коллекциями, поэтому я все еще склонен связывать TPC со старым TeamServer:\ - person Michael Edenfield; 19.07.2012
comment
Привет. при запуске var cs = vc.GetChangeset(1234); это генерирует ошибку, у вас нет доступа к xxxxxxxxxxx .... но я получил имя проекта перед ним. почему у меня нет доступа ........ - person user1536577; 20.07.2012
comment
Разрешения в TFS очень сложны; система управления исходным кодом имеет собственный набор элементов управления доступом, которые не зависят от основной информации о проекте. Похоже, у вас просто нет доступа к файлам, включенным в любой набор изменений # 1234. - person Michael Edenfield; 20.07.2012
comment
да, но я могу видеть набор изменений и просматривать историю через систему управления исходным кодом Team Explorer в vs2010, поэтому у меня должно быть право доступа..... - person user1536577; 20.07.2012