最近リリースをうけもっているため,trunkを「常に」リリース可能なものに保つようにすると開発に不効率さを招くという危機感がある。これを解決するために第一に考える手法は,分散リポジトリだと思う。各チームで「リリース対象にならないレベルの」コミットを行うリポジトリを持ち,リリースに回していいものだけをtrunkにあたるサーバ上のリポジトリにpushする,ということをやるのが一番いいんだと思う。それ別に分散リポジトリと関係ないのでは。@t_yano最近リリースをうけもっているため,trunkを「常に」リリース可能なものに保つようにすると開発に不効率さを招くという危機感がある。これを解決するために第一に考える手法は,分散リポジトリだと思う。@t_yano各チームで「リリース対象にならないレベルの」コミットを行うリポジトリを持ち,リリースに回していいものだけをtrunkにあたるサーバ上のリポジトリにpushする,ということをやるのが一番いいんだと思う。それ別に分散リポジトリと関係ないのでは。@t_yano亀mercurialはなかなか良いという情報があるのだが,亀Gitはどうなんだろう。私はコマンドラインでもいいんだけど,チーム全員そうしろというのも辛いかもしれんので,亀シリーズ使えれば楽。個人的にはmercurialのほうが簡単だと思うが,Git好きのほうが多い。ヒエラルキー構造を持って開発する、というところに分散リポジトリならではの柔軟さが生かせるということじゃないかと。チームごとにコミット可能なブランチをもって,リリース可能ブランチも用意して適時そっちにマージしてくれという手もあるが,実感としてそのマージはけっこうしんどい。いうかsvnのマージはなんかしんどい。Subversionのマージがしんどいのはありますが、分散リポジトリでもTrunkにコミットしてビルドが破壊されるのは同じだと思います。分散リポジトリが作られた本来の用途とかは今の件ではあまり重要ではなく(まあただの道具だし),今の問題を解決するために一番使いやすそうな道具を探したら,どうも分散リポジトリっぽいな,という話。いやそもそも「コミットする先がtrunk」という状態をやめたい,という話でして。テスト完了してなくてもコミットしたいので,そういうリポジトリとテスト済みリポジトリを分けたい。「テストが済んだものは全部trunkにpushしておいて」で済みそう。そりゃまあマージはもちろん発生しますが。言わんとしているところはわかりますが、それぞれ独立してテストが通ったコードがマージしたらテストがこけるというのは往々にしてあるわけで。そりゃーHudsonが落ちたら巻き戻せって話になるでしょうねえ。ローカルに作業用としてコミットしたい、とかほかの人の変更を気軽に取り込みやすい、というところで評価しているのはわかりますが、trunkを「常に」リリース可能なものに保つには、たりないはずです。@t_yanoあとまあ,いまのプロジェクトだとサブシステム単位で別々のアプリに切り分けられてて結合部分は少なめってのもあるかもね。結合で問題が起きたら「リリース中止」になるが,格サブシステムのtrunkが「リリース不能状態」と「リリース可能状態」を往復し続けるよりはいいかな。どっちかというと、ミスったのを検知するのが大事かと。その前に戻せばリリース可能な状態になるわけですし。んーどこを指摘されているのかがよくわからん。いまよりマシにしたい。trunkは常にCIでチェックしてるので落ちたらメールですぐ分かるようにしてる。状態でのコミットがしづらい(テスト未完のものがコミットされることになるので),しかし開発上コミットはばしばし行いたい,という部分にある。分散SCMを使うことで楽になる、というのはわかっていますよ。別に分散リポジトリにしたら自動的に望んだ環境が手に入るとは思ってないので。望んだ環境を手に入れるのに使えそうな道具だね,という話なんで。@t_yano「道具はどう使うか」という点は同意してる,というか,道具を採用したら自動的によくなる,なんてのは期待してないし信じてもいない。@t_yanoそれって「struts使えばうまくいくはず」「rails使えばうまくいくはず」ってのと同列だと思ってるので,別に分散リポジトリを使うことが目的ではない。いうか,使ったところで役立つシーンがないのならいらないし。trunkを「常に」リリース可能なものに保つようにすると開発に不効率さを招く、というのは運用の仕方の話で、そもそもリポジトリの種類とは関係ないはず、ということが言いたいのですよ。svnでうまい方法があるなら教えて欲しいです。私はうまい方法が見つからなかったのでそっちにながれてるだけで,あればそっちに流れますよ。問題が解決するならなんでもいいです。矢野さんが問題にしていることは、ローカルコミットを行いたいということと、マージをできるだけ楽したい、ということじゃないかと。それだと分散SCMですよね、という話になるはず。