Skip to content

Commit 91a28d0

Browse files
committed
Update libgit2 to cb58fb2
libgit2/libgit2@a56db99...cb58fb2
1 parent 2244f29 commit 91a28d0

File tree

9 files changed

+50
-24
lines changed

9 files changed

+50
-24
lines changed

LibGit2Sharp.Tests/StashFixture.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ public void CanStashAndApplyWithOptions()
219219
repo.Stashes.Add(stasher, "This stash with default options");
220220
Assert.Equal(StashApplyStatus.Applied, repo.Stashes.Apply(0));
221221

222-
Assert.Equal(FileStatus.NewInWorkdir, repo.RetrieveStatus(filename));
222+
Assert.Equal(FileStatus.NewInIndex, repo.RetrieveStatus(filename));
223223
Assert.Equal(1, repo.Stashes.Count());
224224

225225
repo.Stage(filename);
@@ -258,13 +258,13 @@ public void CanStashAndPop()
258258
Assert.Equal(StashApplyStatus.Applied, repo.Stashes.Pop(0));
259259
Assert.Equal(0, repo.Stashes.Count());
260260

261-
Assert.Equal(FileStatus.NewInWorkdir, repo.RetrieveStatus(filename));
261+
Assert.Equal(FileStatus.NewInIndex, repo.RetrieveStatus(filename));
262262
Assert.Equal(contents, File.ReadAllText(Path.Combine(repo.Info.WorkingDirectory, filename)));
263263
}
264264
}
265265

