問題タブ [dulwich]
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.
python - Windowsでhg-gitを動作させるためにdulwichを正しくインストールするにはどうすればよいですか?
Windowsでhg-gitMercurial拡張機能を使用しようとしています(具体的には、Windows 7 64ビット)。MercurialとGitをインストールしています。Python 2.5(32ビット)をインストールしています。
http://hg-git.github.com/の指示に従って、拡張機能をインストールしました。Visual Studio 2003なしではdulwichをコンパイルできなかったため、最初のeasy_installは失敗しました。
私はdulwichを手動でインストールしました:
- git clone git://git.samba.org/jelmer/dulwich.git
- cdダリジ
- c:\ Python25 \ python setup.py --pure install
これで、easy_install hg-gitを実行すると、成功します(dulwichの依存関係が満たされているため)。
私のC:\ Users \ username \ Mercurial.iniには、次のものがあります。
コマンドプロンプトで「hg」と入力すると、「***拡張機能hggitのインポートに失敗しました:hggitという名前のモジュールがありません」と表示されます。
私のc:\ Python25フォルダーの下を見ると、hggitへの唯一の参照はですLib\site-packages\hg_git-0.2.1-py2.5.egg
。これはどこかで抽出されるはずですか、それともそのまま動作する必要がありますか?
それが失敗したので、私はgit://github.com/schacon/hg-git.gitのクローンを作成し、Mercurial構成でパスを参照することを提案するhg-gitページからの「より複雑な」指示を試みました。リポジトリのクローンを作成し、拡張ファイルを次のように変更しました。
hgを実行すると、次のように表示されます。***拡張機能hggitをc:\ code \ hg-git \ hggitからインポートできませんでした:dulwich.errorsという名前のモジュールがありません。
わかりました。hg-git\hggit\ git_handler.pyで呼び出すことができるので、hggitが検出されていることがわかります。
それは私にdulwichが正しくインストールされていないか、パスにないように思わせます。
アップデート:
Pythonコマンドラインから:
収量Import Error: No module named dulwich
ただし、C:\ Python25 \ Lib \ site-packagesの下に、データが入力されているように見えるdulwich-0.5.0-py2.5.eggフォルダーがあります。これは、上記の手順で作成されました。Pythonの「パス」の一部にするために必要な追加の手順はありますか?
Pythonコマンドラインから(回答の1つで提案されているように):
収量[dulwich 0.5.0 (c:\python25\lib\site-packages\dulwich-0.5.0-py2.5.egg)]
それで、それは私に何を伝えますか?dulwichのインポートは失敗しますが、どうやらpkg_resourcesはそれを見つけることができます。その情報で何ができますか?
python - プログラムで `git checkout .` を dulwich で
このコードを持つ
履歴にコミットしてしまいますが、作成されたファイルは削除待ちです(git status
そう言います)。
Aがgit checkout .
修正します。
git checkout .
私の質問は次のとおりです。ダルウィッチをプログラムで行うにはどうすればよいですか?
python - Dulwich では、HEAD ではなくブランチにコミットするにはどうすればよいですか?
どうやら repo.do_commit(message='test commit', committer='Name ') は refs/heads/master にのみコミットします。
現在のコミット ref を refs/heads/master 以外に設定する方法はありますか?
または、Commit オブジェクトを作成し (ドキュメントのチュートリアルに示されているように)、その親をブランチのコミット ID の 1 つに設定することによって、ブランチにコミットする唯一の方法ですか?
refs/heads/master へのコミット以外に repo.do_commit を使用することは、これに該当しますか?
python - インデックスに何かを追加してコミットし、マスターブランチをdulwichを使用して名前付きリモートにプッシュする方法は?
のように、インデックスに何かを追加するにはどうすればよいですか?
それから
それから
ダリジを使用していますか?
これまでのところ、私はこのhttp://www.samba.org/~jelmer/dulwich/apidocs/dulwich.index.Index.htmlを見つけましたが、それは多くを語っていませんね?
ありがとう
python - GitPythonを使い始める
私の目標は、Pythonから既存のGitリポジトリにアクセスすることです。レポ履歴とオンデマンド差分を取得したい。
それをするために、私はdulwichから始めました。だから私は試しました:
そして得たOSError: [Errno 17] File exists: '/home/umpirsky/Projects/my-exising-git-repo/.git
ドキュメントには、と書かれてYou can open an existing repository or you can create a new one.
います。
それを行う方法はありますか?dulwichで履歴と差分を取得できますか?Gitアクセス用に他のlibを推奨できますか?私はUbuntuアプリを開発しているので、簡単にデプロイできるようにubuntuパッケージを用意することをお勧めします。
また、定期的にチェックしてリポジトリの新しい変更を検出するので、リモートで作業して、まだローカルにプルされていない変更を検出できるようにします。これがどのように機能するかわからないので、どんな助けでも適用されます。
前もって感謝します。
dulwich - プログラムでdulwichを使用した`gitstatus`
git status
dulwichと同等の機能をどのように実行できるのでしょうか。
私はこれを試しました:
いくつかのファイルを追加/変更/名前変更し、コミットのためにそれらをステージングした後、これは私がやろうとしたことです:
以下を出力します。
しかし、この出力では、以下を検出するためにさらに処理する必要があります。
- 変更しました
README.txt
。 - 名前をに変更
Makefile
しましたMakefile.mk
。 TEST.txt
リポジトリに追加しました。
の関数は、dulwich.diff_tree
ツリーの変更に対してはるかに優れたインターフェイスを提供します...これは実際にコミットする前に不可能ですか?
python - Dulwich: 変更されたファイルを自動的にステージングする方法
git コマンドラインでは、git commit -a
.
ダルウィッチを使用してそれを行うにはどうすればよいですか?
python - ダルウィッチを使用してリモートからプルする方法は?
git pull
python dulwich ライブラリのようなことをする方法。
git - Dulwich: 早送りを検出する方法は?
タイトルが示すように、つまり、リモート ブランチがローカル ブランチの祖先であるかどうか、またはその逆かどうかを知るにはどうすればよいですか?
python - Python dulwich を使用して、特定の git commit sha が含まれているブランチを確認しますか?
dulwich を使用して Python スクリプトから次のコマンドを実行したいと思います。
$ git branch --contains <myCommitSha> | wc -l
私が意図しているのは、特定のコミット (sha) が複数のブランチに配置されているかどうかを確認することです。
もちろんPythonから上記のコマンドを実行して出力を解析(分岐数を解析)すればいいと思っていたのですが、それは最終手段です。
他のアイデア/コメントはありますか?前もって感謝します。