集中管理型のバージョン管理システムで広く利用されているSubversion(svn)。

そもそも使い方がよくわからないという方やインストール方法を知りたいという方も多いのではないでしょうか。

今回はSubversionの特徴やインストール方法、設定方法を詳しく解説していきます。

分散型管理システムであるGitとの違いも確認していきましょう。

Subversion(svn)とは?

Subversionとはコードなどを集中管理するシステムです

一般的に使われていたCVSの問題点を解決するために作られたシステムといっても過言ではありません。

これまでオープンソースソフトウェアの開発にはCVSが利用されてきました。

広く利用されていたため他のエンジニアも利用しやすいメリットもありましたが、現在ではオープンソースソフトウェアにもSubversionが一般的に使われるようになっています。

そのためエンジニアとしてはSubversionについても理解しておく必要性が出てきました。

これからシステムのコード管理を集中的に行いたいのであればCVSと合わせてSubversionも覚えておくのが得策といえるでしょう。


Subversion(svn)の特徴

以前まではCVSが使われていたにも関わらずSubversionが利用され出したのには以下の様な理由があります。

  • ディレクトリの移動や管理が少々難しい
  • 不可分な更新

上記を解決するため、そしてより効果的な開発環境のためにSubversionが開発されました。

そんなSubversionの特徴をご紹介していきます。


特徴①複数のエンジニアがアクセス可能

Subversionは複数のエンジニアがアクセスできるアーキテクチャを採用することでより効率よくコード管理や開発が行える仕様になっています。

直接的にコード管理を行えるため複数のエンジニアで管理する際には利用しやすいのが特徴です

しかし複数でアクセスできることによるデメリットも存在するので注意は必要になります。


特徴②より多くの機能が搭載されている

Subversionには複数のエンジニアで開発するにあたりより利便性を高めるための機能がたくさん搭載されています。

例えば他のエンジニアがリポジトリからデータの引出しや保存を行っている際に、自分のデータは他の自分用のディレクトリに保存されるなど競合しても勝手に上書きされない工夫が行われている特徴も持ち合わせているのです。


Subversion(svn)のインストール方法をチェック

Subversionの魅力について理解が深まったところでインストール方法をチェックしていきましょう。

Subversionは手順通りにインストールを行えば問題なく使用することができます。


Apache Subversionにアクセス

まずはSubversionが利用できる環境づくりのため、Apache Subversionのサイトにアクセスします。

Apache Subversion公式サイト

サイトに移動できたらインストーラーをダウンロードしてください。


パッケージの選択

設定を簡単にそして利用しやすくするために Apache HTTP Serverなども一緒にインストールしておくとすぐに利用を開始することができます

Apache HTTP Server公式サイト

httpによるリポジトリのアクセスが行いやすいだけでなく暗号化やBasic認証なども行うことができるためおすすめです。


自分のPCにあったものを選ぶ

Subversionであれば、どのSubversionでも構わないというわけではありません。

きちんと自分のパソコン上で動作するものを選択することが大切です

インストーラーを選択する際には、まず自分のPCのスペックなどを確認してからインストーラーのダウンロードを行いましょう。

パソコンのスペックは、Windowsであればマイコンピューターから、Macであればシステム環境設定から確認できます。


インストーラーを開いてインストール

自分のパソコンにあったインストーラーが選択できたら、あとはダウンロードしたインストーラーを解凍してインストールを行うだけとなります。

インストーラーを開いた後はとても簡単です。

画面の流れに沿ってインストールを進めるだけですので、特に難しい作業ではありません。

流れに沿って完了が表示されればSubversionのインストールの完了です。


Subversion(svn)の設定を確認

Subversionはただインストールしただけでは使い勝手がよくありません。

次にSubversionを使いやすくするための設定を行いましょう。


コマンドで簡単にインストール可能

Subversionの設定は非常に簡単で、コマンドを利用すれば様々な機能を搭載させることができます。


