feat(ai-code-review): 建問題模式導向 issue,並整併流程調整、文件與 CI #6
+4
-1
@@ -133,9 +133,12 @@ function resolveMergeBase(cwd, baseRef) {
|
||||
// 資料驅動的補抓策略:先以固定深度分批加深 base 與 HEAD(每步後重試 merge-base,成功即回傳);
|
||||
// 只有仍失敗且為淺層 repo 時,才把成本最高的 --unshallow(下載完整歷史)當最後手段,
|
||||
// 避免大型/長壽 repo 只為找共同祖先就無謂拉全史。
|
||||
// 加深 HEAD 側須以「目前 HEAD 的 commit SHA」補抓——遠端符號 `HEAD` 由伺服器解析為
|
||||
// 遠端預設分支(非目前 checkout 的 PR head),只加深它並不會補到 PR head 的歷史。
|
||||
const headSha = gitTrim(cwd, 'rev-parse', 'HEAD');
|
||||
const strategies = [
|
||||
['deepen base', 'fetch', '--no-tags', '--deepen=1000', 'origin', `+refs/heads/${baseRef}:refs/remotes/${remoteBase}`],
|
||||
['deepen HEAD', 'fetch', '--no-tags', '--deepen=1000', 'origin', 'HEAD'],
|
||||
['deepen PR HEAD', 'fetch', '--no-tags', '--deepen=1000', 'origin', headSha],
|
||||
];
|
||||
if (gitTrim(cwd, 'rev-parse', '--is-shallow-repository') === 'true') {
|
||||
strategies.push(['unshallow', 'fetch', '--no-tags', '--unshallow', 'origin']);
|
||||
|
||||
Reference in New Issue
Block a user