8

私が働いている会社は、Java プロジェクトを CVS から Git に移行するプロジェクトを私に与えてくれました。いくつかの理由から、彼らは Eclipse 以外のツールを使用したくありません。だから私たちはEGitにこだわっています。

私たちのプロジェクトに適したワークフローを見つけるために、たくさん検索しました。これは非常に関連性があり、多くの人に使用されているようです: http://nvie.com/posts/a-successful-git-branching-model/

問題は、コミット、ブランチ、およびマージを使用して EGit でどのように機能するかを確認しようとしたときに、多くの早送りマージが発生したことです。早送りマージの問題は、ブランチの開始点が失われることです。

私たちが仕事をしているクライアントは、次のリリースに含まれる機能と含まれない機能を選択できるようにしたいと考えています。これが、CVS から Git に移行したい主な理由の 1 つです。CVS では、機能 1 によって変更されたファイルと機能 2 によって変更されたファイルを簡単に見つける方法がないように思われたからです。git では、機能 #1 と #2 のブランチを作成し、これらの機能のために変更されたファイルを見つけることができます。しかし、早送りのため、CVS に戻るようなもので、どれが機能 1 でどれが機能 2 であるかを知ることができません。

では、早送りマージを防ぐ方法はありますか? これらの構成を Eclipse に入れようとしました。

[core]
mergeoptions = --no-ff

[merge]
ff = false

しかし、EGit が早送りマージを実行するのを妨げませんでした。この機能が JGit/EGit で実装されていない場合、クライアントが望むもの (リリースする機能を選択する機能) に従う Egit を使用したワークフローを持つ他の方法はありますか? コマンド ラインを使用すると問題が解決する可能性がありますが、Eclipse に保持できる場合は、それで問題が解決します。

ありがとうございました

4

3 に答える 3

7

EGitバグ336933はこれらのオプションのサポートに関するものであり、 EGit2.3で修正されました。リリースノートを参照してください。

2.3をまだ使用していない場合、(醜い)回避策は次のようになります。

  • マージする前に、履歴ビューを使用して早送りマージが行われるかどうかを確認してください
  • もしそうなら、無関係なファイルのマスター(またはマージしたいブランチ)でコミットします
  • 次に、マージを実行します
于 2012-07-24T10:20:46.040 に答える
3

Egit 2.3 のリリースにより、Egit はそのオプションをサポートするようになったことに注意してください。

git merge --no-ffEGit 設定としてサポートします。

これでバグ 335091は完了です。

于 2013-02-22T12:54:49.810 に答える
1

JGitは--no-ffを含むいくつかのマージオプションをサポートしていないため、それは不可能のようです。

この投稿を参照してください。これに関するバグレポートがあります。

于 2012-07-24T10:13:23.610 に答える