libgit2 / libgit2/libgit2sharp
Using CherryPick with CommitOnSuccess = false
還沒有人認領這個 Issue。
- 主要語言
- C#
- 星號
- 3.5k
- 分支
- 925
- PR 合併指標
- 30 天內沒有已合併 PR
描述
Reproduction steps
using (var repo = new Repository("path\to\repo"))
{
var commit1 = repo.Lookup<Commit>("a05b011d89bbd5c9117840b71718ce2a1ee00376");
var masterTb = repo.Branches["refs/remotes/origin/release/1.0"];
var master = repo.CreateBranch("release/1.0", masterTb.Tip);
var updateMb = repo.Branches.Update(master,
b => b.TrackedBranch = masterTb.CanonicalName);
Commands.Checkout(repo, updateMb);
var result = repo.CherryPick(commit1, commit1.Author, new CherryPickOptions { CommitOnSuccess = false});
}
If i use CherryPick with CommitOnSuccess = false repo is left in cherry-pick state. For rebase there is abort and continue commands, but for cherry pick there is non.
I checked up code and if i use CommitOnSuccess = true there is git_repository_state_cleanup which clean up chery-pick state.
Is this a bug or there is some commands to reset state?
Expected behavior
cherry picked and exit cherry-pick state
Actual behavior
left in cherry-pick state
Version of LibGit2Sharp (release number or SHA1)
0.26.2
Operating system(s) tested; .NET runtime tested
Windows 10 Version 2004 10.0.19041
.Net Core 3.1
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
從 Repository.CherryPick API 及其對 CherryPickOptions 的處理開始;將 CommitOnSuccess=false 路徑與 rebase abort/continue 的行為,以及報告中描述的 git_repository_state_cleanup 呼叫進行比較。針對 LibGit2Sharp 0.26.2 重現所提供的程式碼片段;當 repository 不再維持在 cherry-pick 狀態,或已記錄支援的 reset 行為時,即視為完成。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- csharp, git
- 領域
- devtools
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 38/100