Is this a bug? nodegit.Diff.treeToIndex
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 30/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- git, javascript, nodejs
- 領域
- devtools
調査の方向性
nodegit.Diff.treeToIndex の呼び出しから始め、issue に記載されたリポジトリについて、その patches() の出力を git diff --cached と比較します。なぜ flake.lock が現れるのか、また報告されたファイルのステータスがコマンドラインの結果と異なるのかを調査します。原因が特定されてステージ済み差分の結果に一貫性があること、または issue が想定される libgit2 の動作であることが示されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
System information
- node version: v14.19.2
- npm or yarn version: npm 6.14.17
- OS/version/architecture: Linux 5 x64
- Applicable nodegit version: nodegit-0.28.0-alpha.16
node -v
npm -v # (or yarn -v)
node -e "console.log(process.platform)"
node -e "console.log(require('os').release())"
node -e "console.log(console.log(process.arch))"
Problem
I'm trying to get the staged diffs, so basically git diff --cached. In my repo with git v2.36.0 this returns
$ git diff --cached | grep -A4 ^diff
diff --git a/.envrc b/.envrc
new file mode 100644
index 00000000..0fbc0219
--- /dev/null
+++ b/.envrc
--
diff --git a/.gitignore b/.gitignore
index ad82ced2..094a1db3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
--
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 00000000..53f75f03
--- /dev/null
+++ b/flake.nix
So 3 files, 2 of them new.
When I use
const repo = nodegit.Repository.open(path);
const head = await this.r.getHeadCommit();
const d = await nodegit.Diff.treeToIndex(repo, await head.getTree())
const pp = await d.patches()
pp.map(p=>`${p.newFile().path()} ${p.isUnmodified()&&'unmod'} ${p.isModified()&&'mod'} ${p.isUntracked()&&'untracked'} ${p.isAdded()&&'added'}`)
then that last line gives me
[
'.envrc false false false added',
'.gitignore false mod false false',
'flake.lock false false false added',
'flake.nix false false false added'
]
So somehow flake.lock is part of the diff?
Did I do something wrong or is this a bug with libgit2?
Thanks!
- 主要言語
- JavaScript
- スター
- 5.8k
- フォーク
- 704
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nodegit/nodegit のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100