雑種のポメラニアン

フリープログラマーの日記とか人生観とか綴るよ

コメント募集

githubにRails3対応Redmineを公開したら
Redmine本家のコミッタから連絡があって
しばらくやりとりしてたのだが
結論としては本家は何がやりたいのか意味不明。

以下に赤字:Redmineコミッタ、青字:私
で部分的にやりとりを公開します。

いや、私はRedmine本家のコミッタです。

まずはじめに、RedmineリポジトリのマスタはSubversionです。
githubにあるのは「ミラー」です。
https://github.com/edavis10/redmine
このミラーに、「official」と書かれていますが、2011年6月現在、「公式」ではありません。

リポジトリがgitであれば、マージすれば良いでしょう。
しかし、Subversionに反映するには、gitであれば、rebaseする必要があります。

ですので、採用うんぬんではなく、このままでは、Subversionにコミットすることが不可能です。

まず、オープンソースで本家を追随する方法として、
Git/Mercurialの場合、常に、本家のtrunkの最新版とマージするという方法があります。
このリポジトリはそのような状態になっていません。
そのような状態になって、はじめて、検討するか否かの段階になると思います。

仮にそのような状態になっても、Subversionがマスタの本家に取り込むとしたら、diffを取るしかないです。
それには、このリポジトリは、改変規模が大きすぎます。

次に、Subversion上に「ブランチ」を作る必要は無いと考えています。
それは、Git/Mercurialのミラーをフォークしたものが、Subversionにとって、ブランチだからです。

Rails3対応に関しては、実は、このリポジトリのコミットを見て、少し入れています。
http://www.redmine.org/projects/redmine/repository/revisions/6061
このように、既存の環境と互換性を確保しつつ、どかんと上げるのが筋だと思います。

オープンソースでは、プロジェクト毎に方法論があります。
Redmineは、当然のことながら、Redmine上にチケットを作成し、コンセンサスを得て、
誰かがしきって、本家に取り込むという流れになります。

自分が大きく関わったものとして、以下のものがあります。
http://www.redmine.org/issues/4455
http://www.redmine.org/issues/61

61のPDFの方は古典的なオープンソースでのパッチの提出と取り込みを行っています。
CJK以外では動くことは確認できているが、CJKでの確認ができないので、先に進まないという状況が、
CJKで動かす明確な答えが提出されたので、ではやろう、という流れになっています。

Rails3に関しては、その明確な答えが出ている状態にすらなっていない、ということです。

このパッチの提出と取り込みは正直しんどいです。
それを、分散型VCS時代に即した方法が、4455の方です。

あとの質問に対する答えは、とにかく、Redmineのtrunkの最新のものと「同期」されていない限り、何もできない、
が答えです。
RedmineのマスタリポジトリがGit/Mercurialであれば、マージをするのが、もっとも単純な方法ですが、それすら行われていない、ということです。
さらに、RedmineのマスタリポジトリSubversionなので、rebaseなりしなり限り、議論もできない、ということです。

このpull requestは何ですか?
GoncalosSilvaさんのリポジトリ
marutosiさんのリポジトリをマージしたのですか?

私、marutosiさんと作業を開始する前は
GoncalosSilvaさんのリポジトリをforkして作業してたんですけど
Jeremyさん派生のリポジトリは本家に取り込まれないものと思ってました。

今回のマージの経緯と結果どうなるのか教えて下さい。

ここを熟読してくださいと言ったはずですが、まだ理解できていないのですか?
Pro Git 分散作業の流れ
http://progit.org/book/ja/ch5-1.html

ツールとしてのGit/Mercurialに本家という概念はありません。
誰がどこのリビジョンをpull/pushしようが関係ありません。
それが分散型です。

Git/Mercurialで開発している人は全員それを理解しています。

今まで本家のSubversionとマージできないと検討の対象にならないという
話だった様な気がするのですが
本家という概念がなくてどのリビジョンでも使っていいということなら
私の考える最短の方法でRails3対応します。

本当に何も理解していないのですね。
最初から、merge, rebase, cherry-pickいずれも行われていないものは考慮に値しないと言い続けているはずです。

ここにMergedとStraight revisionsの2つをわざわざ用意しているのも理解していないのですね。
http://www.redmine.org/issues/4796#note-16

はぁ?
「merge, rebase, cherry-pickいずれも行われていないものは考慮に値しない」

「誰がどこのリビジョンをpull/pushしようが関係ありません。
それが分散型です。」
って矛盾してないの?
Redmine本家のmarutosi氏の言うことが全く理解できません。
私がおかしいのでしょうか?

とりあえず私から

私もそろそろmarutosiさんとやりとりするのに疲れて来ました。
付き合い切れないと思ったら無視してください。

On 2011年06月27日 17:00, marutosi wrote:
> 本当に何も理解していないのですね。
> 最初から、merge, rebase, cherry-pickいずれも行われていないものは考慮に値しないと言い続けているはずです。
>
> ここにMergedとStraight revisionsの2つをわざわざ用意しているのも理解していないのですね。
> http://www.redmine.org/issues/4796#note-16
>
本家のissuesを気にかけてませんでした。
済みません。

https://github.com/marutosi/redmine/tree/rails3.1-merged
を落としたのですがどう見てもRails2.3アプリにしか見えません
Gemfileにも
gem 'rails', '2.3.11'
と書いてあります。
これのどこが「Rails3.1-merged」なのかさっぱり理解できないんですけど
このリビジョンは何なんですか?

と返事してから音沙汰無しです。

私としてはJeremyさんが本家を無視してRails3対応した気持ちがよく理解できました。

Rails3対応する技術力もない人間が本家のコミッタだからという理由だけでforkしまくってたら、そりゃ混乱しますよ!
本家の人間は分散型開発を言い訳にして、他の人間に開発を押し付けるのを正当化してるだけとしか思えません。
正直Redmineの将来は明るくないと思います。