libgit2 / libgit2/libgit2sharp

Git stash pop behaviour with

未關閉
#1,844 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
C#
星號
3.5k
分支
925
PR 合併指標
30 天內沒有已合併 PR

描述

Reproduction steps
  • In branch A with master as remove we have a new file untracked.
  • In master we have added the same file already and it's part of commit a123

we are updating branch A to the commit a123 so we are doing:

var stash = repository.Stashes.Add(signature, StashModifiers.IncludeUntracked);
repository.Merge('a123', signature);

if (stash != null)
{
	repository.Stashes.Pop(0);
}

if(repository.Index.Conflicts.Any()){
      showUserAllTheConflictsAndGiveOptionsToFixThem
}
Expected behavior

When doing the Pop the change should get marked as having a conflict and being modified

Actual behavior

There won't be any conflicts even though the file is marked as modified and has been modified with the conflict markers

Version of LibGit2Sharp (release number or SHA1)

0.27.0-preview-0034

Operating system(s) tested; .NET runtime tested

Windows Server 2012; .NET 4.7.2

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

在 LibGit2Sharp 0.27.0-preview-0034 上,使用帶有 IncludeUntracked 的 repository.Stashes.Add、repository.Merge、repository.Stashes.Pop(0) 和 repository.Index.Conflicts 重現該情況。首先檢查未追蹤檔案與已追蹤檔案發生衝突時 stash pop 如何回報衝突,然後驗證該衝突會透過索引暴露出來,同時工作檔案仍處於帶有衝突標記的修改狀態。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
csharp, git
領域
tooling
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。