問題タブ [rugged]
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.
ruby - ファイルが変更された最新のコミットを取得する
当面の私の仕事は、特定のファイルが変更された最後のコミットのコミット ID を把握することです。ルビー/ラギッドを使用しています。私が思いついた唯一の解決策は、すべてのコミットを調べて、そのファイルのコミットに関連付けられたツリー内のファイルを検索し、そのファイル oid を最初の (最新の) コミットからのファイルの oid と比較することです。
これは機能しますが、非常に複雑なようです。「コミットで何が変わったのか」という情報を取得する簡単な方法があるはずです。同じことを達成するためのより簡単で簡単な方法はありますか?
git - repo.path は、頑丈なレポを初期化して作成した後でも何も返しません
rugged..で以下のコードを使用してgitリポジトリを作成しました。
ただし、上記のコードを ruby myfile.rb として実行すると、何も出力されませんでした。
git - 頑丈な2つのコミットを比較する
頑丈な2つのファイルの違いを取得するためのドキュメントは見つかりませんでした。以下のコードを使用して、ruggedを使用してファイルをコミットしました
頑丈な同じオブジェクトの2つのコミットの違いをどのように確認できますか?
grit - 頑丈またはグリットを使用したgitプッシュの例
頑丈またはグリットのコード例を探しており、その方法を示していますgit push
。
バックグラウンド
レーキタスクがdeploy:staging
ありdeploy:production
、アプリのデプロイに使用しています。
私はherokuにデプロイしているので、これらのタスクは基本的に次のことを行います。
- 最新のタグを取得します(例
git describe --abbrev=0
) 。 - そのタグで表されるバージョンを指定されたリモートにプッシュします(例
git push staging v1.00
) 。 - バージョンをherokuconfigvarに保存します(例
heroku config:add APP_VERSION=v1.00
) 。
(プッシュする前に新しいタグを作成することを忘れていないことを確認するためのチェックもあります。)
当初、私はこれらのCLIコマンドにRakefileからのシステムコールを使用していました。次に、gitとheroku-apiのgemを使用するようになりました。
ただし、git gemは放棄されているようです(過去1年間はコミットされていません)。GritとRuggedは、Gitを操作するための標準的な宝石になっているようです。
残念ながら、ドキュメントが不足しているため、これらのライブラリのいずれかを使用してgitpushを実行する方法を理解できません。
(次の例では、プッシュ先のリモート/ブランチがオリジン/マスターであり、ローカルリポジトリでリモートとしてすでに設定されていると想定しています)
頑丈から始める:
今グリットのために:
どんな助けでも大歓迎です。
ruby - rugged を使用して、git リポジトリにコミットされていない変更があるかどうかを確認するにはどうすればよいですか?
ruggedを使用して、コミットされていない変更が git リポジトリにあるかどうかを確認するにはどうすればよいですか?
ruby - Rugged を使用してプログラムでコミットを作成する方法は?
Rugged ( libgit2の Ruby バインディング)を使用して、既存のリポジトリへのコミットをプログラムで作成しようとしています。Rugged READMEで提供されているドキュメントに従おうとしましたが、コードベースの現在の状態と完全には一致していないと思います。次のコードを実行しようとすると、エラーが発生し続けます。
現在発生しているエラーは、index.add
行に問題があることを示しています。それは言いTypeError: wrong argument type nil (expected Fixnum)
ます。
rugged で新しいコミットを作成する方法をよりよく理解するための助けをいただければ幸いです。
アップデート
を実行してに更新Rugged 0.16.0
しました。上記で詳しく説明したコードは、現在動作しているようです。なぜ 0.16.0 で動作しなかったのかはわかりません。この人は、この回答で詳述したのと同じ問題を抱えているようです。Rugged 0.18.0.gh.de28323
gem install --prerelease rugged
ruby - Windows での堅牢なエラー
私が以下を実行したとき:
r = Rugged::Repository.new('<myrepopath>')
次のエラーが発生しました。
Rugged::OSError: The global/xdg file 'config' doesn't exist: The system cannot find the path specified.
どのように解決すればよいですか?
私はrugged 0.19.0
Windows 7で使用しており、自分のマシンでruby -v
出力しています。ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
ruby - ruby rugged gemを使用してgitログデータにアクセスしますか?
git リポジトリ内の特定のファイルについて、ファイルが変更された最後のコミットの SHA とタイムスタンプを調べたいと思います。
コマンドラインでは、このデータは特定のファイル パスの git log で表示されます。
Ruby の「git」gem を使用すると、次のこともできます。
これは素晴らしいことですが、多くのパスをループすると、実行速度が遅すぎます。Rugged は代わりに C ライブラリを使用するため、高速になることを期待していましたが、Rugged 構文で正しいクエリを作成する方法がわかりません。助言がありますか?
ruby - Rugged - フェッチ、リベースのプルは可能ですか?
次の操作をrugged
どのように実行しますか: fetch
、pull
およびrebase
?
私はブランチを使用しており、クラスのガイドとしてここdevelopment
にあるドキュメントを確認した後。Remote
編集: sincegit pull
は の単なる省略形でgit fetch
ありgit merge FETCH_HEAD
、より良い質問はgit fetch
、 、git merge
およびの実行方法git rebase
です。
libgit2 - SSH トランスポートを使用してリモートに接続する方法
リポジトリのorigin
リモートに ssh URL があるようにします。したがって、次のコード:
上げRugged::SshError: Cannot set up SSH connection without credentials
ます。
クラスがあり、のオプションを提供できるためrugged
、SSH トランスポートをサポートしているようです。しかし、ソース コードで資格情報を提供する方法がわかりません。何か不足していますか?Rugged::Credentials::SshKey
:credentials
Repository.clone_at
Remote#connect
また、ssh 経由で接続できる場合、ssh-agent から資格情報を取得する方法はありますか? ssh libgit2
-agent を照会できるようです。