2013-03-04 42 views
18

私は開発チームでEGit(Eclipse用)を使用しています。我々は、新しい仕事のために多くのfeaturefixブランチを作り、それが完了したら我々のreleaseブランチにマージしています。正しいreleaseブランチにマージされた直後に、これらの一時的なブランチは、通常、リモートリポジトリをきれいに保つために削除されます。EGit:リモートレポで削除されたリモートトラッキングブランチをプルーニング

これらのブランチが削除されると、私はリモートリポジトリからフェッチしますが、EGitはリモートトラッキングビューからそれらを削除しません。私のリモートトラッキングビューには、もはやリモートリポジトリに存在しない削除されたブランチが表示されます(削除されたという表示はありません)。リモートトラッキングビューを反映させる唯一の方法(私が見つけた)は、リモートトレースブランチをすべて手動で削除(強調表示と削除)してから再度フェッチすることです。これは、このように、コマンドラインを介してリモートブランチを剪定することができ、特に以来、非常にラウンドアバウトようだ:

git remote prune origin基本的に

、私が知りたいのですが何EGitがこれを実行します/設定する方法があるかどうかでありますリモートトラッキングブランチが変更されたとき(プル後)のプルーニングここは私の現在の私のoriginリモコンの設定をフェッチします

enter image description here

答えて

22

アップデート2014年3月:cheshireanswerで述べたように、EGit 3.3は、プルーンの機能を追加しました。

あなたはgit configで言及entry fetch.pruneがあなたのEgit構成に追加することができたJGitでこのGerrit code reviewで導入された機能(およびtested here

を見ることができます:

https://wiki.eclipse.org/images/f/f8/RepositoryConfigurationSettings.png


オリジナルの答え(2013年3月)

EGitは、リモートトラッキングブランチが変更されたとき(Iフェッチ後)にこのプルーニングを実行します。

これはわかりません。

より一般的には、クライアント側の各フェッチがフックでは実行できない場合は、何らかのアクションを実行します。
been requestedがあり、サーバ側でのみ実装されていたのはhook post-upload(フェッチ後に実行)ですが、マルチユーザ環境でセキュリティ上の理由から削除されました。

+0

私は「フック」として、これらの種類のスクリプトを実行することはセキュリティの脅威になる可能性があることを理解しています。フェッチした後に 'prune'を自動的に実行するのが私の理想的な解決策です。しかし、私の疑問の根本は 'prune'コマンドは' Git'コマンドラインですでに動作しているということです。だから手動で実行することを選択できたとしても、それは私の問題を解決する。なぜ私はEGitが 'prune'コマンドを実装できないのか分かりません。 EGitで枝刈りをまったく行うことができるかどうか知っていますか? –

+2

@StevenByle EGit 2.3 Reviewのスライド10を参照してください:https://bugs.eclipse.org/bugs/attachment.cgi?id=226938 'prune'はサポートされていません。 – VonC

+0

私が知りたかったのとまったく同じです。私はあなたの勤勉に感謝:)。 –

8

最近のEGit 3.3 releaseではプルーンサポートが導入されました。

fetch.pruneまたはremote.<yourremotename>.pruneキーをgitconfigに追加し、trueに設定できます。 EGitでフェッチすると、中央リポジトリで削除されたブランチが自動的にプルーニングされます。

関連する問題