public SvnRevision (Repository repo, int rev, DateTime time, string author, string message, RevisionPath[] changedFiles) : base (repo, time, author, message) { this.ChangedFiles = changedFiles; Rev = rev; Kind = 1; }
public GitRevision( Repository repository, string revision, DateTime time, string author, string message, RevisionPath[] changedFiles) : base(repository, time, author, message, changedFiles) { _commitId = revision; }
public GitRevision (Repository repo, string rev, DateTime time, string author, string message, RevisionPath[] changedFiles) : base (repo, time, author, message, changedFiles) { this.rev = rev; }
internal GitRevision GetPreviousRevisionFor (GitRevision revision) { StringReader sr = RunCommand ("log -1 --name-status --date=iso " + revision + "^", true); string rev = ReadWithPrefix (sr, "commit "); string author = ReadWithPrefix (sr, "Author: "); string dateStr = ReadWithPrefix (sr, "Date: "); DateTime date; DateTime.TryParse (dateStr, out date); List<RevisionPath> paths = new List<RevisionPath> (); bool readingComment = true; StringBuilder message = new StringBuilder (); StringBuilder interline = new StringBuilder (); string line; while ((line = sr.ReadLine ()) != null) { if (line.Length > 2 && ("ADM".IndexOf (line[0]) != -1) && line [1] == '\t') { readingComment = false; string file = line.Substring (2); RevisionAction ra; switch (line[0]) { case 'A': ra = RevisionAction.Add; break; case 'D': ra = RevisionAction.Delete; break; default: ra = RevisionAction.Modify; break; } RevisionPath p = new RevisionPath (path.Combine (file), ra, null); paths.Add (p); } else if (readingComment) { if (IsEmptyLine (line)) interline.AppendLine (line); else { message.Append (interline); message.AppendLine (line); interline = new StringBuilder (); } } else break; } return new GitRevision (this, rev, date, author, message.ToString ().Trim ('\n','\r'), paths.ToArray ()); }
protected override RevisionPath[] OnGetRevisionChanges (Revision revision) { GitRevision rev = (GitRevision) revision; if (rev.Commit == null) return new RevisionPath [0]; List<RevisionPath> paths = new List<RevisionPath> (); foreach (Change change in GitUtil.GetCommitChanges (repo, rev.Commit)) { FilePath cpath = FromGitPath (change.Path); if (!rev.FileForChanges.IsNull && cpath != rev.FileForChanges && !cpath.IsChildPathOf (rev.FileForChanges)) continue; RevisionAction ra; switch (change.ChangeType) { case ChangeType.Added: ra = RevisionAction.Add; break; case ChangeType.Deleted: ra = RevisionAction.Delete; break; default: ra = RevisionAction.Modify; break; } RevisionPath p = new RevisionPath (cpath, ra, null); paths.Add (p); } return paths.ToArray (); }
public override Revision[] GetHistory (FilePath localFile, Revision since) { List<Revision> revs = new List<Revision> (); RevWalk walk = new RevWalk (repo); var hc = GetHeadCommit (); if (hc == null) return new GitRevision [0]; walk.MarkStart (hc); foreach (RevCommit commit in walk) { List<RevisionPath> paths = new List<RevisionPath> (); foreach (Change change in GitUtil.GetCommitChanges (repo, commit)) { FilePath cpath = FromGitPath (change.Path); if (cpath != localFile && !cpath.IsChildPathOf (localFile)) continue; RevisionAction ra; switch (change.ChangeType) { case ChangeType.Added: ra = RevisionAction.Add; break; case ChangeType.Deleted: ra = RevisionAction.Delete; break; default: ra = RevisionAction.Modify; break; } RevisionPath p = new RevisionPath (cpath, ra, null); paths.Add (p); } if (paths.Count > 0) { PersonIdent author = commit.GetAuthorIdent (); GitRevision rev = new GitRevision (this, commit.Id.Name, author.GetWhen().ToLocalTime (), author.GetName (), commit.GetFullMessage (), paths.ToArray ()); rev.Email = author.GetEmailAddress (); rev.ShortMessage = commit.GetShortMessage (); revs.Add (rev); } } return revs.ToArray (); }
public BazaarRevision(Repository repo, string rev, DateTime time, string author, string message, RevisionPath[] changedFiles) : base(repo, time, author, message) { Rev = rev; }