public virtual void TestParse_PublicParseMethod() { ObjectInserter.Formatter fmt = new ObjectInserter.Formatter(); NGit.CommitBuilder src = new NGit.CommitBuilder(); src.TreeId = fmt.IdFor(Constants.OBJ_TREE, new byte[] { }); src.Author = author; src.Committer = committer; src.Message = "Test commit\n\nThis is a test.\n"; RevCommit p = RevCommit.Parse(src.Build()); NUnit.Framework.Assert.AreEqual(src.TreeId, p.Tree); NUnit.Framework.Assert.AreEqual(0, p.ParentCount); NUnit.Framework.Assert.AreEqual(author, p.GetAuthorIdent()); NUnit.Framework.Assert.AreEqual(committer, p.GetCommitterIdent()); NUnit.Framework.Assert.AreEqual("Test commit", p.GetShortMessage()); NUnit.Framework.Assert.AreEqual(src.Message, p.GetFullMessage()); }
public virtual void TestParse_incompleteAuthorAndCommitter() { StringBuilder b = new StringBuilder(); b.Append("tree 9788669ad918b6fcce64af8882fc9a81cb6aba67\n"); b.Append("author <*****@*****.**> 1218123387 +0700\n"); b.Append("committer <> 1218123390 -0500\n"); RevCommit c; c = new RevCommit(Id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); c.ParseCanonical(new RevWalk(db), Sharpen.Runtime.GetBytesForString(b.ToString(), "UTF-8")); NUnit.Framework.Assert.AreEqual(new PersonIdent(string.Empty, "*****@*****.**" , 1218123387000l, 7), c.GetAuthorIdent()); NUnit.Framework.Assert.AreEqual(new PersonIdent(string.Empty, string.Empty, 1218123390000l , -5), c.GetCommitterIdent()); }
// http://stackoverflow.com/questions/3407575/retrieving-oldest-commit-with-jgit public virtual void GetOldestCommit(string path) { NGit.Revwalk.RevCommit c = null; NGit.Api.Git repository = NGit.Api.Git.Open(path); try { NGit.Revwalk.RevWalk rw = new NGit.Revwalk.RevWalk(repository.GetRepository()); NGit.AnyObjectId headid = repository.GetRepository().Resolve(NGit.Constants.HEAD); NGit.Revwalk.RevCommit root = rw.ParseCommit(headid); string msg1 = root.GetFullMessage(); rw.Sort(NGit.Revwalk.RevSort.REVERSE); rw.MarkStart(root); c = rw.Next(); // repository.GetRepository(). } catch (System.Exception ex) { System.Console.WriteLine(ex.Message); } string msg2 = c.GetFullMessage(); // Get author NGit.PersonIdent authorIdent = c.GetAuthorIdent(); System.DateTime authorDate = authorIdent.GetWhen(); System.TimeZoneInfo authorTimeZone = authorIdent.GetTimeZone(); NGit.PersonIdent committerIdent = c.GetCommitterIdent(); // http://stackoverflow.com/questions/12608610/how-do-you-get-the-author-date-and-commit-date-from-a-jgit-revcommit System.Console.WriteLine(authorIdent); System.Console.WriteLine(authorDate); System.Console.WriteLine(authorTimeZone); System.Console.WriteLine(committerIdent); CloseRepository(repository); }
private static Commit ToCommit(RevCommit commit, Repository repository) { return new Commit ( repository, commit.Name, commit.GetShortMessage(), ToPerson(commit.GetAuthorIdent()), ToPerson(commit.GetCommitterIdent()), commit.GetCommitterIdent().GetWhen(), commit.Parents.Select(p => p.Name) ); }
public virtual void TestParse_NoParents() { ObjectId treeId = Id("9788669ad918b6fcce64af8882fc9a81cb6aba67"); string authorName = "A U. Thor"; string authorEmail = "*****@*****.**"; int authorTime = 1218123387; string authorTimeZone = "+0700"; string committerName = "C O. Miter"; string committerEmail = "*****@*****.**"; int committerTime = 1218123390; string committerTimeZone = "-0500"; StringBuilder body = new StringBuilder(); body.Append("tree "); body.Append(treeId.Name); body.Append("\n"); body.Append("author "); body.Append(authorName); body.Append(" <"); body.Append(authorEmail); body.Append("> "); body.Append(authorTime); body.Append(" "); body.Append(authorTimeZone); body.Append(" \n"); body.Append("committer "); body.Append(committerName); body.Append(" <"); body.Append(committerEmail); body.Append("> "); body.Append(committerTime); body.Append(" "); body.Append(committerTimeZone); body.Append("\n"); body.Append("\n"); RevWalk rw = new RevWalk(db); RevCommit c; c = new RevCommit(Id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); NUnit.Framework.Assert.IsNull(c.Tree); NUnit.Framework.Assert.IsNull(c.parents); c.ParseCanonical(rw, Sharpen.Runtime.GetBytesForString(body.ToString(), "UTF-8")); NUnit.Framework.Assert.IsNotNull(c.Tree); NUnit.Framework.Assert.AreEqual(treeId, c.Tree.Id); NUnit.Framework.Assert.AreSame(rw.LookupTree(treeId), c.Tree); NUnit.Framework.Assert.IsNotNull(c.parents); NUnit.Framework.Assert.AreEqual(0, c.parents.Length); NUnit.Framework.Assert.AreEqual(string.Empty, c.GetFullMessage()); PersonIdent cAuthor = c.GetAuthorIdent(); NUnit.Framework.Assert.IsNotNull(cAuthor); NUnit.Framework.Assert.AreEqual(authorName, cAuthor.GetName()); NUnit.Framework.Assert.AreEqual(authorEmail, cAuthor.GetEmailAddress()); NUnit.Framework.Assert.AreEqual((long)authorTime * 1000, cAuthor.GetWhen().GetTime ()); NUnit.Framework.Assert.AreEqual(Sharpen.Extensions.GetTimeZone("GMT" + authorTimeZone ), cAuthor.GetTimeZone()); PersonIdent cCommitter = c.GetCommitterIdent(); NUnit.Framework.Assert.IsNotNull(cCommitter); NUnit.Framework.Assert.AreEqual(committerName, cCommitter.GetName()); NUnit.Framework.Assert.AreEqual(committerEmail, cCommitter.GetEmailAddress()); NUnit.Framework.Assert.AreEqual((long)committerTime * 1000, cCommitter.GetWhen(). GetTime()); NUnit.Framework.Assert.AreEqual(Sharpen.Extensions.GetTimeZone("GMT" + committerTimeZone ), cCommitter.GetTimeZone()); }
public virtual void TestParse_NoParents() { ObjectId treeId = Id("9788669ad918b6fcce64af8882fc9a81cb6aba67"); string authorName = "A U. Thor"; string authorEmail = "*****@*****.**"; int authorTime = 1218123387; string authorTimeZone = "+0700"; string committerName = "C O. Miter"; string committerEmail = "*****@*****.**"; int committerTime = 1218123390; string committerTimeZone = "-0500"; StringBuilder body = new StringBuilder(); body.Append("tree "); body.Append(treeId.Name); body.Append("\n"); body.Append("author "); body.Append(authorName); body.Append(" <"); body.Append(authorEmail); body.Append("> "); body.Append(authorTime); body.Append(" "); body.Append(authorTimeZone); body.Append(" \n"); body.Append("committer "); body.Append(committerName); body.Append(" <"); body.Append(committerEmail); body.Append("> "); body.Append(committerTime); body.Append(" "); body.Append(committerTimeZone); body.Append("\n"); body.Append("\n"); RevWalk rw = new RevWalk(db); RevCommit c; c = new RevCommit(Id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); NUnit.Framework.Assert.IsNull(c.Tree); NUnit.Framework.Assert.IsNull(c.parents); c.ParseCanonical(rw, Sharpen.Runtime.GetBytesForString(body.ToString(), "UTF-8")); NUnit.Framework.Assert.IsNotNull(c.Tree); NUnit.Framework.Assert.AreEqual(treeId, c.Tree.Id); NUnit.Framework.Assert.AreSame(rw.LookupTree(treeId), c.Tree); NUnit.Framework.Assert.IsNotNull(c.parents); NUnit.Framework.Assert.AreEqual(0, c.parents.Length); NUnit.Framework.Assert.AreEqual(string.Empty, c.GetFullMessage()); PersonIdent cAuthor = c.GetAuthorIdent(); NUnit.Framework.Assert.IsNotNull(cAuthor); NUnit.Framework.Assert.AreEqual(authorName, cAuthor.GetName()); NUnit.Framework.Assert.AreEqual(authorEmail, cAuthor.GetEmailAddress()); NUnit.Framework.Assert.AreEqual((long)authorTime * 1000, cAuthor.GetWhen().GetTime ()); NUnit.Framework.Assert.AreEqual(Sharpen.Extensions.GetTimeZone("GMT" + authorTimeZone ).BaseUtcOffset, cAuthor.GetTimeZone().BaseUtcOffset); PersonIdent cCommitter = c.GetCommitterIdent(); NUnit.Framework.Assert.IsNotNull(cCommitter); NUnit.Framework.Assert.AreEqual(committerName, cCommitter.GetName()); NUnit.Framework.Assert.AreEqual(committerEmail, cCommitter.GetEmailAddress()); NUnit.Framework.Assert.AreEqual((long)committerTime * 1000, cCommitter.GetWhen(). GetTime()); NUnit.Framework.Assert.AreEqual(Sharpen.Extensions.GetTimeZone("GMT" + committerTimeZone ).BaseUtcOffset, cCommitter.GetTimeZone().BaseUtcOffset); }
/// <summary>Core validation to be performed on all stashed commits</summary> /// <param name="commit"></param> /// <exception cref="System.IO.IOException">System.IO.IOException</exception> private void ValidateStashedCommit(RevCommit commit) { NUnit.Framework.Assert.IsNotNull(commit); Ref stashRef = db.GetRef(Constants.R_STASH); NUnit.Framework.Assert.IsNotNull(stashRef); NUnit.Framework.Assert.AreEqual(commit, stashRef.GetObjectId()); NUnit.Framework.Assert.IsNotNull(commit.GetAuthorIdent()); NUnit.Framework.Assert.AreEqual(commit.GetAuthorIdent(), commit.GetCommitterIdent ()); NUnit.Framework.Assert.AreEqual(2, commit.ParentCount); // Load parents RevWalk walk = new RevWalk(db); try { foreach (RevCommit parent in commit.Parents) { walk.ParseBody(parent); } } finally { walk.Release(); } NUnit.Framework.Assert.AreEqual(1, commit.GetParent(1).ParentCount); NUnit.Framework.Assert.AreEqual(head, commit.GetParent(1).GetParent(0)); NUnit.Framework.Assert.IsFalse(commit.Tree.Equals(head.Tree), "Head tree matches stashed commit tree" ); NUnit.Framework.Assert.AreEqual(head, commit.GetParent(0)); NUnit.Framework.Assert.IsFalse(commit.GetFullMessage().Equals(commit.GetParent(1) .GetFullMessage())); }