FreeBSD の CVS repository には, 4.4BSD-Lite 以降これまで開発され続けた履歴が残されています (FreeBSD のバージョンで言うと 2.0-RELEASE 以降になります).で, CVS 上における branch と,実際に出た RELEASE バージョンの関係は, いったいどうなっているのか,というのを src/sys/conf/newvers.sh に残された記録を用いて追いかけてみます.
これを見ると,branch の切り方は(細かく見ると)ころころ変化している, ということがわかります.しかし,基本的には「branch を切って,そこから出す」 という方針はかわっておらず(3.0-RELEASE という例外がありますが),しかも, 2.1-RELEASE あたりからこの方針はかわっていないことがわかります. で‥‥この辺の経緯は わかった後に src/share/misc/bsd-family-tree (/usr/share/misc/bsd-family-tree) を見ると,だいたいの感じがつかめます.
さらに、branch として認識できる 2.1, 2.2, 3 の 3 つ (4 はまだ開発が積極的に進んでいるので省略)について, 「その branch が存在していた期間」を release バージョンが出た時期で みると以下のようになります.なお,日付は http://www.freebsd.org/releases/ にある奴をそのまま使っています.
こうして見ると,意図的なのかどうかはわかりませんが, 「その branch から出た最初のリリースから最後のリリース(正確には, 次の branch から最初のリリースが出るまでに出たリリース)が出るまでの期間は, 約 1 年半である」 ということがわかります. ここ最近リリースがいっぱい出ている印象を持たれていることが多いようですが, 実は 2.1-RELEASE のころから考えると,そんなに変っていないと言えそうです. さらに,仮にもし同様のパターンが 4.x-RELEASE にあてはまるならば, 5.0-RELEASE が出る直前の 4.x-RELEASE (4.4-RELEASE あたりになるのかもしれませんが)が,2001 年の夏位に出て, それから数ヶ月後に 5.0-RELEASE が出る,ということになります.このことは, 過去 jkh@FreeBSD.org 氏が 5.0-RELEASE の時期について言っている話と, さほどかわりません.
branch と RELEASE バージョンとの関係について見てきましたが, この他にも CVS リポジトリには, いろんな branch や tag が開発の記録として残されています.また, 各変更については,コードを書いた人によるコメントも残されています. 手元に CVS リポジトリがなくとも, CVSweb 等で手軽に参照することもできますので, 時間があれば,いろいろ見てみるのもおもしろいかもしれません.
current.jp.FreeBSD.org で現在 build 対象としているのは, RELENG_3, RELENG_4 そして HEAD の各 branch です.基本的には毎日, その branch における最新のソースコードを使って build しています. スケジュール等についてはトップページに書かれていますので確認してみてください. もちろん,将来 RELENG_5 (5.x-RELEASE 用の branch)が作られたあかつきには, この branch も対象にする予定,です.