問題タブ [jgit]

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.

0 投票する
3 に答える
15883 参照

java - JGitでキーを使用してGitリポジトリに安全にアクセスする

JGitを使用してリモートGitリポジトリにアクセスしていますが、SSHを使用する必要があります。JGitはJSchを使用して安全なアクセスを提供します。ただし、JGitのキーファイルとknowshostsファイルの設定方法がわかりません。私が試したのは次のとおりです。

JSchConfigSessionFactoryをサブクラス化することにより、 SshSessionFactoryのカスタム構成を作成しました。

リモートのGitリポジトリにアクセスするクラスで、次のことを行いました。

このJSchオブジェクトをJGitに関連付けて、リモートリポジトリに正常に接続できるようにする方法がわかりません。JGitでクローンを作成しようとすると、次の例外が発生します。

git.test.comエントリを/etc/hostsファイルに追加しました。同じコードを使用してhttpurlを使用してgitリポジトリにアクセスしたので、コードは正常に機能します。失敗しているのはキー処理部分です。これを処理する方法について何かアイデアはありますか?

0 投票する
0 に答える
1237 参照

java - Jgit 浅いクローン (深さ -2)

JGIT (BasePackFetchConnection クラス) にいくつかの変更を加えた後、浅いクローンのサーバーにコマンド (deepen 2) を送信できるようになりました。ただし、サーバーが浅いコミットで応答すると、Jgit はこれを処理できません。

パックで浅いリポジトリを受け取るためにサーバーに送信する必要があるコマンドは何ですか? 以下のドキュメントは、浅い応答を処理する方法について明確ではありません https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt

0 投票する
1 に答える
250 参照

java - 2 つの git コミット間で利用可能なブランチを見つける

コミットのメモが見つからない別のブランチに到達するまで、すべてのブランチを見つけたい開始コミットがあります。

この場合、コミット 1 ~ 5 のすべてのコミットに「find branch」というメモがあり、コミット 6 にはその値の not がないと言います。

したがって、コミット 1 から始めて、すべての親を検索し (つまり、コミット 2)、このコミットのブランチがあるかどうかを確認しようとします (つまり、子の数が 1 より大きい)。子が複数いる場合

  1. getChildren()メソッドは PlotCommit オブジェクトに対してのみ存在しますが、メソッドはObjectparentCommit.getParents()のみを返しますRevCommit
  2. 特定のコミットに存在するブランチ名を見つけたい

その後、コミットに関するメモがなくなると (つまり、コミット 6 にメモがない場合)、ロジックはそこで停止し、ブランチ名のコレクションが返されます。

期待される結果

特定の git ノートを含むコミットのブランチ名を見つけたいです。上記の例では、コミット 1 とコミット 5 のブランチ名が返されます

0 投票する
2 に答える
17644 参照

eclipse - EclipseプロジェクトフォルダーをGitリポジトリとして使用することが推奨されないのはなぜですか?

プロジェクトをgitとして共有し、Eclipseプロジェクトフォルダーをgitリポジトリとして作成しようとすると、Eclipseは、そうすることは推奨されておらず、Eclipseワークスペースの外部にある必要があると言います。

何故ですか?

0 投票する
1 に答える
2002 参照

daemon - JGit: InMemoryRepository を使用して dfs 実装について学習する方法

jgitの代替dfsバックエンドを実装する方法を学びたいと思っており、 https://github.com/eclipse/jgit/blob/master/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfsを見ています例として/InMemoryRepository.java

これをスタンドアロンのgitデーモンとして設定する方法を理解するのに苦労しています。基本的に、単一の (空の) メモリ内 git リポジトリの git サーバーである Java プロセスを開始できるようにしたいと考えています。次に、git クライアントを使用して、そのリポジトリ デーモン プロセスからプッシュ/プルできるようにしたいと考えています。

0 投票する
2 に答える
1501 参照

git - Git & JGit: 特定のリビジョンからファイルを取得する最速の方法

バックグラウンド:

Git の特定のリビジョンからファイルを取得したいと考えています。以前git showは、このスレッドで説明されている方法を使用してコマンドを使用しました: Git で特定のリビジョンから単一のファイルを取得する方法は? 意味:

ただし、私の他の投稿で説明されている問題に基づいて:プロセス出力からバイナリとテキストの両方を読み取る の出力からバイナリ データを読み取ることができませんでしgit showた。SO ユーザーの提案に従って、Java のネイティブ実装としてJGitに移行しました。JGit APIを使用して特定のリビジョンからファイルを削除する方法を説明するSOのこのスレッドを見つけました。 JGitでファイルを「猫」にする方法は?

質問:

