0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VCS入門:2章 VCSでできること

Last updated at Posted at 2013-10-16

↑目次 | ← 1章 VCSのない世界

2章 VCSでできること

VCSのない世界で何が起きるかイメージ出来たところで、VCSで何ができるのかを見ていきましょう。

VCSの力

VCSの能力は、主に次の2つです。

  1. 履歴を残す
  2. 作業の競合を防ぐ

1. 履歴を残す

VCSでできることの一番大きなものは「作業履歴を残すこと」です。これは、言い換えると「誰が」「いつ」「何を」したかが残るということになります。

日時 コメント 作業者
4/14 10:14 ○○機能を追加 田中一郎
4/14 09:34 △△機能のバグを修正 鈴木花子
... ... ...

表2-1 履歴のイメージ

なお、この「履歴」を管理する場所を「リポジトリ」と呼びます。また、履歴にはその履歴の内容を表すメッセージを付けることができます。

履歴が残ると何ができるのか。大まかには次の3つができるようになります。

  • 参照
  • 再現
  • 分岐

一つずつ説明していきましょう。

(1) 参照

履歴をたどることで、誰がいつ何をやったかを確認することができます。一般的なVCSでは履歴の検索機能もありますので、簡単に対象となる履歴を参照することができます。

VCSのない世界では何が原因でテスト環境が壊れたのか、メンバーの記憶などを頼りにやらざるを得なかった作業が、VCSを使うことで「記憶」ではなく「記録」を元に行うことができるようになります。

また、変更されたファイルを指定して履歴を調べることもできる為、作業効率が大幅にアップします。

(2) 再現

VCSを使うと、履歴を参照するだけでなく、その時点の状態を再現することも可能です。つまり、動かなくなったとしても正常に動作していた状態に巻き戻せる、ということです。

この特徴を利用して、動作しなくなる一つ手前に戻り作業をやり直すといったことや、バグが発生する時点の成果物を、他のメンバーに確認してもらう、といったことが可能になります。

(3) 分岐

過去の状態を再現した上で、そこから別の変更を加えることで、履歴を分岐することもできます。つまり、複数のアプローチにより、作業を行うことができるということです。

このことから、動作しなくなる手前の状態を元に別の変更を加えていき、それぞれのパターンをメンバーに評価してもらう、といったこともできるようになります。

2. 作業の競合を防ぐ

VCSのもう一つの大きな機能が、「作業の競合を防ぐ」です。VCSを使うことで、誰かが先に変更していればそのことを検知し、VCSが競合箇所を知らせてくれます。

競合検知イメージ

図2-1 競合検知イメージ

VCSのない世界では、同じファイルを複数人で同時に変更すると、後勝ちになってしまいます。すると、前に変更した人の変更内容が失われてしまい、時として動作不良を引き起こします。

しかし、VCSではこういったことは起こらず、誤って他のメンバーの変更内容を消してしまうことがありません。

また、使うVCSによっては、ファイル内の変更箇所を解析し、自動的に自分が行った変更内容と統合(マージ)する機能を持っています。この機能を活用することで、他のメンバーと効率よく並行して作業を進めることができるようになります。

VCSの特徴をつかんだところで、実際にVCSがある世界では、どのように開発が進むのか、次の章でシミュレーションしてみましょう。

→ 3章 VCSのある世界

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?