From 22fc8f91c005107b5062dfdab648bb8d7425310c Mon Sep 17 00:00:00 2001 From: Philippe Miossec Date: Mon, 16 Nov 2015 01:08:30 +0100 Subject: [PATCH] refacto: use 'int' to handle changeset Ids instead of 'long' to match what is done in the tfs api --- GitTfs.VsCommon/TfsHelper.Common.cs | 20 ++++++------ GitTfs.VsFake/TfsHelper.VsFake.cs | 8 ++--- GitTfs/Commands/Branch.cs | 2 +- GitTfs/Commands/Checkin.cs | 2 +- GitTfs/Commands/CheckinBase.cs | 2 +- GitTfs/Commands/CheckinTool.cs | 2 +- GitTfs/Commands/Checkout.cs | 4 +-- GitTfs/Commands/InitBranch.cs | 4 +-- GitTfs/Commands/Rcheckin.cs | 2 +- GitTfs/Commands/Subtree.cs | 2 +- GitTfs/ConfigProperties.cs | 4 +-- GitTfs/Core/Bootstrapper.cs | 2 +- GitTfs/Core/DerivedGitTfsRemote.cs | 16 +++++----- GitTfs/Core/GitRepository.cs | 16 +++++----- GitTfs/Core/GitTfsRemote.cs | 46 +++++++++++++-------------- GitTfs/Core/IGitRepository.cs | 4 +-- GitTfs/Core/IGitTfsRemote.cs | 20 ++++++------ GitTfs/Core/ITfsWorkspace.cs | 4 +-- GitTfs/Core/LogEntry.cs | 2 +- GitTfs/Core/TfsChangesetInfo.cs | 2 +- GitTfs/Core/TfsInterop/ITfsHelper.cs | 8 ++--- GitTfs/Core/TfsWorkspace.cs | 8 ++--- GitTfsTest/Commands/InitBranchTest.cs | 6 ++-- GitTfsTest/Core/CommitParserTests.cs | 6 ++-- 24 files changed, 96 insertions(+), 96 deletions(-) diff --git a/GitTfs.VsCommon/TfsHelper.Common.cs b/GitTfs.VsCommon/TfsHelper.Common.cs index bfcc7ec5..7f6e4662 100644 --- a/GitTfs.VsCommon/TfsHelper.Common.cs +++ b/GitTfs.VsCommon/TfsHelper.Common.cs @@ -168,7 +168,7 @@ namespace Sep.Git.Tfs.VsCommon } } - public IEnumerable GetChangesets(string path, long startVersion, IGitTfsRemote remote, long lastVersion = -1, bool byLots = false) + public IEnumerable GetChangesets(string path, int startVersion, IGitTfsRemote remote, int lastVersion = -1, bool byLots = false) { if (Is2008OrOlder) { @@ -177,9 +177,9 @@ namespace Sep.Git.Tfs.VsCommon yield break; } - var start = (int)startVersion; + var start = startVersion; Changeset[] changesets; - var lastChangeset = lastVersion == -1 ? VersionSpec.Latest : new ChangesetVersionSpec((int)lastVersion); + var lastChangeset = lastVersion == -1 ? VersionSpec.Latest : new ChangesetVersionSpec(lastVersion); do { var startChangeset = new ChangesetVersionSpec(start); @@ -199,10 +199,10 @@ namespace Sep.Git.Tfs.VsCommon } while (!byLots && changesets.Length == BatchCount); } - public IEnumerable GetChangesetsForTfs2008(string path, long startVersion, IGitTfsRemote remote) + public IEnumerable GetChangesetsForTfs2008(string path, int startVersion, IGitTfsRemote remote) { var changesets = VersionControl.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full, - null, new ChangesetVersionSpec((int) startVersion), VersionSpec.Latest, int.MaxValue, + null, new ChangesetVersionSpec(startVersion), VersionSpec.Latest, int.MaxValue, true, true, true) .Cast().OrderBy(changeset => changeset.ChangesetId).ToArray(); // don't take the enumerator produced by a foreach statement or a yield statement, as there are references @@ -214,9 +214,9 @@ namespace Sep.Git.Tfs.VsCommon } } - public virtual int FindMergeChangesetParent(string path, long targetChangeset, GitTfsRemote remote) + public virtual int FindMergeChangesetParent(string path, int targetChangeset, GitTfsRemote remote) { - var targetVersion = new ChangesetVersionSpec((int)targetChangeset); + var targetVersion = new ChangesetVersionSpec(targetChangeset); var searchTo = targetVersion; var mergeInfo = VersionControl.QueryMerges(null, null, path, targetVersion, null, searchTo, RecursionType.Full); if (mergeInfo.Length == 0) return -1; @@ -693,7 +693,7 @@ namespace Sep.Git.Tfs.VsCommon return "git-tfs-" + Guid.NewGuid(); } - public long ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable checkedInfos, string checkinComment) + public int ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable checkedInfos, string checkinComment) { return ShowCheckinDialog(_bridge.Unwrap(workspace), pendingChanges.Select(p => _bridge.Unwrap(p)).ToArray(), @@ -701,7 +701,7 @@ namespace Sep.Git.Tfs.VsCommon checkinComment); } - private long ShowCheckinDialog(Workspace workspace, PendingChange[] pendingChanges, + private int ShowCheckinDialog(Workspace workspace, PendingChange[] pendingChanges, WorkItemCheckedInfo[] checkedInfos, string checkinComment) { using (var parentForm = new ParentForm()) @@ -1311,7 +1311,7 @@ namespace Sep.Git.Tfs.VsCommon return null; } - public long QueueGatedCheckinBuild(Uri buildDefinitionUri, string buildDefinitionName, string shelvesetName, string checkInTicket) + public int QueueGatedCheckinBuild(Uri buildDefinitionUri, string buildDefinitionName, string shelvesetName, string checkInTicket) { var buildServer = (IBuildServer)_server.GetService(typeof(IBuildServer)); diff --git a/GitTfs.VsFake/TfsHelper.VsFake.cs b/GitTfs.VsFake/TfsHelper.VsFake.cs index 6115a741..9ab6b726 100644 --- a/GitTfs.VsFake/TfsHelper.VsFake.cs +++ b/GitTfs.VsFake/TfsHelper.VsFake.cs @@ -49,7 +49,7 @@ namespace Sep.Git.Tfs.VsFake public bool CanShowCheckinDialog { get { return false; } } - public long ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable checkedInfos, string checkinComment) + public int ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable checkedInfos, string checkinComment) { throw new NotImplementedException(); } @@ -75,7 +75,7 @@ namespace Sep.Git.Tfs.VsFake return _script.Changesets.LastOrDefault().Id; } - public IEnumerable GetChangesets(string path, long startVersion, IGitTfsRemote remote, long lastVersion = -1, bool byLots = false) + public IEnumerable GetChangesets(string path, int startVersion, IGitTfsRemote remote, int lastVersion = -1, bool byLots = false) { if (!_script.Changesets.Any(c => c.IsBranchChangeset) && _script.Changesets.Any(c => c.IsMergeChangeset)) return _script.Changesets.Where(x => x.Id >= startVersion).Select(x => BuildTfsChangeset(x, remote)); @@ -85,7 +85,7 @@ namespace Sep.Git.Tfs.VsFake .Select(x => BuildTfsChangeset(x, remote)); } - public int FindMergeChangesetParent(string path, long firstChangeset, GitTfsRemote remote) + public int FindMergeChangesetParent(string path, int firstChangeset, GitTfsRemote remote) { var firstChangesetOfBranch = _script.Changesets.FirstOrDefault(c => c.IsMergeChangeset && c.MergeChangesetDatas.MergeIntoBranch == path && c.MergeChangesetDatas.BeforeMergeChangesetId < firstChangeset); if (firstChangesetOfBranch != null) @@ -518,7 +518,7 @@ namespace Sep.Git.Tfs.VsFake throw new NotImplementedException(); } - public long QueueGatedCheckinBuild(Uri value, string buildDefinitionName, string shelvesetName, string checkInTicket) + public int QueueGatedCheckinBuild(Uri value, string buildDefinitionName, string shelvesetName, string checkInTicket) { throw new NotImplementedException(); } diff --git a/GitTfs/Commands/Branch.cs b/GitTfs/Commands/Branch.cs index b2ea668a..929d88c5 100644 --- a/GitTfs/Commands/Branch.cs +++ b/GitTfs/Commands/Branch.cs @@ -206,7 +206,7 @@ namespace Sep.Git.Tfs.Commands } var remote = commit.Remote; Trace.WriteLine("Creating branch in TFS..."); - remote.Tfs.CreateBranch(remote.TfsRepositoryPath, tfsPath, (int)commit.ChangesetId, Comment ?? "Creation branch " + tfsPath); + remote.Tfs.CreateBranch(remote.TfsRepositoryPath, tfsPath, commit.ChangesetId, Comment ?? "Creation branch " + tfsPath); Trace.WriteLine("Init branch in local repository..."); initBranch.DontCreateGitBranch = true; var returnCode = initBranch.Run(tfsPath, gitBranchNameExpected); diff --git a/GitTfs/Commands/Checkin.cs b/GitTfs/Commands/Checkin.cs index 207003a2..384a87ac 100644 --- a/GitTfs/Commands/Checkin.cs +++ b/GitTfs/Commands/Checkin.cs @@ -15,7 +15,7 @@ namespace Sep.Git.Tfs.Commands { } - protected override long DoCheckin(TfsChangesetInfo changeset, string refToCheckin) + protected override int DoCheckin(TfsChangesetInfo changeset, string refToCheckin) { return changeset.Remote.Checkin(refToCheckin, changeset, _checkinOptions); } diff --git a/GitTfs/Commands/CheckinBase.cs b/GitTfs/Commands/CheckinBase.cs index a11dd8f9..8a4c8cd4 100644 --- a/GitTfs/Commands/CheckinBase.cs +++ b/GitTfs/Commands/CheckinBase.cs @@ -59,6 +59,6 @@ namespace Sep.Git.Tfs.Commands return GitTfsExitCodes.OK; } - protected abstract long DoCheckin(TfsChangesetInfo changeset, string refToCheckin); + protected abstract int DoCheckin(TfsChangesetInfo changeset, string refToCheckin); } } diff --git a/GitTfs/Commands/CheckinTool.cs b/GitTfs/Commands/CheckinTool.cs index 357e2349..2c375212 100644 --- a/GitTfs/Commands/CheckinTool.cs +++ b/GitTfs/Commands/CheckinTool.cs @@ -14,7 +14,7 @@ namespace Sep.Git.Tfs.Commands { } - protected override long DoCheckin(TfsChangesetInfo changeset, string refToCheckin) + protected override int DoCheckin(TfsChangesetInfo changeset, string refToCheckin) { if (!changeset.Remote.Tfs.CanShowCheckinDialog) throw new GitTfsException( diff --git a/GitTfs/Commands/Checkout.cs b/GitTfs/Commands/Checkout.cs index ae9471a0..ac05851a 100644 --- a/GitTfs/Commands/Checkout.cs +++ b/GitTfs/Commands/Checkout.cs @@ -40,8 +40,8 @@ namespace Sep.Git.Tfs.Commands public int Run(string id) { - long changesetId; - if(!long.TryParse(id, out changesetId)) + int changesetId; + if(!int.TryParse(id, out changesetId)) throw new GitTfsException("error: wrong format for changeset id..."); var sha = _globals.Repository.FindCommitHashByChangesetId(changesetId); if (string.IsNullOrEmpty(sha)) diff --git a/GitTfs/Commands/InitBranch.cs b/GitTfs/Commands/InitBranch.cs index 8e66ca71..65410870 100644 --- a/GitTfs/Commands/InitBranch.cs +++ b/GitTfs/Commands/InitBranch.cs @@ -188,7 +188,7 @@ namespace Sep.Git.Tfs.Commands { public string TfsRepositoryPath { get; set; } public string GitBranchNameExpected { get; set; } - public long RootChangesetId { get; set; } + public int RootChangesetId { get; set; } } [DebuggerDisplay("{TfsRepositoryPath} C{RootChangesetId}")] @@ -197,7 +197,7 @@ namespace Sep.Git.Tfs.Commands public string TfsRepositoryPath { get; set; } public IGitTfsRemote TfsRemote { get; set; } public bool IsEntirelyFetched { get; set; } - public long RootChangesetId { get; set; } + public int RootChangesetId { get; set; } public IList CreationBranchData { get; set; } public Exception Error { get; set; } } diff --git a/GitTfs/Commands/Rcheckin.cs b/GitTfs/Commands/Rcheckin.cs index 1d6cb5ef..a9f46d1f 100644 --- a/GitTfs/Commands/Rcheckin.cs +++ b/GitTfs/Commands/Rcheckin.cs @@ -122,7 +122,7 @@ namespace Sep.Git.Tfs.Commands { var tfsRemote = parentChangeset.Remote; string currentParent = parentChangeset.Remote.MaxCommitHash; - long newChangesetId = 0; + int newChangesetId = 0; foreach (var commit in commitsToCheckin) { diff --git a/GitTfs/Commands/Subtree.cs b/GitTfs/Commands/Subtree.cs index e076b38e..2591c03f 100644 --- a/GitTfs/Commands/Subtree.cs +++ b/GitTfs/Commands/Subtree.cs @@ -149,7 +149,7 @@ namespace Sep.Git.Tfs.Commands { var p = Prefix.Replace(" ", "\\ "); - long latest = Math.Max(owner.MaxChangesetId, remote.MaxChangesetId); + int latest = Math.Max(owner.MaxChangesetId, remote.MaxChangesetId); string msg = string.Format(GitTfsConstants.TfsCommitInfoFormat, owner.TfsUrl, owner.TfsRepositoryPath, latest); msg = string.Format(@"Add '{0}/' from commit '{1}' diff --git a/GitTfs/ConfigProperties.cs b/GitTfs/ConfigProperties.cs index 6e9a1bdb..a132a14a 100644 --- a/GitTfs/ConfigProperties.cs +++ b/GitTfs/ConfigProperties.cs @@ -25,7 +25,7 @@ namespace Sep.Git.Tfs get { return _loader.Get(GitTfsConstants.BatchSize, 100); } } - public long? InitialChangeset + public int? InitialChangeset { set { @@ -33,7 +33,7 @@ namespace Sep.Git.Tfs } get { - long? initialChangeset = _loader.Get(GitTfsConstants.InitialChangeset, -1); + int? initialChangeset = _loader.Get(GitTfsConstants.InitialChangeset, -1); return initialChangeset == -1 ? null : initialChangeset; } } diff --git a/GitTfs/Core/Bootstrapper.cs b/GitTfs/Core/Bootstrapper.cs index a6700f39..13d37ca1 100644 --- a/GitTfs/Core/Bootstrapper.cs +++ b/GitTfs/Core/Bootstrapper.cs @@ -37,7 +37,7 @@ namespace Sep.Git.Tfs.Core remote = changeset.Remote; if (changeset.Remote.MaxChangesetId < changeset.ChangesetId) { - long oldChangeset = changeset.Remote.MaxChangesetId; + int oldChangeset = changeset.Remote.MaxChangesetId; _globals.Repository.MoveTfsRefForwardIfNeeded(changeset.Remote); _stdout.WriteLine("-> existing remote {0} (updated from changeset {1})", changeset.Remote.Id, oldChangeset); } diff --git a/GitTfs/Core/DerivedGitTfsRemote.cs b/GitTfs/Core/DerivedGitTfsRemote.cs index 4ba2d9b3..7f6b9cfd 100644 --- a/GitTfs/Core/DerivedGitTfsRemote.cs +++ b/GitTfs/Core/DerivedGitTfsRemote.cs @@ -150,7 +150,7 @@ namespace Sep.Git.Tfs.Core set { throw DerivedRemoteException; } } - public long MaxChangesetId + public int MaxChangesetId { get { throw DerivedRemoteException; } set { throw DerivedRemoteException; } @@ -195,7 +195,7 @@ namespace Sep.Git.Tfs.Core throw DerivedRemoteException; } - public IGitTfsRemote InitBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, long shaRootChangesetId, bool fetchParentBranch, string gitBranchNameExpected = null, IRenameResult renameResult = null) + public IGitTfsRemote InitBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, int shaRootChangesetId, bool fetchParentBranch, string gitBranchNameExpected = null, IRenameResult renameResult = null) { throw new NotImplementedException(); } @@ -210,7 +210,7 @@ namespace Sep.Git.Tfs.Core throw DerivedRemoteException; } - public IFetchResult FetchWithMerge(long mergeChangesetId, bool stopOnFailMergeCommit = false, IRenameResult renameResult = null, params string[] parentCommitsHashes) + public IFetchResult FetchWithMerge(int mergeChangesetId, bool stopOnFailMergeCommit = false, IRenameResult renameResult = null, params string[] parentCommitsHashes) { throw DerivedRemoteException; } @@ -240,17 +240,17 @@ namespace Sep.Git.Tfs.Core throw DerivedRemoteException; } - public long CheckinTool(string head, TfsChangesetInfo parentChangeset) + public int CheckinTool(string head, TfsChangesetInfo parentChangeset) { throw DerivedRemoteException; } - public long Checkin(string treeish, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) + public int Checkin(string treeish, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) { throw DerivedRemoteException; } - public long Checkin(string head, string parent, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) + public int Checkin(string head, string parent, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) { throw DerivedRemoteException; } @@ -265,12 +265,12 @@ namespace Sep.Git.Tfs.Core throw DerivedRemoteException; } - public ITfsChangeset GetChangeset(long changesetId) + public ITfsChangeset GetChangeset(int changesetId) { throw DerivedRemoteException; } - public void UpdateTfsHead(string commitHash, long changesetId) + public void UpdateTfsHead(string commitHash, int changesetId) { throw DerivedRemoteException; } diff --git a/GitTfs/Core/GitRepository.cs b/GitTfs/Core/GitRepository.cs index 8add3848..2316bf0c 100644 --- a/GitTfs/Core/GitRepository.cs +++ b/GitTfs/Core/GitRepository.cs @@ -282,7 +282,7 @@ namespace Sep.Git.Tfs.Core public void MoveTfsRefForwardIfNeeded(IGitTfsRemote remote, string @ref) { - long currentMaxChangesetId = remote.MaxChangesetId; + int currentMaxChangesetId = remote.MaxChangesetId; var untrackedTfsChangesets = from cs in GetLastParentTfsCommits(@ref) where cs.Remote.Id == remote.Id && cs.ChangesetId > currentMaxChangesetId orderby cs.ChangesetId @@ -349,7 +349,7 @@ namespace Sep.Git.Tfs.Core Trace.WriteLine("Commits visited count:" + alreadyVisitedCommits.Count); } - public TfsChangesetInfo GetTfsChangesetById(string remoteRef, long changesetId) + public TfsChangesetInfo GetTfsChangesetById(string remoteRef, int changesetId) { var commit = FindCommitByChangesetId(changesetId, remoteRef); if (commit == null) @@ -549,10 +549,10 @@ namespace Sep.Git.Tfs.Core return reference != null; } - private readonly Dictionary changesetsCache = new Dictionary(); + private readonly Dictionary changesetsCache = new Dictionary(); private bool cacheIsFull = false; - public string FindCommitHashByChangesetId(long changesetId) + public string FindCommitHashByChangesetId(int changesetId) { var commit = FindCommitByChangesetId(changesetId); if (commit == null) @@ -563,12 +563,12 @@ namespace Sep.Git.Tfs.Core private static readonly Regex tfsIdRegex = new Regex("^git-tfs-id: .*;C([0-9]+)\r?$", RegexOptions.Multiline | RegexOptions.Compiled | RegexOptions.RightToLeft); - public static bool TryParseChangesetId(string commitMessage, out long changesetId) + public static bool TryParseChangesetId(string commitMessage, out int changesetId) { var match = tfsIdRegex.Match(commitMessage); if (match.Success) { - changesetId = long.Parse(match.Groups[1].Value); + changesetId = int.Parse(match.Groups[1].Value); return true; } @@ -576,7 +576,7 @@ namespace Sep.Git.Tfs.Core return false; } - private Commit FindCommitByChangesetId(long changesetId, string remoteRef = null) + private Commit FindCommitByChangesetId(int changesetId, string remoteRef = null) { Trace.WriteLine("Looking for changeset " + changesetId + " in git repository..."); @@ -602,7 +602,7 @@ namespace Sep.Git.Tfs.Core Commit commit = null; foreach (var c in commitsFromRemoteBranches) { - long id; + int id; if (TryParseChangesetId(c.Message, out id)) { changesetsCache[id] = c.Sha; diff --git a/GitTfs/Core/GitTfsRemote.cs b/GitTfs/Core/GitTfsRemote.cs index dd9932ce..bb76d014 100644 --- a/GitTfs/Core/GitTfsRemote.cs +++ b/GitTfs/Core/GitTfsRemote.cs @@ -19,7 +19,7 @@ namespace Sep.Git.Tfs.Core private readonly TextWriter stdout; private readonly RemoteOptions remoteOptions; private readonly ConfigProperties properties; - private long? maxChangesetId; + private int? maxChangesetId; private string maxCommitHash; private bool isTfsAuthenticated; public RemoteInfo RemoteInfo { get; private set; } @@ -138,7 +138,7 @@ namespace Sep.Git.Tfs.Core public bool ExportMetadatas { get; set; } public Dictionary ExportWorkitemsMapping { get; set; } - public long MaxChangesetId + public int MaxChangesetId { get { InitHistory(); return maxChangesetId.Value; } set { maxChangesetId = value; } @@ -150,7 +150,7 @@ namespace Sep.Git.Tfs.Core set { maxCommitHash = value; } } - private TfsChangesetInfo GetTfsChangesetById(long id) + private TfsChangesetInfo GetTfsChangesetById(int id) { return Repository.GetTfsChangesetById(RemoteRef, id); } @@ -302,7 +302,7 @@ namespace Sep.Git.Tfs.Core public class FetchResult : IFetchResult { public bool IsSuccess { get; set; } - public long LastFetchedChangesetId { get; set; } + public int LastFetchedChangesetId { get; set; } public int NewChangesetCount { get; set; } public string ParentBranchTfsPath { get; set; } public bool IsProcessingRenameChangeset { get; set; } @@ -314,12 +314,12 @@ namespace Sep.Git.Tfs.Core return FetchWithMerge(-1, stopOnFailMergeCommit,lastChangesetIdToFetch, renameResult); } - public IFetchResult FetchWithMerge(long mergeChangesetId, bool stopOnFailMergeCommit = false, IRenameResult renameResult = null, params string[] parentCommitsHashes) + public IFetchResult FetchWithMerge(int mergeChangesetId, bool stopOnFailMergeCommit = false, IRenameResult renameResult = null, params string[] parentCommitsHashes) { return FetchWithMerge(mergeChangesetId, stopOnFailMergeCommit, -1, renameResult, parentCommitsHashes); } - public IFetchResult FetchWithMerge(long mergeChangesetId, bool stopOnFailMergeCommit = false, int lastChangesetIdToFetch = -1, IRenameResult renameResult = null, params string[] parentCommitsHashes) + public IFetchResult FetchWithMerge(int mergeChangesetId, bool stopOnFailMergeCommit = false, int lastChangesetIdToFetch = -1, IRenameResult renameResult = null, params string[] parentCommitsHashes) { var fetchResult = new FetchResult { IsSuccess = true, NewChangesetCount = 0 }; var latestChangesetId = GetLatestChangesetId(); @@ -690,9 +690,9 @@ namespace Sep.Git.Tfs.Core DoGcIfNeeded(); } - private IEnumerable FetchChangesets(bool byLots, long lastVersion = -1) + private IEnumerable FetchChangesets(bool byLots, int lastVersion = -1) { - long lowerBoundChangesetId; + int lowerBoundChangesetId; if(properties.InitialChangeset.HasValue) lowerBoundChangesetId = Math.Max(MaxChangesetId + 1, properties.InitialChangeset.Value); else @@ -707,9 +707,9 @@ namespace Sep.Git.Tfs.Core .OrderBy(x => x.Summary.ChangesetId); } - public ITfsChangeset GetChangeset(long changesetId) + public ITfsChangeset GetChangeset(int changesetId) { - return Tfs.GetChangeset((int)changesetId, this); + return Tfs.GetChangeset(changesetId, this); } private ITfsChangeset GetLatestChangeset() @@ -727,7 +727,7 @@ namespace Sep.Git.Tfs.Core return globals.Repository.GetSubtrees(this).Select(x => Tfs.GetLatestChangesetId(x)).Max(); } - public void UpdateTfsHead(string commitHash, long changesetId) + public void UpdateTfsHead(string commitHash, int changesetId) { MaxCommitHash = commitHash; MaxChangesetId = changesetId; @@ -803,7 +803,7 @@ namespace Sep.Git.Tfs.Core return Repository.Commit(logEntry).Sha; } - private string BuildCommitMessage(string tfsCheckinComment, long changesetId) + private string BuildCommitMessage(string tfsCheckinComment, int changesetId) { var builder = new StringWriter(); builder.WriteLine(tfsCheckinComment); @@ -862,14 +862,14 @@ namespace Sep.Git.Tfs.Core workspace.Shelve(shelvesetName, evaluateCheckinPolicies, () => Repository.GetCommitMessage(head, parentChangeset.GitCommit)); } - public long CheckinTool(string head, TfsChangesetInfo parentChangeset) + public int CheckinTool(string head, TfsChangesetInfo parentChangeset) { - var changeset = 0L; + var changeset = 0; WithWorkspace(parentChangeset, workspace => changeset = CheckinTool(head, parentChangeset, workspace)); return changeset; } - private long CheckinTool(string head, TfsChangesetInfo parentChangeset, ITfsWorkspace workspace) + private int CheckinTool(string head, TfsChangesetInfo parentChangeset, ITfsWorkspace workspace) { PendChangesToWorkspace(head, parentChangeset.GitCommit, workspace); return workspace.CheckinTool(() => Repository.GetCommitMessage(head, parentChangeset.GitCommit)); @@ -886,16 +886,16 @@ namespace Sep.Git.Tfs.Core } } - public long Checkin(string head, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) + public int Checkin(string head, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) { - var changeset = 0L; + var changeset = 0; WithWorkspace(parentChangeset, workspace => changeset = Checkin(head, parentChangeset.GitCommit, workspace, options, sourceTfsPath)); return changeset; } - public long Checkin(string head, string parent, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) + public int Checkin(string head, string parent, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null) { - var changeset = 0L; + var changeset = 0; WithWorkspace(parentChangeset, workspace => changeset = Checkin(head, parent, workspace, options, sourceTfsPath)); return changeset; } @@ -914,7 +914,7 @@ namespace Sep.Git.Tfs.Core } } - private long Checkin(string head, string parent, ITfsWorkspace workspace, CheckinOptions options, string sourceTfsPath) + private int Checkin(string head, string parent, ITfsWorkspace workspace, CheckinOptions options, string sourceTfsPath) { PendChangesToWorkspace(head, parent, workspace); if (!string.IsNullOrWhiteSpace(sourceTfsPath)) @@ -945,12 +945,12 @@ namespace Sep.Git.Tfs.Core return gitBranchName; } - public IGitTfsRemote InitBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, long rootChangesetId, bool fetchParentBranch, string gitBranchNameExpected = null, IRenameResult renameResult = null) + public IGitTfsRemote InitBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, int rootChangesetId, bool fetchParentBranch, string gitBranchNameExpected = null, IRenameResult renameResult = null) { return InitTfsBranch(remoteOptions, tfsRepositoryPath, rootChangesetId, fetchParentBranch, gitBranchNameExpected, renameResult); } - private IGitTfsRemote InitTfsBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, long rootChangesetId = -1, bool fetchParentBranch = false, string gitBranchNameExpected = null, IRenameResult renameResult = null) + private IGitTfsRemote InitTfsBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, int rootChangesetId = -1, bool fetchParentBranch = false, string gitBranchNameExpected = null, IRenameResult renameResult = null) { Trace.WriteLine("Begin process of creating branch for remote :" + tfsRepositoryPath); // TFS string representations of repository paths do not end in trailing slashes @@ -967,7 +967,7 @@ namespace Sep.Git.Tfs.Core { sha1RootCommit = Repository.FindCommitHashByChangesetId(rootChangesetId); if (fetchParentBranch && string.IsNullOrWhiteSpace(sha1RootCommit)) - sha1RootCommit = FindRootRemoteAndFetch((int)rootChangesetId, renameResult); + sha1RootCommit = FindRootRemoteAndFetch(rootChangesetId, renameResult); if (string.IsNullOrWhiteSpace(sha1RootCommit)) return null; diff --git a/GitTfs/Core/IGitRepository.cs b/GitTfs/Core/IGitRepository.cs index 4eef1db3..f785ecf7 100644 --- a/GitTfs/Core/IGitRepository.cs +++ b/GitTfs/Core/IGitRepository.cs @@ -24,7 +24,7 @@ namespace Sep.Git.Tfs.Core void MoveTfsRefForwardIfNeeded(IGitTfsRemote remote); void MoveTfsRefForwardIfNeeded(IGitTfsRemote remote, string @ref); IEnumerable GetLastParentTfsCommits(string head); - TfsChangesetInfo GetTfsChangesetById(string remoteRef, long changesetId); + TfsChangesetInfo GetTfsChangesetById(string remoteRef, int changesetId); TfsChangesetInfo GetTfsCommit(GitCommit commit); TfsChangesetInfo GetTfsCommit(string sha); TfsChangesetInfo GetCurrentTfsCommit(); @@ -42,7 +42,7 @@ namespace Sep.Git.Tfs.Core string AssertValidBranchName(string gitBranchName); bool CreateBranch(string gitBranchName, string target); Branch RenameBranch(string oldName, string newName); - string FindCommitHashByChangesetId(long changesetId); + string FindCommitHashByChangesetId(int changesetId); void CreateTag(string name, string sha, string comment, string Owner, string emailOwner, System.DateTime creationDate); void CreateNote(string sha, string content, string owner, string emailOwner, DateTime creationDate); void MoveRemote(string oldRemoteName, string newRemoteName); diff --git a/GitTfs/Core/IGitTfsRemote.cs b/GitTfs/Core/IGitTfsRemote.cs index 1004ac6c..0e7310e6 100644 --- a/GitTfs/Core/IGitTfsRemote.cs +++ b/GitTfs/Core/IGitTfsRemote.cs @@ -9,7 +9,7 @@ namespace Sep.Git.Tfs.Core public interface IFetchResult : IRenameResult { bool IsSuccess { get; set; } - long LastFetchedChangesetId { get; set; } + int LastFetchedChangesetId { get; set; } int NewChangesetCount { get; set; } string ParentBranchTfsPath { get; set; } } @@ -39,7 +39,7 @@ namespace Sep.Git.Tfs.Core string TfsPassword { get; set; } IGitRepository Repository { get; set; } ITfsHelper Tfs { get; set; } - long MaxChangesetId { get; set; } + int MaxChangesetId { get; set; } string MaxCommitHash { get; set; } string RemoteRef { get; } bool IsSubtree { get; } @@ -49,33 +49,33 @@ namespace Sep.Git.Tfs.Core bool ExportMetadatas { get; set; } Dictionary ExportWorkitemsMapping { get; set; } bool ShouldSkip(string path); - IGitTfsRemote InitBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, long rootChangesetId = -1, bool fetchParentBranch = false, string gitBranchNameExpected = null, IRenameResult renameResult = null); + IGitTfsRemote InitBranch(RemoteOptions remoteOptions, string tfsRepositoryPath, int rootChangesetId = -1, bool fetchParentBranch = false, string gitBranchNameExpected = null, IRenameResult renameResult = null); string GetPathInGitRepo(string tfsPath); IFetchResult Fetch(bool stopOnFailMergeCommit = false, int lastChangesetIdToFetch = -1, IRenameResult renameResult = null); - IFetchResult FetchWithMerge(long mergeChangesetId, bool stopOnFailMergeCommit = false, IRenameResult renameResult = null, params string[] parentCommitsHashes); + IFetchResult FetchWithMerge(int mergeChangesetId, bool stopOnFailMergeCommit = false, IRenameResult renameResult = null, params string[] parentCommitsHashes); void QuickFetch(); void QuickFetch(int changesetId); void Unshelve(string shelvesetOwner, string shelvesetName, string destinationBranch, Action ignorableErrorHandler, bool force); 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, string sourceTfsPath = null); + int CheckinTool(string head, TfsChangesetInfo parentChangeset); + int Checkin(string treeish, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null); /// /// 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. /// - long Checkin(string head, string parent, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null); + int Checkin(string head, string parent, TfsChangesetInfo parentChangeset, CheckinOptions options, string sourceTfsPath = null); void CleanupWorkspace(); void CleanupWorkspaceDirectory(); - ITfsChangeset GetChangeset(long changesetId); - void UpdateTfsHead(string commitHash, long changesetId); + ITfsChangeset GetChangeset(int changesetId); + void UpdateTfsHead(string commitHash, int changesetId); void EnsureTfsAuthenticated(); bool MatchesUrlAndRepositoryPath(string tfsUrl, string tfsRepositoryPath); } public static class IGitTfsRemoteExt { - public static IFetchResult FetchWithMerge(this IGitTfsRemote remote, long mergeChangesetId, bool stopOnFailMergeCommit = false, params string[] parentCommitsHashes) + public static IFetchResult FetchWithMerge(this IGitTfsRemote remote, int mergeChangesetId, bool stopOnFailMergeCommit = false, params string[] parentCommitsHashes) { return remote.FetchWithMerge(mergeChangesetId, stopOnFailMergeCommit, null, parentCommitsHashes); } diff --git a/GitTfs/Core/ITfsWorkspace.cs b/GitTfs/Core/ITfsWorkspace.cs index abd333e6..92998f8f 100644 --- a/GitTfs/Core/ITfsWorkspace.cs +++ b/GitTfs/Core/ITfsWorkspace.cs @@ -29,7 +29,7 @@ namespace Sep.Git.Tfs.Core /// /// Evaluates check-in policies and checks in all pending changes. /// - long Checkin(CheckinOptions checkinOptions); + int Checkin(CheckinOptions checkinOptions); /// /// Populates the workspace with a snapshot, as of the given changeset. /// @@ -48,7 +48,7 @@ namespace Sep.Git.Tfs.Core /// string GetLocalItemForServerItem(string serverItem); - long CheckinTool(Func generateCheckinComment); + int CheckinTool(Func generateCheckinComment); void Merge(string sourceTfsPath, string tfsRepositoryPath); /// diff --git a/GitTfs/Core/LogEntry.cs b/GitTfs/Core/LogEntry.cs index b8abbc1e..fc8d98cd 100644 --- a/GitTfs/Core/LogEntry.cs +++ b/GitTfs/Core/LogEntry.cs @@ -22,7 +22,7 @@ namespace Sep.Git.Tfs.Core public Tree Tree { get; set; } public IList CommitParents { get; private set; } - public long ChangesetId { get; set; } + public int ChangesetId { get; set; } public IGitTfsRemote Remote { get; set; } } } diff --git a/GitTfs/Core/TfsChangesetInfo.cs b/GitTfs/Core/TfsChangesetInfo.cs index e9e5f988..44519a45 100644 --- a/GitTfs/Core/TfsChangesetInfo.cs +++ b/GitTfs/Core/TfsChangesetInfo.cs @@ -6,7 +6,7 @@ namespace Sep.Git.Tfs.Core public class TfsChangesetInfo { public IGitTfsRemote Remote { get; set; } - public long ChangesetId { get; set; } + public int ChangesetId { get; set; } public string GitCommit { get; set; } public IEnumerable Workitems { get; set; } diff --git a/GitTfs/Core/TfsInterop/ITfsHelper.cs b/GitTfs/Core/TfsInterop/ITfsHelper.cs index bfa9003e..873f58a4 100644 --- a/GitTfs/Core/TfsInterop/ITfsHelper.cs +++ b/GitTfs/Core/TfsInterop/ITfsHelper.cs @@ -10,7 +10,7 @@ namespace Sep.Git.Tfs.Core.TfsInterop string Url { get; set; } string Username { get; set; } string Password { get; set; } - IEnumerable GetChangesets(string path, long startVersion, IGitTfsRemote remote, long lastVersion = -1, bool byLots = false); + IEnumerable GetChangesets(string path, int startVersion, IGitTfsRemote remote, int lastVersion = -1, bool byLots = false); void WithWorkspace(string directory, IGitTfsRemote remote, TfsChangesetInfo versionToFetch, Action action); IShelveset CreateShelveset(IWorkspace workspace, string shelvesetName); IEnumerable GetWorkItemInfos(IEnumerable workItems, TfsWorkItemCheckinAction checkinAction); @@ -25,7 +25,7 @@ namespace Sep.Git.Tfs.Core.TfsInterop ITfsChangeset GetShelvesetData(IGitTfsRemote remote, string shelvesetOwner, string shelvesetName); int ListShelvesets(ShelveList shelveList, IGitTfsRemote remote); bool CanShowCheckinDialog { get; } - long ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable checkedInfos, string checkinComment); + int ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable checkedInfos, string checkinComment); void CleanupWorkspaces(string workingDirectory); IList GetRootChangesetForBranch(string tfsPathBranchToCreate, int lastChangesetIdToCheck = -1, string tfsPathParentBranch = null); IEnumerable GetLabels(string tfsPathBranch, string nameFilter = null); @@ -36,7 +36,7 @@ namespace Sep.Git.Tfs.Core.TfsInterop void CreateBranch(string sourcePath, string targetPath, int changesetId, string comment = null); void CreateTfsRootBranch(string projectName, string mainBranch, string gitRepositoryPath, bool createTeamProjectFolder); bool IsExistingInTfs(string path); - int FindMergeChangesetParent(string path, long firstChangeset, GitTfsRemote remote); + int FindMergeChangesetParent(string path, int firstChangeset, GitTfsRemote remote); /// /// Creates and maps a workspace for the given remote with the given local -> server directory mappings, at the given Tfs version, /// and then performs the action. @@ -47,6 +47,6 @@ namespace Sep.Git.Tfs.Core.TfsInterop /// The TFS version to fetch from the server /// The action to perform void WithWorkspace(string localDirectory, IGitTfsRemote remote, IEnumerable> mappings, TfsChangesetInfo versionToFetch, Action action); - long QueueGatedCheckinBuild(Uri value, string buildDefinitionName, string shelvesetName, string checkInTicket); + int QueueGatedCheckinBuild(Uri value, string buildDefinitionName, string shelvesetName, string checkInTicket); } } diff --git a/GitTfs/Core/TfsWorkspace.cs b/GitTfs/Core/TfsWorkspace.cs index e454e0f9..ac2b83dd 100644 --- a/GitTfs/Core/TfsWorkspace.cs +++ b/GitTfs/Core/TfsWorkspace.cs @@ -53,7 +53,7 @@ namespace Sep.Git.Tfs.Core _workspace.Shelve(shelveset, pendingChanges, _checkinOptions.Force ? TfsShelvingOptions.Replace : TfsShelvingOptions.None); } - public long CheckinTool(Func generateCheckinComment) + public int CheckinTool(Func generateCheckinComment) { var pendingChanges = _workspace.GetPendingChanges(); @@ -75,7 +75,7 @@ namespace Sep.Git.Tfs.Core _workspace.Merge(sourceTfsPath, tfsRepositoryPath); } - public long Checkin(CheckinOptions options) + public int Checkin(CheckinOptions options) { if (options == null) options = _checkinOptions; @@ -130,7 +130,7 @@ namespace Sep.Git.Tfs.Core } } - private long LaunchGatedCheckinBuild(ReadOnlyCollection> affectedBuildDefinitions, string shelvesetName, string checkInTicket) + private int LaunchGatedCheckinBuild(ReadOnlyCollection> affectedBuildDefinitions, string shelvesetName, string checkInTicket) { _stdout.WriteLine("Due to a gated check-in, a shelveset '" + shelvesetName + "' containing your changes has been created and need to be built before it can be committed."); KeyValuePair buildDefinition; @@ -217,7 +217,7 @@ namespace Sep.Git.Tfs.Core private void GetFromTfs(string path) { - _workspace.ForceGetFile(_workspace.GetServerItemForLocalItem(path), (int)_contextVersion.ChangesetId); + _workspace.ForceGetFile(_workspace.GetServerItemForLocalItem(path), _contextVersion.ChangesetId); } public void Get(int changesetId) diff --git a/GitTfsTest/Commands/InitBranchTest.cs b/GitTfsTest/Commands/InitBranchTest.cs index dbada8b1..4895c82f 100644 --- a/GitTfsTest/Commands/InitBranchTest.cs +++ b/GitTfsTest/Commands/InitBranchTest.cs @@ -66,7 +66,7 @@ namespace Sep.Git.Tfs.Test.Commands remote.Tfs.Stub(t => t.GetRootChangesetForBranch("$/MyProject/MyBranch")).Return(new List() { new RootBranch(2010, "$/MyProject/MyBranch") }); var mockRemote = MockRepository.GenerateStub(); mockRemote.Stub(r => r.Fetch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(new GitTfsRemote.FetchResult() { IsSuccess = true }); - remote.Stub(t => t.InitBranch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(mockRemote); + remote.Stub(t => t.InitBranch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(mockRemote); gitRepository.Expect(x => x.ReadTfsRemote("default")).Return(remote).Repeat.Once(); gitRepository.Expect(x => x.ReadAllTfsRemotes()).Return(new List { remote }).Repeat.Once(); @@ -92,7 +92,7 @@ namespace Sep.Git.Tfs.Test.Commands remote.Tfs = mocks.Get(); var mockRemote = MockRepository.GenerateStub(); mockRemote.Stub(r => r.Fetch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(new GitTfsRemote.FetchResult() { IsSuccess = true }); - remote.Stub(t => t.InitBranch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(mockRemote); + remote.Stub(t => t.InitBranch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(mockRemote); remote.Tfs.Stub(t => t.GetRootChangesetForBranch("$/MyProject/MyBranch")).Return(new List() { new RootBranch(2010, "$/MyProject/MyBranch") }); IGitTfsRemote existingBranchRemote = MockRepository.GenerateStub(); @@ -168,7 +168,7 @@ namespace Sep.Git.Tfs.Test.Commands remote.Tfs = mocks.Get(); var mockRemote = MockRepository.GenerateStub(); mockRemote.Stub(r => r.Fetch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(new GitTfsRemote.FetchResult() { IsSuccess = true }); - remote.Stub(t => t.InitBranch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(mockRemote); + remote.Stub(t => t.InitBranch(Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything, Arg.Is.Anything)).Return(mockRemote); remote.Tfs.Stub(t => t.GetRootChangesetForBranch("$/MyProject/MyBranch", -1, remote.TfsRepositoryPath)).Return(new List() { new RootBranch(2008, "$/MyProject/MyBranch") }); mocks.ClassUnderTest.ParentBranch = remote.TfsRepositoryPath; diff --git a/GitTfsTest/Core/CommitParserTests.cs b/GitTfsTest/Core/CommitParserTests.cs index e4a15c20..a6dd3bc6 100644 --- a/GitTfsTest/Core/CommitParserTests.cs +++ b/GitTfsTest/Core/CommitParserTests.cs @@ -16,7 +16,7 @@ namespace Sep.Git.Tfs.Test.Core { return new[] { new object[] { "git-tfs-id: foo;C123", true, 123 }, - new object[] { "git-tfs-id: handle more than Int32;C" + uint.MaxValue, true, uint.MaxValue }, + new object[] { "git-tfs-id: handle more than Int32;C" + int.MaxValue, true, int.MaxValue }, new object[] { "foo-tfs-id: bar;C123", false, 0 }, new object[] { "\ngit-tfs-id: foo;C234\n", true, 234 }, new object[] { "\r\ngit-tfs-id: foo;C345\r\n", true, 345 }, @@ -32,9 +32,9 @@ namespace Sep.Git.Tfs.Test.Core [Theory] [PropertyData("Cases")] - public void Run(string message, bool expectParsed, long expectId) + public void Run(string message, bool expectParsed, int expectId) { - long id; + int id; bool parsed = GitRepository.TryParseChangesetId(message, out id); Assert.Equal(expectParsed, parsed); if (parsed)