Redhat系:$ sudo yum install subversion


Debian系:$ sudo apt-get install subversion


最終的に動作するかをチェック

コマンドプロントを開き「C:\>svn」と入力してみましょう。

svnについての返答があれば問題なくインストールできている証拠です。

ちなみにSubversionはコマンドプロントから使用しますが、利用できない場合にはうまくインストールできていない可能性があるのためチェックし直す必要があります。

それでもよくわからない場合には再インストールするといいでしょう。


Subversion(svn)のリポジトリ用ディレクトリの作成

コマンドプロントで起動して動く様であれば土台が揃ったといえます。

ちなみにこの状態ではまだプログラミングは打てません。

Subversionで開発を続けるためには次の手順が必要になります。

それがリポジトリにディレクトリを作成することです

リポジトリにディレクトリが作成できないと作業の保存ができません。

バージョンの管理を行うためにディレクトリの作成を行いましょう

もちろん開発を行う前に作成しなければなりませんが、この作業は通常1回しか行いません。

逆をいうと1度作成すればほぼ作成の必要はないのです。

C:\>mkdir work

C:\>cd work

C:\work>mkdir repos

作成方法は上記をコマンドプロントに入力するだけなので、簡単にディレクトリ作成ができます。

作成しておかないとのちのち困ることになるため面倒と思わず作成しておきましょう。


作業用リポジトリの追加

続いて作業を続けるための他のディレクトリも作成していきましょう。

開発するにあたり以下のフォルダはリポジトリに追加しておくのがセオリーです。


  • Trunk
  • Tags
  • Branches

新規ファイルを作成し、その上にフォルダを追加していきます。

ただし追加するフォルダに関しては自分で作成することも可能です。

また自分で作成するのは自信がないという人は既存のフォルダを利用することもできます。

ちなみにWindowsでリポジトリのパスを設定する際にはURL表記になっているので注意が必要です。

パスを入力する際に間違えてしまった場合はエラーの原因になってしまうため気をつけましょう。

入力する際にはきちんと確認しながら入力しなければなりません。

インストール時にすでに搭載されている場合もあり、消去しても問題のないフォルダも存在します。

中をしっかりと確認しながら不要なものは消去し、必要なものを確実に取り入れましょう。

Subversion(svn)の基本用語

Subversionをインストールしたら、使える基本用語を覚えておくことは重要です。

基本用語を覚えることでより作業効率をあげられるためいくつか基本のコマンドをご紹介していきます。


チェックアウト

リポジトリからデータを取り出して点検することをいいます。

チェックアウトという言葉のニュアンスとずれて感じるかもしれませんがよく利用される単語です。

リモートソースを自分のPC(ローカル)に取り出してもってくる行為をチェックアウトということを覚えておきましょう。


コミット

コミットは言葉の意味そのままで、完遂することを指します。

要約すると修正した内容が本当に信頼できるものでリリースしても問題ないという約束を交わすことです。

それ以外にも修正ログが残されている状態のことをコミットと呼びます。

問題のあるものはどこなのか、ログをチェックしながら確認する場合もあるでしょう。


マージ

複数のものを混ぜるという意味があり、一般的に競合している際に利用され2つのものを1つにすり合わせる行為をさします。

しかしこの場合、競合である必要もありません。

本来は2つのものを1つにするという概念ですのでマージと言われたら何かと何かを掛け合わせると思っておきましょう。


リバート

率直にいうとリバースのことです。

ブランチを特定の一まで巻き戻すことを挿しています。

名前もわかりやすく理解しやすいためよく使われる基本用語です。

エンジニアを目指す方は必ず覚えておきましょう。


Subversion(svn)で初心者が覚えておきたいポイント

初心者がSubversionを利用する場合、覚えておきたいポイントがいくつかあります。


適切なものをダウンロードする

自分のパソコンにインストールした上でSubversionを利用したいのであれば、自分のパソコンや開発スタイルにあったものを選ぶのがおすすめです。

自分に合ったものを選ばないと使いにくくなってしまうため注意しましょう。


基本用語は熟知しておく

基本用語はいくつかありますが、これを覚えていないと他のエンジニアとの会話を進めることができなくなってしまいます。

のちのち用語が覚えられていないのは致命的です。

最初から開発を容易にできるわけではないため、エンジニアを目指すのであればはじめのうちに基本用語は絶対に覚えておくようにしましょう。


PCのスペックは良いものを選ぼう

一般的に新しいものをダウンロードするとPCが少し重くなってしまう可能性があります。

そのためSubversionを導入するのであればスペックの良いPCを購入しておくのがおすすめです。

かくつきなどでイライラすることもなく快適に利用できます。


Subversion(svn)とGitの違いをチェック!

Subversionはとても優秀な集中型のシステム管理ですが、分散型として人気をあつめる管理システムGitもあります。

そもそも何が違うのか、ここでは簡単に違いをご紹介していきます。


Subversitonは集中型、Gitは分散型

2つの大きな違いといえば集中型であることと分散型であることです。

Gitが登場してからというもの、海外でも人気の管理システムとなっています。

SubversionはSVCの面倒な部分を簡略化したものなので管理が容易ですが、Gitはローカルリポジトリも上手に利用する必要があるためやや操作が複雑です。

Subversionは構造がわかりやすく理解しやすいのが大きな特徴といえるでしょう

またリビジョン番号がわかりやすいことも特徴で、Gitよりも優れている点となっています。

一方Gitはブランチとマージが行いやすいだけでなく、ローカル上でコミットすることができるためエンジニア全員で利用している共有のコードを汚さずにすむのがメリットです。

ブランチとマージに関してはSubversionよりも高速で行うことができるので2つのデータを合わせるという動作がとても得意であるといえます。


いまだ人気の高いGit

Gitは分散型でやや操作が難しい一面がありますが海外でも人気のコード管理システムのため、日本でも利用しているエンジニアが少なくありません。

共有のコードを汚すことなくコミットできるので他のエンジニアに迷惑がかかりにくいのも人気の秘密といえるでしょう

開発の効率化をはかる企業が増えてきたことでより利便性の高いコード管理システムが注目を集めています。


Gitについては以下の記事でも詳しくご紹介しています。宜しければ、ぜひ併せてご参照ください。

【Git入門】入門者向けに使い方を解説!GitとGitHubの違いとは?ダウンロード、インストール方法も紹介!

GitHubの概要とメリットを徹底解説!初心者に必要な事前知識とは?基本の使い方も詳しく説明。料金とダウンロード方法も紹介

GitLabの運用方法を入門者向けに解説!GitHubとの違いも比較。ダウンロード、日本語化する方法も紹介!


コマンドにも違いがある

コマンド内容 Subversion/Git

  • リポジトリの複製 checkout/clone
  • コミット commit/commit
  • コミット内容の確認 cat/show
  • ファイルの変更の取消 revert checkout/reset
  • ブランチの作成 copy/branch
  • ブランチの切り替え switch/checkout
  • リモートへの反映 commit/push

上記のように利用できるタグにも違いがあります。

Gitを元々利用していてSubversionに変更しようとしている方はそれなりに覚え直す必要があるでしょう。

Subversionはより簡単に操作できる仕様になっているためGitを習得しているのであれば覚えるのは難しくないかもしれません。


まとめ

今回はSubversionの概要からインストール方法、Gitとの違いなどをご紹介してきました。

Subversionはとてもシンプルで使いやすいのが特徴のコード管理システムです

誰でも利用しやすいため好まれていますが、現在のところGitの方が人気を集めています。

とはいえエンジニアとしては必ず覚えておきたい部分であることに変わりはありません。

しっかりとSubversionを理解して魅力的なシステム開発のために利用してみてください。


toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。

エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。