Skip to content

Commit

Permalink
Upgrade libgit2 binaries to 1d94a7d
Browse files Browse the repository at this point in the history
  • Loading branch information
nulltoken committed Jun 20, 2012
1 parent b62438b commit c0bc893
Show file tree
Hide file tree
Showing 11 changed files with 47 additions and 6 deletions.
Binary file modified Lib/NativeBinaries/amd64/git2.dll
Binary file not shown.
Binary file modified Lib/NativeBinaries/amd64/git2.pdb
Binary file not shown.
Binary file modified Lib/NativeBinaries/x86/git2.dll
Binary file not shown.
Binary file modified Lib/NativeBinaries/x86/git2.pdb
Binary file not shown.
14 changes: 13 additions & 1 deletion LibGit2Sharp/BranchCollection.cs
Expand Up @@ -49,7 +49,13 @@ internal BranchCollection(Repository repo)
return branch;
}

return BuildFromReferenceName(ShortToRemoteName(name));
branch = BuildFromReferenceName(ShortToRemoteName(name));
if (branch != null)
{
return branch;
}

return BuildFromReferenceName(ShortToRefName(name));
}
}

Expand All @@ -63,6 +69,11 @@ private static string ShortToRemoteName(string name)
return string.Format(CultureInfo.InvariantCulture, "{0}{1}", "refs/remotes/", name);
}

private static string ShortToRefName(string name)
{
return string.Format(CultureInfo.InvariantCulture, "{0}{1}", "refs/", name);
}

private Branch BuildFromReferenceName(string canonicalName)
{
var reference = repo.Refs.Resolve<Reference>(canonicalName);
Expand All @@ -80,6 +91,7 @@ public virtual IEnumerator<Branch> GetEnumerator()
return Libgit2UnsafeHelper
.ListAllBranchNames(repo.Handle, GitBranchType.GIT_BRANCH_LOCAL | GitBranchType.GIT_BRANCH_REMOTE)
.Select(n => this[n])
.OrderBy(b => b.CanonicalName, StringComparer.Ordinal)
.GetEnumerator();
}

Expand Down
2 changes: 1 addition & 1 deletion LibGit2Sharp/Core/GitDiff.cs
Expand Up @@ -106,9 +106,9 @@ internal class GitDiffFile
{
public GitOid Oid;
public IntPtr Path;
public ushort Mode;
public long Size;
public GitDiffFileFlags Flags;
public ushort Mode;
}

[StructLayout(LayoutKind.Sequential)]
Expand Down
7 changes: 7 additions & 0 deletions LibGit2Sharp/Core/NativeMethods.cs
Expand Up @@ -348,6 +348,13 @@ public static bool RepositoryStateChecker(RepositorySafeHandle repositoryPtr, Fu
GitObjectSafeHandle one,
GitObjectSafeHandle two);

[DllImport(libgit2)]
public static extern int git_message_prettify(
byte[] message_out, // NB: This is more properly a StringBuilder, but it's UTF8
int buffer_size,
string message,
bool strip_comments);

[DllImport(libgit2)]
public static extern int git_note_create(
out GitOid noteOid,
Expand Down
13 changes: 12 additions & 1 deletion LibGit2Sharp/ObjectDatabase.cs
Expand Up @@ -79,6 +79,15 @@ public virtual Tree CreateTree(TreeDefinition treeDefinition)
return treeDefinition.Build(repo);
}

internal static string PrettifyMessage(string message)
{
var buffer = new byte[NativeMethods.GIT_PATH_MAX];
int res = NativeMethods.git_message_prettify(buffer, buffer.Length, message, false);
Ensure.Success(res);

return Utf8Marshaler.Utf8FromBuffer(buffer) ?? string.Empty;
}

/// <summary>
/// Inserts a <see cref = "Commit"/> into the object database, referencing an existing <see cref = "Tree"/>.
/// </summary>
Expand All @@ -101,6 +110,8 @@ internal Commit CreateCommit(string message, Signature author, Signature committ
Ensure.ArgumentNotNull(tree, "tree");
Ensure.ArgumentNotNull(parents, "parents");

string prettifiedMessage = PrettifyMessage(message);

IEnumerable<ObjectId> parentIds = parents.Select(p => p.Id);

GitOid commitOid;
Expand All @@ -113,7 +124,7 @@ internal Commit CreateCommit(string message, Signature author, Signature committ

IntPtr[] parentsPtrs = parentObjectPtrs.Select(o => o.ObjectPtr.DangerousGetHandle()).ToArray();
int res = NativeMethods.git_commit_create(out commitOid, repo.Handle, referenceName, authorHandle,
committerHandle, encoding, message, treePtr.ObjectPtr, parentObjectPtrs.Count(), parentsPtrs);
committerHandle, encoding, prettifiedMessage, treePtr.ObjectPtr, parentObjectPtrs.Count(), parentsPtrs);
Ensure.Success(res);
}

Expand Down
13 changes: 12 additions & 1 deletion LibGit2Sharp/TagCollection.cs
Expand Up @@ -87,19 +87,30 @@ public virtual Tag Add(string name, string target, Signature tagger, string mess

GitObject objectToTag = repo.Lookup(target, GitObjectType.Any, LookUpOptions.ThrowWhenNoGitObjectHasBeenFound);

string prettifiedMessage = ObjectDatabase.PrettifyMessage(message);

int res;
using (var objectPtr = new ObjectSafeWrapper(objectToTag.Id, repo))
using (SignatureSafeHandle taggerHandle = tagger.BuildHandle())
{
GitOid oid;
res = NativeMethods.git_tag_create(out oid, repo.Handle, name, objectPtr.ObjectPtr, taggerHandle, message, allowOverwrite);
res = NativeMethods.git_tag_create(out oid, repo.Handle, name, objectPtr.ObjectPtr, taggerHandle, prettifiedMessage, allowOverwrite);
}

Ensure.Success(res);

return this[name];
}

internal static string PrettifyMessage(string message)
{
var buffer = new byte[NativeMethods.GIT_PATH_MAX];
int res = NativeMethods.git_message_prettify(buffer, buffer.Length, message, false);
Ensure.Success(res);

return Utf8Marshaler.Utf8FromBuffer(buffer) ?? string.Empty;
}

/// <summary>
/// Creates an annotated tag with the specified name.
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion LibGit2Sharp/libgit2_hash.txt
@@ -1 +1 @@
4c977a61e598f2230e9902aa80cfea8e89d94f88
1d94a7d0f6c8cb0d1fcf288a1734a7a5abd1b094
2 changes: 1 addition & 1 deletion libgit2
Submodule libgit2 updated 143 files

0 comments on commit c0bc893

Please sign in to comment.