問題タブ [libgit2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - LibGit2Sharpでクエリされるコミットの数を制限しますか?
私はループをしています:
正常に動作しますが、結果の数を制限する方法はありますか?たとえば、最新の100個のコミットを取得し、古いコミットは忘れたいと思います。
git - LibGit2Sharpで`gitrm--cached`と`gitrm -f`を実現するにはどうすればよいですか?
1)を使用してみrepo.Index.Remove(item.Filename);
ましたが、次のようになります。
追加情報:ファイル'file.txt'を削除できません。現在のステータスは「変更済み」です。
私はそれを行う方法を見つける必要がありますgit rm file.txt -f
(つまり、強制的に削除します)。
git rm file.txt --cached
2)ファイルがリポジトリからのみ削除される(削除のためにステージングされる)が、ファイルシステムに保持されるようにする方法が必要です。LibGit2Sharpでこれを行う方法はありますか?
repo.Index.Remove()
3)指定されたパスがリポジトリの一部になったことがない場合(つまり、ファイルが追跡されていない場合)に呼び出しても大丈夫ですか?
c - libgit2を使用したGitチェックアウト
この質問は、私の前の質問の進化または解決策です。gitリポジトリのクローンを作成する(詳細)この状況では、新しい質問を作成するのが最善だと思いますが、間違っている可能性があります。
これは単純です。libgit2git checkout master
と同等のことをどのように行うのでしょうか。
1年前には不可能だったようです:https ://github.com/libgit2/libgit2/issues/247
これによると、クローンは少なくとも5か月前に可能でした。しかし、私はそれを行う方法についてのコード、ドキュメント、または例を見たことがありません。(編集)つまり、含まれている完全なクローンgit checkout
についても、チェックアウトに関するコード/ドキュメントについても何も見ていません。
c# - 参照のクエリ中にスタッシュを除外する方法は?
私はコミットを照会しようとしています:
それ以外は問題ありませんが、スタッシュも返します。スタッシュを除外するにはどうすればよいですか? 結果をループしているときに、それらを無視できることはわかっていますが、そうすると、必要な100個の結果が得られません。
c# - コミットを元に戻すには?
LibGit2Sharp のすべてのオブジェクトを調べてみましたが、特定のコミットを元に戻す方法を見つけることができませんでした。LibGit2Sharp でコミットを元に戻すことは可能ですか、それともまだ元に戻されていますか?
repo.Revert(commit.Sha)
私は、またはおそらくのようなものを期待していたでしょうcommit.Revert()
。
変更の差分を取得し、手動でブロブを作成してコミットすることで、これを達成することはおそらく可能でしょうか?
c# - ディスク上のファイルとヘッド上の対応するバージョンを比較しますか?
ディスク上のファイルと HEAD 上の対応するバージョンとの差分を取得するにはどうすればよいですか?
私はもう試した:
DiffTarget.Index
インデックスとヘッドのツリー間の変更のみを比較します。これは問題ありませんが、作業コピーとツリーの間の変更を取得する方法も必要です。これは可能ですか?
また、インデックス全体ではなく、特定のファイルのみに差分を制限するにはどうすればよいでしょうか?
c# - LibGit2Sharp で差分変更を繰り返す
TreeChanges
LibGit2Sharp で反復するための最良の (高性能でシンプルな) 方法は何でしょうか?
プロパティにアクセスする.Patch
と、変更の全文が取得されます。これは私にとっては十分ではありません...理想的には、差分行を反復処理し、各行ごとに行のステータス (変更、追加、削除) を取得し、そこから独自の出力を作成できるようにしたいと考えています。
アップデート:
独自の差分出力を作成したいとしましょう。私がやりたいのは、変更された行を反復処理することです。反復中に、変更の種類 (追加、削除) を確認し、出力を作成します。
例えば:
上記は、私が求めている柔軟性の簡単な例です。変更を確認し、行の変更の種類に応じていくつかのロジックを実行できるようにします。プロパティは既に "構築" されていPatch
ます。1 つの方法はそれを解析することですが、ライブラリが最初に出力を構築し、次にそれを解析するのはばかげているようです...構築要素を直接使用したいです。
上記の単純な例よりもはるかに多くのコードとロジックを含む変更の視覚的な差分を表示できるように、この種の機能が必要です。
c# - LibGit2Sharpでファイルを部分的にステージングする方法は?
このファイルをコミットしました:
foo.txt
今、私はそれを次のように変更します:
実行するgit add . && git diff --cached foo.txt
と、次のようになります。
line 1.5
インデックスから削除して保持したいとしましょうline 2.5
。LibGit2Sharp でこれを行うにはどうすればよいでしょうか。
これは、別の方法で質問することもできます。ファイルの一部をインデックスに追加するにはどうすればよいですか? ある種のプログラム版を探していgit add -p
ます。
c# - 親参照の使用
libgit2sharpを使用していて、のようなCommit
ものを表すオブジェクトを取得したいと思いますHEAD~10
。試しrepo.Lookup("HEAD~10")
ましたが、うまくいきません。
LibGit2Sharp.LibGit2Exception:libgit2によってエラーが発生しました。クラス=GITERR_REFERENCE(-1)。
指定された参照名は 、LibGit2Sharp.Repository.Lookup(String shaOrReferenceName、GitObjectType type、LookUpOptions lookUpOptions ) のLibGit2Sharp.ReferenceCollection.Resolve [T](String name)の
LibGit2Sharp.Core.Ensure.Success(Int32 result、Boolean allowPositiveResult)では無効です。 ) at LibGit2Sharp.Repository.Lookup(String shaOrReferenceName、GitObjectType type) at libgit_tmp.Program.Main(String [] args)
次のコードのようなもので同じことができることに気づきましたが、この方法で参照を指定できれば、それでもそれを好みます。それを行う方法はありますか?そうでない場合、それはlibgit2sharpまたはlibgit2の制限ですか?
python - git2.h が見つからないのはなぜですか? どうすれば元に戻すことができますか?
pygit2 のセットアップを試みるたびに奇妙な問題が発生します。以下は私が実行したもので、エラーが発生しました。
libgit2 のインストールに成功したと思います (ビルドと make は正常に終了しました)。多分それはパスの問題ですか?LIBGIT2 環境変数を libgit2 フォルダーの src ディレクトリに設定しました。それは正しい場所ですか?