私のプロジェクトでは、パフォーマンスが非常に重要です。したがって、ファイルを取得する最良の方法を探しています。上記の API メソッドは、ツリーをナビゲートして正しいリビジョンを取得するようです。Git で単一のコマンドを使用してファイルを取得できることを考えると、どちらが高速かはわかりません。

  • JGit で説明されている方法を使用する必要がありますか、git showそれともコマンドを使用する必要がありますか?
  • JGit のより良い解決策はありますか?
0 投票する
1 に答える
2131 参照

java - JGitでスパースチェックアウトを実装するにはどうすればよいですか?

Github リポジトリの特定のサブ ディレクトリの内容を取得し、それを自分のディレクトリに配置する必要があります。多くの調査の結果、まばらなチェックアウトが進むべき道のようです。ただし、JGit を使用してこれを実装する方法については、少しわかりません。

0 投票する
8 に答える
9250 参照

eclipse-plugin - Egit がインストールされている (Juno に付属) が、まったく表示されない

私はEclipseコミュニティ自体からのサポートのために、EclipseでGIT、できればEGitを使いたいと思っています。ただし、必要なプラグインがインストールされていると主張する Eclipse にもかかわらず、それはパースペクティブ、インポート、および設定メニューには表示されません。

Java EE 用の Eclipse Juno を使用しており、次のインストールを確認しました インストールされた機能 。Egit または JGit のリポジトリに移動すると、Eclipse はプラグインが既にインストールされていることを通知します。

Window > Preferences > Team には Git アイテムは含まれず、CVS と SVN のみが含まれます。インポート プロジェクトに Git オプションが含まれていません。パースペクティブ ウィンドウに Git リポジトリ オプションが含まれていません。

0 投票する
2 に答える
876 参照

eclipse - Eclipse で JGit をビルドする方法 (依存関係エラー)

JGitの最新バージョンをビルドしようとしています。Git リポジトリから最新バージョンをチェックアウトしました。ビルド手順に従って依存関係を Orbit 経由でインストールしました。次に、mvn clean installすべてをコンパイルしてすべてのテストを実行することができた実行しました。これは素晴らしいことで、エラーはなく、コンパイルされた .jar ファイルを見つけることができました。

次に、Eclipse を開き、プロジェクトをワーキング セットにインポートしました。何らかの理由で、ビルド プロセスで多数のエラーが発生します。

インポートを解決できません:

さらに解決できません:

Eclipse経由でJettyをインストールしてみました(Install New Software)。ただし、それで問題は解決しませんでした。

Eclipse で JGit をビルドするべきではないのでしょうか? すべてのビルドとテストは Maven で行う必要がありますか? また、なぜ Jetty と Apache が JGit のこれらのサブプロジェクトの一部にインポートされており、それらが wiki で JGit の依存関係としてリストされていないのかについても混乱しています。

前もって感謝します。

0 投票する
2 に答える
4079 参照

eclipse - リポジトリに追加した後、Eclipse でプロジェクトを実行できません。Java プロジェクトではありません

github アカウントと egit をセットアップしました。それは本当にうまくいきます。私はステージング、コミット、プッシュ/プルを学びました...かなり。

残念ながら (Juno) Eclipse は FoobarProstate を Java プロジェクトとして認識していません。FoobarProstate は単なるプロジェクトです。緑色の実行矢印をクリックすると、エラー メッセージが表示されます

選択したものを起動できず、最近の起動がありません。

Eclipse でプロジェクトを作成し、[File] > [Import] > [Git] > [Projects from Git] を使用してウィザードでインポートしました。それは私の間違いかもしれません。

これは、Eclipse Package Explorer に表示されるものです。

Eclipse パッケージ エクスプローラーのスクリーンショット

私が試したこと:

  • プロジェクト名を右クリック > Configureすると、 Convert to Maven Projectというオプションが 1 つ表示されます。それが何なのかわからないし、それはしたくないと思う。

  • 緑の実行ドロップダウン矢印 > Run Asは me (none applied)を提供します。

  • プロジェクトをJavaプロジェクトに変更するためのオンライン手順がわかりません。

私がオンラインで見つけた回答では、実行構成を変更するように言われています(緑色の実行ドロップダウン矢印>実行構成... )。しかし、指示はジュノ向けではないか、従うのが難しい. 私は本当に混乱しています。

ノート:

  • 私のリポジトリの github ビューでは、このリポジトリの名前の横に「Java」と表示されています。リポジトリには、私の Java プロジェクトと同じ名前 (FoobarProstate) があります。

  • 私の FoobarProstate ファイルは C:\Users\EmilyBB\git\FoobarProstate に保存されています。これは私の Eclipse ワークスペース (C:\Users\EmilyBB\workspace) ではありません。問題ありますか?

  • Androidのもの(ADTなど)をインストールしました

ありがとうございました!