Skip to content

Commit c4c15a5

Browse files
committed
Issue-1471 Add worktree support, based on the current level of support in libgit2
1 parent 0a9c84d commit c4c15a5

File tree

132 files changed

+689
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+689
-3
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,5 @@ _ReSharper*/
3838
*.DotSettings
3939

4040
_NCrunch_LibGit2Sharp/
41+
packages/
42+
worktree.playlist
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
one
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hey there
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add "1.txt" file beside "1" folder
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ref: refs/heads/master
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[core]
2+
repositoryformatversion = 0
3+
filemode = false
4+
bare = false
5+
logallrefupdates = true
6+
symlinks = false
7+
ignorecase = true
8+
hideDotFiles = dotGitOnly
9+
[remote "origin"]
10+
fetch = +refs/heads/*:refs/remotes/origin/*
11+
url = c:/GitHub/libgit2sharp/Resources/testrepo.git
12+
[remote "no_url"]
13+
url =
14+
fetch = +refs/heads/*:refs/remotes/no_url/*
15+
[branch "master"]
16+
remote = origin
17+
merge = refs/heads/master
18+
[branch "track-local"]
19+
remote = .
20+
merge = refs/heads/master
21+
[unittests]
22+
longsetting = 15234
23+
intsetting = 2
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# git ls-files --others --exclude-from=.git/info/exclude
2+
# Lines that start with '#' are comments.
3+
# For a project mostly in C, the following would be a good set of
4+
# exclude patterns (uncomment them if you want to use them):
5+
# *.[oa]
6+
# *~
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
0000000000000000000000000000000000000000 4c062a6361ae6959e06292c1fa5e2822d9c96345 Tim Clem <[email protected]> 1303768198 -0700 clone: from c:/GitHub/libgit2sharp/Resources/testrepo.git
2+
4c062a6361ae6959e06292c1fa5e2822d9c96345 592d3c869dbc4127fc57c189cb94f2794fa84e7e Tim Clem <[email protected]> 1303835722 -0700 commit: add more test files
3+
592d3c869dbc4127fc57c189cb94f2794fa84e7e 32eab9cb1f450b5fe7ab663462b77d7f4b703344 nulltoken <[email protected]> 1320047537 +0100 commit: Add "1.txt" file beside "1" folder
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
0000000000000000000000000000000000000000 4c062a6361ae6959e06292c1fa5e2822d9c96345 nulltoken <[email protected]> 1359021419 +0100 branch: Created from 4c062a6361ae6959e06292c1fa5e2822d9c96345
2+
4c062a6361ae6959e06292c1fa5e2822d9c96345 a447ba2ca8fffd46dece72f7db6faf324afb8fcd nulltoken <[email protected]> 1359021433 +0100 commit: Add logo
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
0000000000000000000000000000000000000000 4c062a6361ae6959e06292c1fa5e2822d9c96345 Tim Clem <[email protected]> 1303768198 -0700 clone: from c:/GitHub/libgit2sharp/Resources/testrepo.git
2+
4c062a6361ae6959e06292c1fa5e2822d9c96345 592d3c869dbc4127fc57c189cb94f2794fa84e7e Tim Clem <[email protected]> 1303835722 -0700 commit: add more test files
3+
592d3c869dbc4127fc57c189cb94f2794fa84e7e 32eab9cb1f450b5fe7ab663462b77d7f4b703344 nulltoken <[email protected]> 1320047537 +0100 commit: Add "1.txt" file beside "1" folder

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/16/bdf1dece5c56c92a9187550fafe0270a03a93a

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x̱
2+
1EQ����jm\�,��Dl,'�Ä���:"���큛�3���^4�7�u�و� �\0yVg��(W����ϝ�XmL?�2��ʍj�K=yPK™��I� �#Y

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/32/eab9cb1f450b5fe7ab663462b77d7f4b703344

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
x��]j!���)�} �?�!d��m�+�qq]���3䥠>����Z�������&�0�M1h�}�V��v�Y+��.a�9�z�4�O� *�LGxx��d�V�ðc^����Zg�����(�e-<n-��Qo߀kBg��O�R�E������5%��6��r� ��%�b���x�7G�P
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��Q
2+
�0D��)��6�ͦ "xO���-�Fb��Eo��0 �Ǥ�,ske�[�Pn8R,EpD?�g�}�^3� ��<��G�hYK���8ЖDA��)���;g�ݧ���j�p�4����-������r���;�s�GA4ۺ=���(�in7�I�K�FE

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/4b/e51d6fc0943aa42b635c762145ca209cf39771

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��K
2+
1D]�� C�����tg&`&������Q��VkQ�Fg��au����xved��0Sr.�y�J��!'C^!� @�`2�,�@ ����(�{��O�i��_�eO������\�V�Ra����g�)�:��w>R-�&�B�Ey
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��Aj1 E��)t�{d[6��Ev���G� �ep�}B{��><x�_zk� �0vU@������X��T"��B�dS%
2+
�8�û�����"z4pq1&�Y�% %��~���p�u,p�e�'��߽}~7^����:��gB8�`�y��á�q͗�>�����B0��I�
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��� 1E�Ni@��k2 "X�$�YW0Yc����Ås���z����MD��0��8!�����s� X��g�d�::@X0�P�w�"F/����R��Uz��m�ZZ�����V}|�/�o5����I�!�1z��:v��Uim}�/�>
2+
�F-

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/89/657cd6da3ada7bfef880e6dfdb9732f28c272b

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��A
2+
� E���/c�J�=�8�TA#�]��M�����ϭ�<��p]�_��*�6t�<�0�l��z�8�+[�U�k����:%X�S�D�J���Y)��[����Y�4"�5j�z<��U�=�L~�6u;=

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/9f/d738e8f7967c078dceed8190330fc8648ee56a

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
x��[
2+
�0E��*f��դ "�W0��-�F�t�݁��pS[�Y��x�^
3+
D�b CLhut��}�8X*4Z��sY���U��A���X3�R�M��) s6輢M��រ�&Jm��;}�����<��\@����ޏpĀ�v�?��jۺL��?H�

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/a4/a7dce85cf63874e984719f4fdd239f5145052f

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��;j1D��md�����ǎ|M��3`��V{ >���Q����vL0I?�!�4�Z=�!�צ8�F���!r�sQ�y�9�]$D�&�l6A�>jFW�ҵ IKNi��Z�%�S���
2+
�� ������U~̽��>'��� �w��[��� ���DGڡ���Q-�M���>d���O����}�\�8g_Ш�oYr
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��M
2+
�0F]�� e���D�z�q��@�@� oo� ����{��Rr��é���� �1��EȀKƀ��<�|���V�~�ƛ�|�L��|ܞ��>I-W�s���@�Ԡ��\"K�Z ���G�w����:�

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/b2/5fa35b38051e4ae45d4222e795f9df2e43f1d1

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x�A
2+
�0�a�9��I� ���p'�1�Ѷ�v\x{c���V�p�vW�g��ǎ0x�[ ]"g�#{rD�Cot ���N �U $��?9-p+1�^��Qx���9O\�C�� �m�'D{m�V��(+���l��,�
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
x��Kj1D��)z�UB��-0��uV9����<#������+�W<J���&8�/s��e���ȕKJ����S
2+
�Rv��{��Q��r��Y�QN$H\E����=6�X5���K Fr)�(�dC��Ά�����j�s�}���9�c-�w8�o�\�r��I���:
3+
l}F�W$Ds�ǣ��ٚOW�e�]V8-Ý��"U
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
x��Q
2+
�0D��)�ʦ�I<�'�lR+�Fj��Eo��0<x�h���a ���]ș��XUl�PF)�z�4y�,\r 'S��-mI4
3+
�Xh��&��F�}n+\���Y�-p|鷜oU�z;-��a��lt{��?�I�,:�o�R��cHK
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��A
2+
� E���/G�!�n{�q2��F����t���{�k)�:�M��^x��L����� ����ݚ�̛�W����6��~� �Z�����P��r4�-3��Qku���?�z�'����9�;I

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/e7/039e6d0e7dd4d4c1e2e8e5aa5306b2776436ca

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
x��KJ1Eg5s <*�t> ��e���^7t:�wo܂� �p��@.=�..nD�"�JH�q�D��V1�����t��U�e�ޕ�in���� afu9Fk�c��O�e�׿����*�q��k9����rL��^�"����!�a���y�%_����2f��w3�G_K�

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/e8/953ab38d30b11c45b5ac7229fcef0ab4d603c6

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
x�A@0P��[�!���N�����#����ϋz�]�ld���uE/�D�nD�T$�h��Xϼ���z�p0(=��bhj73�|e�~#[�
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
x��A
2+
�0E]���$�� ����f�L#1���
3+
�>�ǃ?��Sc��U`=J�'�Dd�Q�)xF�DG��ު'W�D�¨���0x2L�-Z�#�q��b�m->��
4+
���n�呶ے9=���+h�G7B�3jDu��a�ZuO�-�[�W�cT_�FHn

LibGit2Sharp.Tests/Resources/worktree/testrepo_wd/dot_git/objects/f7/05abffe7015f2beacf2abe7a36583ebee3487e

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
x���B!D=Sh؅�Bb�;�X�G��c�|�/��K�d��z-�FѲDXy) Y�1��������X4��z�.�����r�dv�4Mb�st+Ҍ���������S/�zkuk}�I�\�����q�VOl�m ����Q�ΣC��Pp���1�J�
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# pack-refs with: peeled
2+
b25fa35b38051e4ae45d4222e795f9df2e43f1d1 refs/tags/test
3+
^e90810b8df3e80c413d903f631643c716887138d
4+
e90810b8df3e80c413d903f631643c716887138d refs/tags/lw
5+
7b4384978d2493e851f9cca7858815fac9b10980 refs/tags/e90810b
6+
^e90810b8df3e80c413d903f631643c716887138d
7+
e90810b8df3e80c413d903f631643c716887138d refs/remotes/origin/test
8+
4a202b346bb0fb0db7eff3cffeb3c70babbd2045 refs/remotes/origin/packed-test
9+
580c2111be43802dab11328176d94c391f1deae9 refs/remotes/origin/master
10+
a4a7dce85cf63874e984719f4fdd239f5145052f refs/remotes/origin/br2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
e7039e6d0e7dd4d4c1e2e8e5aa5306b2776436ca
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
7252fe2da2c4dd6d85231a150d0485ec46abaa7a
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a447ba2ca8fffd46dece72f7db6faf324afb8fcd
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
32eab9cb1f450b5fe7ab663462b77d7f4b703344
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
580c2111be43802dab11328176d94c391f1deae9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
f705abffe7015f2beacf2abe7a36583ebee3487e
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ref: refs/remotes/origin/master
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ref: refs/heads/i-do-numbers
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
7252fe2da2c4dd6d85231a150d0485ec46abaa7a
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../..
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../worktrees/i-do-numbers/.git
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
7252fe2da2c4dd6d85231a150d0485ec46abaa7a 7252fe2da2c4dd6d85231a150d0485ec46abaa7a Mike Minns <[email protected]> 1513714384 +0000 reset: moving to HEAD
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ref: refs/heads/logo
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a447ba2ca8fffd46dece72f7db6faf324afb8fcd
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../..
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../worktrees/logo/.git
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Test lock reason
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a447ba2ca8fffd46dece72f7db6faf324afb8fcd a447ba2ca8fffd46dece72f7db6faf324afb8fcd Mike Minns <[email protected]> 1513713776 +0000 reset: moving to HEAD
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
a change
2+
more files!
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
some more text
2+
more files! more files!
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
my new file
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a new file
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
content
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
1
2+
2
3+
3
4+
4
5+
5
6+
6
7+
7
8+
7.2
9+
8
10+
9
11+
10
12+
11
13+
12
14+
13
15+
14
16+
15
17+
16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
That's a terrible name!
2+
I don't like it.
3+
People look down at me and laugh. :-(
4+
Really!!!!
5+
Yeah! Better!
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hey there
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
my new file

LibGit2Sharp.Tests/TestHelpers/BaseFixture.cs

+9
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ static BaseFixture()
4343
private static string SubmoduleTargetTestRepoWorkingDirPath { get; set; }
4444
private static string AssumeUnchangedRepoWorkingDirPath { get; set; }
4545
public static string SubmoduleSmallTestRepoWorkingDirPath { get; set; }
46+
public static string WorktreeTestRepoWorkingDirPath { get; private set; }
47+
public static string WorktreeTestRepoWorktreesDirPath { get; private set; }
4648
public static string PackBuilderTestRepoPath { get; private set; }
4749

4850
public static DirectoryInfo ResourcesDirectory { get; private set; }
@@ -85,6 +87,8 @@ private static void SetUpTestEnvironment()
8587
AssumeUnchangedRepoWorkingDirPath = Path.Combine(ResourcesDirectory.FullName, "assume_unchanged_wd");
8688
SubmoduleSmallTestRepoWorkingDirPath = Path.Combine(ResourcesDirectory.FullName, "submodule_small_wd");
8789
PackBuilderTestRepoPath = Path.Combine(ResourcesDirectory.FullName, "packbuilder_testrepo_wd");
90+
WorktreeTestRepoWorkingDirPath = Path.Combine(sourceRelativePath, "worktree", "testrepo_wd");
91+
WorktreeTestRepoWorktreesDirPath = Path.Combine(sourceRelativePath, "worktree", "worktrees");
8892

8993
CleanupTestReposOlderThan(TimeSpan.FromMinutes(15));
9094
}
@@ -220,6 +224,11 @@ public string SandboxSubmoduleSmallTestRepo()
220224
return path;
221225
}
222226

227+
public string SandboxWorktreeTestRepo()
228+
{
229+
return Sandbox(WorktreeTestRepoWorkingDirPath, WorktreeTestRepoWorktreesDirPath);
230+
}
231+
223232
protected string SandboxPackBuilderTestRepo()
224233
{
225234
return Sandbox(PackBuilderTestRepoPath);

LibGit2Sharp.Tests/WorktreeFixture.cs

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
using LibGit2Sharp.Tests.TestHelpers;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using Xunit;
8+
9+
namespace LibGit2Sharp.Tests
10+
{
11+
public class WorktreeFixture : BaseFixture
12+
{
13+
[Fact]
14+
public void RetrievingWorktreeForRandomNameReturnsNull()
15+
{
16+
var path = SandboxWorktreeTestRepo();
17+
using (var repo = new Repository(path))
18+
{
19+
var worktree = repo.Worktrees["random"];
20+
Assert.Null(worktree);
21+
}
22+
}
23+
24+
[Fact]
25+
public void RetrievingWorktreeForWorktreeNameReturnsWorktree()
26+
{
27+
var path = SandboxWorktreeTestRepo();
28+
using (var repo = new Repository(path))
29+
{
30+
var worktree = repo.Worktrees["logo"];
31+
Assert.NotNull(worktree);
32+
}
33+
}
34+
35+
[Fact]
36+
public void CanEnumerateRepositoryWorktrees()
37+
{
38+
var expectedWorktrees = new[]
39+
{
40+
"i-do-numbers",
41+
"logo",
42+
};
43+
44+
var path = SandboxWorktreeTestRepo();
45+
using (var repo = new Repository(path))
46+
{
47+
var worktrees = repo.Worktrees.OrderBy(w => w.Name, StringComparer.Ordinal);
48+
49+
Assert.Equal(expectedWorktrees, worktrees.Select(w => w.Name).ToArray());
50+
}
51+
}
52+
53+
[Fact]
54+
public void CanViewLockStatusForWorktrees()
55+
{
56+
var testpath = SandboxWorktreeTestRepo();
57+
var repoPath = testpath;
58+
using (var repo = new Repository(repoPath))
59+
{
60+
// locked
61+
var worktreeLogo = repo.Worktrees["logo"];
62+
Assert.Equal("logo", worktreeLogo.Name);
63+
Assert.True(worktreeLogo.IsLocked);
64+
Assert.Equal("Test lock reason\n", worktreeLogo.LockReason);
65+
66+
// not locked
67+
var worktreeIDoNumbers = repo.Worktrees["i-do-numbers"];
68+
Assert.Equal("i-do-numbers", worktreeIDoNumbers.Name);
69+
Assert.False(worktreeIDoNumbers.IsLocked);
70+
Assert.Null(worktreeIDoNumbers.LockReason);
71+
}
72+
}
73+
74+
[Fact]
75+
public void CanGetRepositoryForWorktree()
76+
{
77+
var testpath = SandboxWorktreeTestRepo();
78+
var repoPath = testpath;
79+
using (var repo = new Repository(repoPath))
80+
{
81+
var worktree = repo.Worktrees["logo"];
82+
83+
Assert.Equal("logo", worktree.Name);
84+
var worktreeRepo = worktree.WorktreeRepository;
85+
Assert.NotNull(worktreeRepo);
86+
}
87+
}
88+
}
89+
}

LibGit2Sharp.sln

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Microsoft Visual Studio Solution File, Format Version 12.00
22
# Visual Studio 15
3-
VisualStudioVersion = 15.0.26730.10
3+
VisualStudioVersion = 15.0.27009.1
44
MinimumVisualStudioVersion = 10.0.40219.1
55
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibGit2Sharp", "LibGit2Sharp\LibGit2Sharp.csproj", "{EE6ED99F-CB12-4683-B055-D28FC7357A34}"
66
EndProject

LibGit2Sharp/Core/Handles/Objects.cs

+23
Original file line numberDiff line numberDiff line change
@@ -556,4 +556,27 @@ public override void Free()
556556
}
557557
}
558558

559+
internal unsafe class WorktreeHandle : Libgit2Object
560+
{
561+
internal WorktreeHandle(git_worktree *ptr, bool owned)
562+
: base((void *) ptr, owned)
563+
{
564+
}
565+
566+
internal WorktreeHandle(IntPtr ptr, bool owned)
567+
: base(ptr, owned)
568+
{
569+
}
570+
571+
public override void Free()
572+
{
573+
NativeMethods.git_worktree_free((git_worktree*) ptr);
574+
}
575+
576+
public static implicit operator git_worktree*(WorktreeHandle handle)
577+
{
578+
return (git_worktree*) handle.Handle;
579+
}
580+
}
581+
559582
}

LibGit2Sharp/Core/Handles/Objects.tt

+2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ var cNames = new[] {
3636
"git_object",
3737
"git_rebase",
3838
"git_odb_stream",
39+
"git_worktree",
3940
};
4041

4142
var csNames = new[] {
@@ -63,6 +64,7 @@ var csNames = new[] {
6364
"ObjectHandle",
6465
"RebaseHandle",
6566
"OdbStreamHandle",
67+
"WorktreeHandle"
6668
};
6769

6870
for (var i = 0; i < cNames.Length; i++)

0 commit comments

Comments
 (0)