libgit2 / libgit2/libgit2sharp
CommitLog order does not reflect order of commits.
未關閉
還沒有人認領這個 Issue。
- 主要語言
- C#
- 星號
- 3.5k
- 分支
- 925
- PR 合併指標
- 30 天內沒有已合併 PR
描述
Hi!
I am currently working on an E2E test which involves creating many commits, I am running into some issues however.
The repository's commit log order is different compared to the order of commits I have made.
Reproduction steps
public LibGitRepositoryBuilder WithManyCommits(int numberOfCommits, string commitMessage)
{
for (int i = 0; i < numberOfCommits; i++)
{
// Create & stage file.
var filePath = Path.Combine(_repoPath, $"{Guid.NewGuid()}.txt");
File.Create(filePath).Dispose();
var relativeFilePathToRoot = Path.GetRelativePath(_repository.Info.WorkingDirectory, filePath);
Commands.Stage(_repository, relativeFilePathToRoot);
_repository.Commit($"{commitMessage}-{i}", new Signature("bot", "bot@noreply.com", DateTimeOffset.UtcNow), new Signature("bot", "bot@noreply.com", DateTimeOffset.UtcNow));
}
return this;
}
var repo = new LibGitRepositoryBuilder(path)
.WithManyCommits(100, "Hello world")
.Build();
Expected behavior
- "Hello world-99"
- "Hello world-98"
- "Hello world-97"
- ....
Actual behavior
Version of LibGit2Sharp (release number or SHA1)
0.30.0
Operating system(s) tested; .NET runtime tested
OS
Edition Windows 11 Pro for Workstations
Version 23H2
Installed on 22/02/2024
OS build 22631.3593
Experience Windows Feature Experience Pack 1000.22700.1003.0
.NET
.NET 8.0
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
首先,使用所示的 LibGitRepositoryBuilder.WithManyCommits 範例重現排序問題,並檢查 repository 提交記錄的列舉方式。Issue 中沒有指定原始檔案或測試,因此請先找到 CommitLog 實作和現有的記錄測試。完成的標準是:依序建立的提交會如預期以最新的提交在前的順序出現。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- csharp, git
- 領域
- devtools
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100