回答:
それでは、ほとんどのソース管理システムがそれらをブロブとしてのみ保存する場合はどうでしょうか?ほとんどの人はドキュメント間の差分についてリッピングしませんが、もしそうすれば、いつでも2つのバージョンを取得し、オーサリングシステムの機能を使用してそれらを差分できます。
ハードディスクの空き容量が1ギガバイト/月であるため、ソース管理システムにドキュメントを配置しない正当な理由はなく、有用である可能性があります。私の個人的な好みは、インラインマークアップを使用してドキュメントを書くことです。たとえば、WikiマークアップやDocBookです。これにより、ドキュメントの比較と改訂に強力なツールを使用できます。
仕様書のバージョン管理は間違いなく価値のある目標です。
しかし、あなたの仕様書はテキストのみでプレーンテキストファイルにありますか?もしそうなら、これは良い解決策かもしれません。
そうでない場合、ソース管理はおそらくそれらに適した場所ではありません。ソース管理はバイナリファイルには不適切です。
通常、プレーンテキストファイルは、書式設定やクイックビューには適していません。そのため、バージョン管理機能付きのWikiを使用する方がよいでしょう。
間違いなく。文書がバイナリ(たとえば、単語文書)として保存されるという問題は厄介です。良い回避策は、Tortoiseツール(SVNとMercurialを試しました)のいずれかを使用する場合、docdiffを選択できる「Visual Diff」を選択できることです。docdiffを使用すると、すべての変更を色やもので確認できます:-)。主な欠点は、変更を加えるたびに、ドキュメント全体が(変更だけでなく)再度コミットされることです。しかし、テキスト文書は通常巨大ではなく、おそらくそのスペースが主な問題ではないことを考えると、これは問題ありません。
Tortoiseを使用せずにdocdiffを使用できると確信しています。試したことがないだけです。
議論すべき代替アプローチがあります:BDD
実行可能な仕様での振る舞い駆動開発を検討してください。仕様は、一連の指定された-いつ-テキストファイルに格納される一連のステートメントに簡素化されます。CucumberやSpecFlowなどのBDDツールは、これらのテキストファイルを実行可能なテストに変換し、ビルドツールで実行できます。
キュウリ:http : //cukes.info/-Rubyの BDD
SpecFlow:http : //www.specflow.org/-.Netの BDD
SpecFlowなどのツールを使用したワークフローの簡単なデモについては、Rob ConeryのSpecFlowウォークスルーをご覧ください:http ://tekpub.com/view/concepts/5
これで、コードのバージョン管理だけでなく、仕様、および継続的統合ツール(TeamCity、CruiseControl、Hudsonなど)が、すべての仕様がすべてのビルドで有効であることを強制しています...それはあなたにとって価値がありますか?