Beispiel #1
0
 public TfsChangeset(ITfsHelper tfs, IChangeset changeset, AuthorsFile authors)
 {
     _tfs = tfs;
     _changeset = changeset;
     _authors = authors;
     BaseChangesetId = _changeset.Changes.Max(c => c.Item.ChangesetId) - 1;
 }
Beispiel #2
0
 public TfsChangeset(ITfsHelper tfs, IChangeset changeset, TextWriter stdout, AuthorsFile authors)
 {
     _tfs = tfs;
     _changeset = changeset;
     _stdout = stdout;
     _authors = authors;
 }
Beispiel #3
0
        public ChangeSieve(IChangeset changeset, PathResolver resolver)
        {
            _resolver = resolver;

            _namedChanges = changeset.Changes.Select(c => new NamedChange
            {
                    Info = _resolver.GetGitObject(c.Item.ServerItem),
                    Change = c,
            });
        }
Beispiel #4
0
        /// <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;
        }
Beispiel #5
0
 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));
         }
     }
 }
Beispiel #6
0
 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));
 }
Beispiel #7
0
 public TfsChangeset(ITfsHelper tfs, IChangeset changeset)
 {
     this.tfs = tfs;
     this.changeset = changeset;
 }
Beispiel #8
0
 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)));
 }
Beispiel #9
0
        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
                       };
        }
Beispiel #10
0
 public TfsChangeset(ITfsHelper tfs, IChangeset changeset, TextWriter stdout)
 {
     _tfs = tfs;
     _changeset = changeset;
     _stdout = stdout;
 }
Beispiel #11
0
        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
            });
        }
Beispiel #12
0
 public void GetSpecificVersion(IChangeset changeset)
 {
     GetSpecificVersion(changeset.ChangesetId, changeset.Changes);
 }
Beispiel #13
0
 public void Get(IChangeset changeset)
 {
     _workspace.GetSpecificVersion(changeset);
 }
Beispiel #14
0
 public void GetSpecificVersion(IChangeset changeset, bool noParallel)
 {
     GetSpecificVersion(changeset.ChangesetId, changeset.Changes, noParallel);
 }
Beispiel #15
0
 public void Get(IChangeset changeset)
 {
     changeset.Get(_workspace);
 }
        public ChangeExplorerWindow(IChangeset changeset)
        {
            InitializeComponent();

            ViewModel.Init(changeset);
        }
Beispiel #17
0
        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
                       };
        }
Beispiel #18
0
 public TfsChangeset(ITfsHelper tfs, IChangeset changeset, TextWriter stdout)
 {
     _tfs       = tfs;
     _changeset = changeset;
     _stdout    = stdout;
 }
Beispiel #19
0
 public ChangeSieve(IChangeset changeset, PathResolver resolver)
 {
     _changeset = changeset;
     _resolver = resolver;
 }
Beispiel #20
0
 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;
 }
Beispiel #21
0
 public void GetSpecificVersion(IChangeset changeset)
 {
     GetSpecificVersion(changeset.ChangesetId, changeset.Changes);
 }
 public void Get(IChangeset changeset)
 {
     _workspace.GetSpecificVersion(changeset, Remote.RemoteInfo.NoParallel);
 }