8000 Add rewrite test that injects existing TreeEntry · apfunk/libgit2sharp@c890e61 · GitHub
[go: up one dir, main page]

Skip to content

Commit c890e61

Browse files
committed
Add rewrite test that injects existing TreeEntry
1 parent d6079d4 commit c890e61

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

LibGit2Sharp.Tests/FilterBranchFixture.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,34 @@ public void CanRewriteTrees()
213213
Assert.True(repo.Head.Commits.All(c => c["README"] == null));
214214
}
215215

216+
[Fact]
217+
public void CanRewriteTreesByInjectingTreeEntry()
218+
{
219+
var commits = repo.Commits.QueryBy(new CommitFilter { Since = repo.Branches }).ToArray();
220+
221+
var currentReadme = repo.Head["README"];
222+
223+
repo.Refs.RewriteHistory(new RewriteHistoryOptions
224+
{
225+
OnError = OnError,
226+
OnSucceeding = OnSucceeding,
227+
CommitTreeRewriter =
228+
c => c["README"] == null
229+
? TreeDefinition.From(c)
230+
: TreeDefinition.From(c)
231+
.Add("README", currentReadme),
232+
}, commits);
233+
234+
AssertSucceedingButNotError();
235+
236+
Assert.Equal(new Commit[0],
237+
repo.Commits
238+
.QueryBy(new CommitFilter {Since = repo.Branches})
239+
.Where(c => c["README"] != null
240+
&& c["README"].Target.Id != currentReadme.Target.Id)
241+
.ToArray());
242+
}
243+
216244
// git log --graph --oneline --name-status --decorate
217245
//
218246
// * 4c062a6 (HEAD, master) directory was added

0 commit comments

Comments
 (0)
0