4 Stimmen

Rückgängig Checkout TFS

Gibt es einen Weg, um ein Checkout programmatisch in C# rückgängig zu machen?

Die Dateien werden programmatisch ausgecheckt, aber wenn der Code bei der Ausführung nicht geändert wird, möchte ich das Auschecken rückgängig machen.

public static void CheckOutFromTFS(string fileName)
{
    var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(fileName);
    if (workspaceInfo == null)
        return;

    var server = new TfsTeamProjectCollection(workspaceInfo.ServerUri);
    var workspace = workspaceInfo.GetWorkspace(server);
    workspace.PendEdit(fileName);
}

Der obige Code ist mein Checkout-Code.

7voto

Sie können die Methode Workspace.Undo verwenden, um den Checkout rückgängig zu machen.

http://msdn.microsoft.com/de-de/library/microsoft.teamfoundation.versioncontrol.client.workspace.undo.aspx

1voto

Mr.B Punkte 3118

Ich habe diese Aufgabe auf folgende Weise erledigt:

private const string ConstTfsServerUri = @"http://IhrTfsAdresse:8080/tfs/";
 #region Rückgängig machen
    public async Task UndoPendingChangesAsync(string path)
    {
        return await Task.Run(() => UndoPendingChanges(path));
    }

    private bool UndoPendingChanges(string path)
    {
        using (var tfs = TeamFoundationServerFactory.GetServer(ConstTfsServerUri))
        {
            tfs.Authenticate();
            // Erstellen eines neuen Arbeitsbereichs für den aktuell authentifizierten Benutzer.   
            int res = 0;
            try
            {
                var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(ConstDefaultFlowsTfsPath);
                var server = new TfsTeamProjectCollection(workspaceInfo.ServerUri);
                Workspace workspace = workspaceInfo.GetWorkspace(server);
                res = workspace.Undo(path, RecursionType.Full);

            }
            catch (Exception ex)
            {
                UIHelper.Instance.RunOnUiThread(() => MessageBox.Show(ex.Message));
            }

            return res == 1;//Rückgängig machen erfolgreich durchgeführt
        }
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X