Как найти все изменения ниже определенного момента в дереве управления исходным кодом TFS

Линт пк работы вполне хорошо для этого, и это находит все виды других глупых проблем для Вас также. Это имеет параметры командной строки, которые могут использоваться для создания Внешних Инструментов в Visual Studio, но я нашел, что Визуальный Линт дополнение легче работать с. Даже бесплатная версия Визуального Линта помогает. Но дайте Линту ПК выстрел. При конфигурировании его так, который это не дает Вам, слишком много предупреждений занимают немного времени, но Вы будете поражены тем, что это поднимает.

5
задан brett rogers 12 August 2014 в 22:43
поделиться

2 ответа

Использование Team Explorer:

  1. Open Source Control Explorer
  2. Перейдите к нужной папке управления версиями.
  3. Щелкните правой кнопкой мыши и выберите «Просмотр истории».

Показывает все наборы изменений, которые были зарегистрированы на этом уровне в дереве или ниже.


Использование утилиты tf:

tf history c: \ localFolder -r -format: detail

Вот ссылка на документацию tf history для получения дополнительных сведений об использовании: ссылка


Использование TFS SDK , чтобы делать это программно:

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

private StringBuilder GetTfsModifications(string tfsPath, DateTime startTime, DateTime endTime)
{
    StringBuilder bodyContent = new StringBuilder();

    TeamFoundationServer tfs = new TeamFoundationServer("YourServerNameHere");
    VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));

    // Get collection of changesets below the given path
    System.Collections.IEnumerable changesets = vcs.QueryHistory(
            tfsPath, 
            VersionSpec.Latest, 
            0, 
            RecursionType.Full, 
            null, 
            new DateVersionSpec(startTime), 
            new DateVersionSpec(endTime), 
            int.MaxValue, 
            true, 
            false);

    // Iterate through changesets and extract any data you want from them
    foreach (Changeset changeset in changesets)
    {
        StringBuilder changes = new StringBuilder();
        StringBuilder assocWorkItems = new StringBuilder();

        // Create a list of the associated work items for the ChangeSet
        foreach (WorkItem assocWorkItem in changeset.WorkItems)
        {
            assocWorkItems.Append(assocWorkItem.Id.ToString());
        }

        // Get details from each of the changes in the changeset
        foreach (Change change in changeset.Changes)
        {
            changes.AppendLine(string.Format(CultureInfo.InvariantCulture, "\t{0}\t{1}", 
                    PendingChange.GetLocalizedStringForChangeType(change.ChangeType), 
                    change.Item.ServerItem));
        }

        // Get some details from the changeset and append the individual change details below it
        if (changes.Length > 0)
        {
            bodyContent.AppendLine(string.Format(CultureInfo.InvariantCulture, "{0}\t{1}\t{2}\t{3}\t{4}", 
                    changeset.ChangesetId, 
                    changeset.Committer.Substring(changeset.Committer.IndexOf('\\') + 1), 
                    changeset.CreationDate, 
                    changeset.Comment, 
                    assocWorkItems.ToString()));
            bodyContent.Append(changes.ToString());
        }
    }

    return bodyContent;
}
11
ответ дан 13 December 2019 в 05:37
поделиться

Если я правильно понимаю, ответ может быть очень простым:

tf history c:\some\subdir -r -format:detailed -noprompt

Ответьте, если этого недостаточно.

1
ответ дан 13 December 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: