質問
バージョン管理システムについてどこから学習すればよいでしょうか?私はこれまで SVN、Team Foundation、Sourcesafe を使用したことがありますが、完全に理解しているとは感じていません。また、チームも理解していないようです。
マスターするために最も重要なポイントは何ですか?これは VCS ごとに異なることは承知していますが、この質問では、Subversion が私が最も知りたい VCS であると仮定できます。
また、可能であれば、そのテーマに関して役立つと思われる本をお勧めしてください。
解決
リビジョン管理に関するウィキペディアの記事は、始めるのに最適な場所です。
同僚に教えようとしたとき、最後に用語を理解してもらうことが、ソース コード管理テクニックを紹介し始めるのに最適な方法であることがわかりました。
ブランチが何なのかわからないですか?それらがどのように機能するかを調べてください:)
無料のオンライン破壊本が次の場所にあります。 Subversion によるバージョン管理 貴重な参考資料となります。
他のヒント
これは便利だと思いました ソース管理 HOWTO (Eric シンク著)
ソース管理システムに関して学ばなければならない最も重要な点は次のとおりだと思います。
- 小規模で頻繁なチェックイン/コミットの価値
- タグ付け、分岐、マージ
- ロールバック
- 紛争解決
- 排他的 vs.非独占チェックアウト
- 継続的インテグレーション
- ソース管理システムに対するテスト駆動開発と自動単体テスト
- フォーク
これらの主要な概念を理解していれば、ソース管理に関して知っておくべきことのほとんどはこれで済みます :)
このテーマに関する無料の電子書籍がいくつかあります。試す:
Subversion によるバージョン管理: subversionによるバージョン制御
Subversion バージョン管理 (PDF): Subversion のバージョン管理
私は読んだことがありますが、前者をお勧めします。「Subversion Version Control」はまだ読んでいませんが、かなり詳しく書かれているようです。
あなたの質問に答えるには:マスターすべき最も重要なポイントは次のとおりです。チェックインとチェックアウトのプロセス全体を完了し、古いバージョンにロールバックし、差分を実行した後、分岐について検討することをお勧めします。ブランチは、大規模な変更の途中で突然バグ修正を実行し、作業中の作業を混ぜることなく本番環境にデプロイする必要があるという苦痛に対処するのに役立ちます。
まずは Subversion のドキュメントから始めるのが良いと思います。Wikipedia は「基本的な」観点しか扱っていないため、あまり役に立たないことがわかりました。
の中に 転覆の本 アレックスが言ったように、私は特に第 1 章をお勧めしますが、すでに Svn の経験がある場合はレベルが低すぎるかもしれません。第 4 章では分岐とマージについて詳しく説明しますが、かなり技術的です。
私を大いに助けてくれたのは、 TortoiseSVN ドキュメントの日常使用ガイド;最も重要な操作をチュートリアル形式でカバーしています。
あなたが把握する必要がある最も重要なことは次のとおりだと思います 分岐、マージ、タグ付け. 。これらを理解するには時間と練習が必要なので、実験できるようにローカル リポジトリに小さなペット プロジェクトを作成することを強くお勧めします。システム全体が diff ベースであることを認識することが重要だと思います。マージとは、コードを自分で修正するのではなく、あるブランチで行われた変更を別のブランチのコードに自動的に適用することに他なりません。衝突のようなもの(理解するのにかなりの時間がかかりました)は、その結果にすぎません。
しかし、もちろん、私もまだ勉強中です:)
私も、あなたと同じように、SVN や SourceSafe を 100% 快適に使用できると感じたことはありません。
チェックアウト マーキュリアル. クイックスタート そして カンニングペーパー
また素晴らしい DongWoo Lee からのチートシート (彼のサイトがダウンしているようだったので、スキャンして私のサイトにアップロードしました)
Mercurial を使用すると、すべてがはるかにスムーズで簡単に思えました。他のコマンドとコマンドがそれほど変わらないため、理由はわかりません。
あなたがバージョン管理システムについてどの程度の経験をお持ちかわかりませんが、この概念について予備知識がない人は、本書の最初の数章を読むことをお勧めします。 転覆の本. 。そこで説明されている内容の一部は Subversion に固有のものですが、概念の多くはバージョン管理システムとその操作方法にとって「普遍的」です。
バージョン管理システムを使い始める前に、バージョン管理システムの背後にある主な概念と理論的根拠を理解しようとする努力をすることが非常に重要だと思います。開発者が基礎的な概念を理解していないため、「高度な」または「不要な」機能を使用することに意味がないか、あるいはそうであるために、システムの機能の小さなサブセットしか使用していないことをよく見かけます。何かを壊したり、プロジェクトに問題を引き起こすことを恐れて、単にそうすることを恐れているだけです。
過去に多くの開発者とともにこの現象を経験したので、私は最近、自分の考えをまとめました。 バージョン管理のベストプラクティス 私のブログで。
これを読む: ソフトウェアはどのように進化するのか
私見では、構成管理に最適なネットワーク リソースは次のとおりです。 ACMEプロジェクト ブラッド・アップルトン著
すべての SCM パターンとアンチ パターンについて読む必要があります。すべての SCM 技術用語はこのサイトで明確に定義されており、分岐テクニック、アジャイル SCM、その他の重要なものに関する記事が多数あります。
おそらく、これにより、特定のバージョンのツールを処理するための十分な理論的背景が得られます。
Subversion の本に関しては、おそらくそれが公式になるでしょう。 転覆の本 それは上で述べたものです。オンラインで無料で入手できるほか、ハードコピーを購入することもできます。
私見ですが、これは 本:SCM パターンに関する Berczuk の本
Eric Sink による例によるバージョン管理 良いし、フォローしやすいです