public TfsChangeset(ITfsHelper tfs, IChangeset changeset, AuthorsFile authors) { _tfs = tfs; _changeset = changeset; _authors = authors; BaseChangesetId = _changeset.Changes.Max(c => c.Item.ChangesetId) - 1; }
public TfsChangeset(ITfsHelper tfs, IChangeset changeset, TextWriter stdout, AuthorsFile authors) { _tfs = tfs; _changeset = changeset; _stdout = stdout; _authors = authors; }
public ChangeSieve(IChangeset changeset, PathResolver resolver) { _resolver = resolver; _namedChanges = changeset.Changes.Select(c => new NamedChange { Info = _resolver.GetGitObject(c.Item.ServerItem), Change = c, }); }
/// <summary> /// Initializes a new instance of the <see cref="Changeset"/> class. /// </summary> /// <param name="changeset">The changeset.</param> public Changeset(IChangeset changeset) { ID = changeset.ID; Comment = changeset.Comment; Changes = changeset.Changes; Committer = changeset.Committer; Workitems = changeset.Workitems; _IsSelected = false; _IsCompleted = false; _IsDeleted = false; }
public void GetSpecificVersion(IChangeset changeset) { var repositoryRoot = _repositoryRoot.ToLower(); if(!repositoryRoot.EndsWith("/")) repositoryRoot += "/"; foreach (var change in changeset.Changes) { if (change.Item.ItemType == TfsItemType.File) { var outPath = Path.Combine(_directory, change.Item.ServerItem.ToLower().Replace(repositoryRoot, "")); var outDir = Path.GetDirectoryName(outPath); if (!Directory.Exists(outDir)) Directory.CreateDirectory(outDir); using (var download = change.Item.DownloadFile()) File.WriteAllText(outPath, File.ReadAllText(download.Path)); } } }
private IEnumerable<IGitTfsRemote> FindTfsRemoteOfChangeset(IChangeset changeset) { //I think you want something that uses GetPathInGitRepo and ShouldSkip. See TfsChangeset.Apply. //Don't know if there is a way to extract remote tfs repository path from changeset datas! Should be better!!! return Repository.ReadAllTfsRemotes().Where(r => changeset.Changes.Any(c => r.GetPathInGitRepo(c.Item.ServerItem) != null)); }
public TfsChangeset(ITfsHelper tfs, IChangeset changeset) { this.tfs = tfs; this.changeset = changeset; }
private IEnumerable <IGitTfsRemote> FindTfsRemoteOfChangeset(IChangeset changeset) { //I think you want something that uses GetPathInGitRepo and ShouldSkip. See TfsChangeset.Apply. //Don't know if there is a way to extract remote tfs repository path from changeset datas! Should be better!!! return(Repository.ReadAllTfsRemotes().Where(r => changeset.Changes.Any(c => r.GetPathInGitRepo(c.Item.ServerItem) != null))); }
private LogEntry MakeNewLogEntry(IChangeset changesetToLog) { var identity = _tfs.GetIdentity(changesetToLog.Committer); var name = changesetToLog.Committer; var email = changesetToLog.Committer; if (_authors != null && _authors.Authors.ContainsKey(changesetToLog.Committer)) { name = _authors.Authors[changesetToLog.Committer].Name; email = _authors.Authors[changesetToLog.Committer].Email; } else if (identity != null) { //This can be null if the user was deleted from AD. //We want to keep their original history around with as little //hassle to the end user as possible if (!String.IsNullOrWhiteSpace(identity.DisplayName)) name = identity.DisplayName; if (!String.IsNullOrWhiteSpace(identity.MailAddress)) email = identity.MailAddress; } else if (!String.IsNullOrWhiteSpace(changesetToLog.Committer)) { string[] split = changesetToLog.Committer.Split('\\'); if (split.Length == 2) { name = split[1].ToLower(); email = string.Format("{0}@{1}.tfs.local", name, split[0].ToLower()); } } // committer's & author's name and email MUST NOT be empty as otherwise they would be picked // by git from user.name and user.email config settings which is bad thing because commit could // be different depending on whose machine it fetched if (String.IsNullOrWhiteSpace(name)) { name = "Unknown TFS user"; } if (String.IsNullOrWhiteSpace(email)) { email = "*****@*****.**"; } return new LogEntry { Date = changesetToLog.CreationDate, Log = changesetToLog.Comment + Environment.NewLine, ChangesetId = changesetToLog.ChangesetId, CommitterName = name, AuthorName = name, CommitterEmail = email, AuthorEmail = email }; }
public TfsChangeset(ITfsHelper tfs, IChangeset changeset, TextWriter stdout) { _tfs = tfs; _changeset = changeset; _stdout = stdout; }
private LogEntry MakeNewLogEntry(IChangeset changesetToLog, IGitTfsRemote remote = null) { IIdentity identity = null; try { identity = _tfs.GetIdentity(changesetToLog.Committer); } catch { } var name = changesetToLog.Committer; var email = changesetToLog.Committer; if (_authors != null && _authors.Authors.ContainsKey(changesetToLog.Committer)) { name = _authors.Authors[changesetToLog.Committer].Name; email = _authors.Authors[changesetToLog.Committer].Email; } else if (identity != null) { //This can be null if the user was deleted from AD. //We want to keep their original history around with as little //hassle to the end user as possible if (!string.IsNullOrWhiteSpace(identity.DisplayName)) { name = identity.DisplayName; } if (!string.IsNullOrWhiteSpace(identity.MailAddress)) { email = identity.MailAddress; } } else if (!string.IsNullOrWhiteSpace(changesetToLog.Committer)) { string[] split = changesetToLog.Committer.Split('\\'); if (split.Length == 2) { name = split[1].ToLower(); email = string.Format("{0}@{1}.tfs.local", name, split[0].ToLower()); } } // committer's & author's name and email MUST NOT be empty as otherwise they would be picked // by git from user.name and user.email config settings which is bad thing because commit could // be different depending on whose machine it fetched if (string.IsNullOrWhiteSpace(name)) { name = "Unknown TFS user"; } if (string.IsNullOrWhiteSpace(email)) { email = "*****@*****.**"; } if (remote == null) { remote = Summary.Remote; } return(new LogEntry { Date = changesetToLog.CreationDate, Log = changesetToLog.Comment + Environment.NewLine, ChangesetId = changesetToLog.ChangesetId, CommitterName = name, AuthorName = name, CommitterEmail = email, AuthorEmail = email, Remote = remote }); }
public void GetSpecificVersion(IChangeset changeset) { GetSpecificVersion(changeset.ChangesetId, changeset.Changes); }
public void Get(IChangeset changeset) { _workspace.GetSpecificVersion(changeset); }
public void GetSpecificVersion(IChangeset changeset, bool noParallel) { GetSpecificVersion(changeset.ChangesetId, changeset.Changes, noParallel); }
public void Get(IChangeset changeset) { changeset.Get(_workspace); }
public ChangeExplorerWindow(IChangeset changeset) { InitializeComponent(); ViewModel.Init(changeset); }
private LogEntry MakeNewLogEntry(IChangeset changesetToLog) { var identity = _tfs.GetIdentity(changesetToLog.Committer); // committer's & author's name and email MUST NOT be empty as otherwise they would be picked // by git from user.name and user.email config settings which is bad thing because commit could // be different depending on whose machine it fetched var name = "Unknown TFS user"; var email = "*****@*****.**"; if (identity != null) { if (!String.IsNullOrWhiteSpace(identity.DisplayName)) name = identity.DisplayName; if (!String.IsNullOrWhiteSpace(identity.MailAddress)) email = identity.MailAddress; else if (!String.IsNullOrWhiteSpace(changesetToLog.Committer)) email = changesetToLog.Committer; } return new LogEntry { Date = changesetToLog.CreationDate, Log = changesetToLog.Comment + Environment.NewLine, ChangesetId = changesetToLog.ChangesetId, CommitterName = name, AuthorName = name, CommitterEmail = email, AuthorEmail = email }; }
public ChangeSieve(IChangeset changeset, PathResolver resolver) { _changeset = changeset; _resolver = resolver; }
private LogEntry MakeNewLogEntry(IChangeset changesetToLog) { var log = new LogEntry(); var identity = tfs.GetIdentity(changesetToLog.Committer); log.CommitterName = log.AuthorName = null != identity ? identity.DisplayName ?? "Unknown TFS user" : changesetToLog.Committer ?? "Unknown TFS user"; log.CommitterEmail = log.AuthorEmail = null != identity ? identity.MailAddress ?? changesetToLog.Committer : changesetToLog.Committer; log.Date = changesetToLog.CreationDate; log.Log = changesetToLog.Comment + Environment.NewLine; log.ChangesetId = changesetToLog.ChangesetId; return log; }
public void Get(IChangeset changeset) { _workspace.GetSpecificVersion(changeset, Remote.RemoteInfo.NoParallel); }