TFS / Контроль Файла от C#

У меня нет большого опыта с TFS кроме использования его для управления исходным кодом. Я работаю над приложением C#, которое должно будет изменить файлы, которыми управляет TFS. Из моего приложения C#, как я могу проверить файл, которым управляют через TFS?

Спасибо - Randy

6
задан Randy Minder 18 December 2009 в 02:53
поделиться

1 ответ

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

Вот код, в котором структура папок создается и затем регистрируется (очень похоже на то, что вам нужно).

    private static void CreateNodes(ItemCollection nodes)
{
    using (var tfs = TeamFoundationServerFactory.GetServer("http://tfsserver:8080"))
    {
        var versionControlServer = tfs.GetService(typeof (VersionControlServer)) as VersionControlServer;
        versionControlServer.NonFatalError += OnNonFatalError;

        // Create a new workspace for the currently authenticated user.             
        var workspace = versionControlServer.CreateWorkspace("Temporary Workspace", versionControlServer.AuthenticatedUser);

        try
        {
            // Check if a mapping already exists.
            var workingFolder = new WorkingFolder("$/testagile", @"c:\tempFolder");

            // Create the mapping (if it exists already, it just overides it, that is fine).
            workspace.CreateMapping(workingFolder);

            // Go through the folder structure defined and create it locally, then check in the changes.
            CreateFolderStructure(workspace, nodes, workingFolder.LocalItem);

            // Check in the changes made.
            workspace.CheckIn(workspace.GetPendingChanges(), "This is my comment");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            // Cleanup the workspace.
            workspace.Delete();

            // Remove the temp folder used.
            Directory.Delete("tempFolder", true);
        }
    }
}

private static void CreateFolderStructure(Workspace workspace, ItemCollection nodes, string initialPath)
{
    foreach (RadTreeViewItem node in nodes)
    {
        var newFolderPath = initialPath + @"\" + node.Header;
        Directory.CreateDirectory(newFolderPath);
        workspace.PendAdd(newFolderPath);
        if (node.HasItems)
        {
            CreateFolderStructure(workspace, node.Items, newFolderPath);
        }
    }
}
8
ответ дан 9 December 2019 в 22:35
поделиться
Другие вопросы по тегам:

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