using System.Collections.Generic; using System.IO; using Sep.Git.Tfs.Commands; namespace Sep.Git.Tfs.Core { public interface IGitRepository : IGitHelpers { string GitDir { get; set; } IEnumerable ReadAllTfsRemotes(); IGitTfsRemote ReadTfsRemote(string remoteId); void /*or IGitTfsRemote*/ CreateTfsRemote(string remoteId, string tfsUrl, string tfsRepositoryPath, RemoteOptions remoteOptions); void /*or IGitTfsRemote*/ CreateTfsRemote(string remoteId, TfsChangesetInfo tfsHead, RemoteOptions remoteOptions); bool HasRemote(string remoteId); void MoveTfsRefForwardIfNeeded(IGitTfsRemote remote); IEnumerable GetLastParentTfsCommits(string head); IEnumerable GetLastParentTfsCommits(string head, bool includeStubRemotes); IDictionary GetObjects(string commit); string HashAndInsertObject(string filename); IEnumerable GetChangedFiles(string from, string to); bool WorkingCopyHasUnstagedOrUncommitedChanges { get; } void CopyBlob(string sha, string outputFile); GitCommit GetCommit(string commitish); Dictionary GetObjects(); string GetCommitMessage(string head, string parentCommitish); } }