Files
git-tfs/GitTfs/Core/IGitTfsRemote.cs
T
2013-05-29 16:33:13 -05:00

50 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using Sep.Git.Tfs.Core.TfsInterop;
using Sep.Git.Tfs.Commands;
namespace Sep.Git.Tfs.Core
{
public interface IGitTfsRemote
{
bool IsDerived { get; }
RemoteInfo RemoteInfo { get; }
string Id { get; set; }
string TfsUrl { get; set; }
string TfsRepositoryPath { get; set; }
string IgnoreRegexExpression { get; set; }
string IgnoreExceptRegexExpression { get; set; }
bool Autotag { get; set; }
string TfsUsername { get; set; }
string TfsPassword { get; set; }
IGitRepository Repository { get; set; }
[Obsolete("Make this go away")]
ITfsHelper Tfs { get; set; }
long MaxChangesetId { get; set; }
string MaxCommitHash { get; set; }
string RemoteRef { get; }
bool ShouldSkip(string path);
string GetPathInGitRepo(string tfsPath);
void Fetch();
void FetchWithMerge(long mergeChangesetId, params string[] parentCommitsHashes);
void QuickFetch();
void QuickFetch(int changesetId);
void Unshelve(string shelvesetOwner, string shelvesetName, string destinationBranch);
void Shelve(string shelvesetName, string treeish, TfsChangesetInfo parentChangeset, bool evaluateCheckinPolicies);
bool HasShelveset(string shelvesetName);
long CheckinTool(string head, TfsChangesetInfo parentChangeset);
long Checkin(string treeish, TfsChangesetInfo parentChangeset, CheckinOptions options);
/// <summary>
/// Checks in to TFS set of changes from git repository between given commits (parent..head) onto given TFS changeset. Returns ID of the new changeset.
/// </summary>
long Checkin(string head, string parent, TfsChangesetInfo parentChangeset, CheckinOptions options);
void CleanupWorkspace();
void CleanupWorkspaceDirectory();
ITfsChangeset GetChangeset(long changesetId);
void UpdateTfsHead(string commitHash, long changesetId);
void EnsureTfsAuthenticated();
bool MatchesUrlAndRepositoryPath(string tfsUrl, string tfsRepositoryPath);
}
}