266266
[Fact]
267-
public void StashReportsConflictsWhenReinstated()
267+
public void StashFailsWithUncommittedChangesIntheIndex()
268268
{
269269
string path = SandboxStandardTestRepo();
270270
using (var repo = new Repository(path))
@@ -286,7 +286,7 @@ public void StashReportsConflictsWhenReinstated()
286286
repo.Stage(filename);
287287
Touch(repo.Info.WorkingDirectory, filename2, newContents);
288288

289-
Assert.Equal(StashApplyStatus.Conflicts, repo.Stashes.Pop(0, new StashApplyOptions
289+
Assert.Equal(StashApplyStatus.UncommittedChanges, repo.Stashes.Pop(0, new StashApplyOptions
290290
{
291291
ApplyModifiers = StashApplyModifiers.ReinstateIndex,
292292
}));

LibGit2Sharp/Core/GitErrorCode.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,21 @@ internal enum GitErrorCode
9191
/// </summary>
9292
Peel = -19,
9393

94+
/// <summary>
95+
/// Unexpected EOF.
96+
/// </summary>
97+
EndOfFile = -20,
98+
99+
/// <summary>
100+
/// Invalid operation or input.
101+
/// </summary>
102+
Invalid = -21,
103+
104+
/// <summary>
105+
/// Uncommitted changes in index prevented operation.
106+
/// </summary>
107+
Uncommitted = -22,
108+
94109
/// <summary>
95110
/// Skip and passthrough the given ODB backend.
96111
/// </summary>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace LibGit2Sharp.Core
2+
{
3+
internal enum GitSubmoduleIgnore
4+
{
5+
Unspecified = -1,
6+
None = 1,
7+
Untracked = 2,
8+
Dirty = 3,
9+
All = 4,
10+
}
11+
}

LibGit2Sharp/Core/NativeMethods.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1526,10 +1526,6 @@ internal static extern int git_submodule_add_to_index(
15261526
SubmoduleSafeHandle submodule,
15271527
[MarshalAs(UnmanagedType.Bool)] bool write_index);
15281528

1529-
[DllImport(libgit2)]
1530-
internal static extern int git_submodule_save(
1531-
SubmoduleSafeHandle submodule);
1532-
15331529
[DllImport(libgit2)]
15341530
internal static extern void git_submodule_free(
15351531
IntPtr submodule);
@@ -1576,7 +1572,9 @@ internal static extern int git_submodule_reload(
15761572
[DllImport(libgit2)]
15771573
internal static extern int git_submodule_status(
15781574
out SubmoduleStatus status,
1579-
SubmoduleSafeHandle submodule);
1575+
RepositorySafeHandle repo,
1576+
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(StrictFilePathMarshaler))] FilePath name,
1577+
GitSubmoduleIgnore ignore);
15801578

15811579
[DllImport(libgit2)]
15821580
internal static extern int git_submodule_init(

LibGit2Sharp/Core/Proxy.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2679,6 +2679,11 @@ private static StashApplyStatus get_stash_status(int res)
26792679
return StashApplyStatus.Conflicts;
26802680
}
26812681

2682+
if (res == (int)GitErrorCode.Uncommitted)
2683+
{
2684+
return StashApplyStatus.UncommittedChanges;
2685+
}
2686+
26822687
if (res == (int)GitErrorCode.NotFound)
26832688
{
26842689
return StashApplyStatus.NotFound;
@@ -2805,12 +2810,6 @@ public static void git_submodule_add_to_index(SubmoduleSafeHandle submodule, boo
28052810
Ensure.ZeroResult(res);
28062811
}
28072812

2808-
public static void git_submodule_save(SubmoduleSafeHandle submodule)
2809-
{
2810-
var res = NativeMethods.git_submodule_save(submodule);
2811-
Ensure.ZeroResult(res);
2812-
}
2813-
28142813
public static void git_submodule_update(SubmoduleSafeHandle submodule, bool init, ref GitSubmoduleOptions options)
28152814
{
28162815
var res = NativeMethods.git_submodule_update(submodule, init, ref options);
@@ -2868,10 +2867,10 @@ public static void git_submodule_reload(SubmoduleSafeHandle submodule)
28682867
Ensure.ZeroResult(res);
28692868
}
28702869

2871-
public static SubmoduleStatus git_submodule_status(SubmoduleSafeHandle submodule)
2870+
public static SubmoduleStatus git_submodule_status(RepositorySafeHandle repo, string name)
28722871
{
28732872
SubmoduleStatus status;
2874-
var res = NativeMethods.git_submodule_status(out status, submodule);
2873+
var res = NativeMethods.git_submodule_status(out status, repo, name, GitSubmoduleIgnore.Unspecified);
28752874
Ensure.ZeroResult(res);
28762875
return status;
28772876
}

LibGit2Sharp/LibGit2Sharp.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3-
<Import Project="..\packages\LibGit2Sharp.NativeBinaries.1.0.55\build\LibGit2Sharp.NativeBinaries.props" Condition="Exists('..\packages\LibGit2Sharp.NativeBinaries.1.0.55\build\LibGit2Sharp.NativeBinaries.props')" />
3+
<Import Project="..\packages\LibGit2Sharp.NativeBinaries.1.0.70\build\LibGit2Sharp.NativeBinaries.props" Condition="Exists('..\packages\LibGit2Sharp.NativeBinaries.1.0.70\build\LibGit2Sharp.NativeBinaries.props')" />
44
<PropertyGroup>
55
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
66
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -72,6 +72,7 @@
7272
<Compile Include="Core\FileHistory.cs" />
7373
<Compile Include="Core\GitFetchOptions.cs" />
7474
<Compile Include="Core\GitPushUpdate.cs" />
75+
<Compile Include="Core\GitSubmoduleIgnore.cs" />
7576
<Compile Include="Core\Platform.cs" />
7677
<Compile Include="Core\Handles\ConflictIteratorSafeHandle.cs" />
7778
<Compile Include="Core\GitWriteStream.cs" />
@@ -393,7 +394,7 @@
393394
<PropertyGroup>
394395
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
395396
</PropertyGroup>
396-
<Error Condition="!Exists('..\packages\LibGit2Sharp.NativeBinaries.1.0.55\build\LibGit2Sharp.NativeBinaries.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\LibGit2Sharp.NativeBinaries.1.0.55\build\LibGit2Sharp.NativeBinaries.props'))" />
397+
<Error Condition="!Exists('..\packages\LibGit2Sharp.NativeBinaries.1.0.70\build\LibGit2Sharp.NativeBinaries.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\LibGit2Sharp.NativeBinaries.1.0.70\build\LibGit2Sharp.NativeBinaries.props'))" />
397398
</Target>
398399
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
399400
Other similar extension points exist, see Microsoft.Common.targets.

LibGit2Sharp/StashApplyStatus.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,10 @@ public enum StashApplyStatus
1919
/// The stash index given was not found.
2020
/// </summary>
2121
NotFound,
22+
23+
/// <summary>
24+
/// The stash application was aborted due to uncommitted changes in the index.
25+
/// </summary>
26+
UncommittedChanges,
2227
}
2328
}

LibGit2Sharp/Submodule.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,7 @@ internal Submodule(Repository repo, string name, string path, string url)
103103
/// <returns>The <see cref="SubmoduleStatus"/> of this submodule.</returns>
104104
public virtual SubmoduleStatus RetrieveStatus()
105105
{
106-
using (var handle = Proxy.git_submodule_lookup(repo.Handle, Name))
107-
{
108-
return Proxy.git_submodule_status(handle);
109-
}
106+
return Proxy.git_submodule_status(repo.Handle, Name);
110107
}
111108

112109
/// <summary>

LibGit2Sharp/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="LibGit2Sharp.NativeBinaries" version="1.0.55" targetFramework="net40" allowedVersions="[1.0.55]" />
3+
<package id="LibGit2Sharp.NativeBinaries" version="1.0.70" targetFramework="net40" allowedVersions="[1.0.70]" />
44
</packages>

0 commit comments

Comments
 (0)