ソース管理、またはバージョン管理は、ソフトウェアのコードを記述したファイルを変更した履歴を管理しています。
バージョン管理をすることで、これまで作り上げたものを台無しにする心配をせずにコードを編集することができるようになります。コードの変更を無かったことにしたい場合も、前のバージョンのコードに巻き戻すことができます。
また、ソース管理はチームでの開発を簡単に行えるようになります。ある開発者が他の開発者のコードをdiffによって1行づつ見比べることができるので、メインのコードブランチにマージすることができます。
バージョン管理は開発期間、規模、言語に関わらず必須です。すべてのプロジェクトで直ちにGitやMercurialの様なバージョン管理システムを導入するべきです。
開発段階において、開発中のコードを取り出すのがソース管理システムの用途です。
デプロイにはソースコードをパッケージングし、プロダクション環境には一切ソース管理システムを利用しないというケースもあります。しかし、初学者にとってはシステムのインストールパッケージにPythonコードをパッケージングする方法を学び始めるよりも、小規模のデプロイにはソースコードを取り出して行うほうが簡単でしょう。
この2~30年の間様々なソース管理システムが作られてきました。過去にはプロプライエタリなソース管理ソフトウェアが大規模なプロジェクトチームのために作られたり、特定のプロジェクトに対応してきました。しかし、今日では最も巨大で複雑なプロジェクトが実際にオープンソースのバージョン管理システムを利用しています。今日のPythonプロジェクトでオープンソースのバージョン管理システムを使わない理由はありません。主な選択肢は2つです。
GitやMercurialはあなたのサーバにインストールして利用することができますが、ソース管理のホスティングサービスを使うほうが、扱いやすく経済的です。必要に応じて利用するサービスは変更できます。お勧めのホスティングサービスは2つです。
バージョン管理システムを選択しましょう。Web上のリソース、チュートリアルの数、様々なレベルのユーザ層の数からすると、Gitがお勧めです。
変更のコミット、変更の取り消し、履歴から変更箇所を探す方法など、基本的な使い方を学びましょう。
あなたのソースコードが中央のレポジトリにパックアップされているかを確認して下さい。中央レポジトリは、ローカルの開発バージョンが壊れた場合だけでなく、開発段階でも重要なものです。
3つの方法であなたの開発プロセスにソース管理を組み込みましょう。まずはデプロイ時にバージョン管理システムからソースコードを取り出します。次にコードが変更されたらデプロイが起こるようにwebhookやレポジトリのポーリングをしてみます。最後に開発が間違ったら以前のバージョンに巻き戻すことができることを確認しましょう。