ソフトウェア設計及び演習2017

svn::簡単な使い方

svn超簡易マニュアル

基本的な概念,言葉の意味

  • サブバージョンの使い方を参照のこと.
  • リポジトリ,ワーキングコピー,リビジョン,チェックアウト,コミット,などの単語の意味を理解すること.
    • 普段の作業は,リポジトリからチェックアウトしたワーキングコピーの方を使う.リポジトリそのものには手を触れない
    • ある程度の完成度まで到達したら,ワーキングコピー(中の修正したファイル群)の内容をリポジトリに反映させる.これがコミット.
    • コミット時には,どのファイルを,どのように修正したか,といった内容をログに残しておく.
    • 別の人間が,同じファイルを別々に修正して,それぞれでコミットしようとすると衝突(コンフリクト)する
      • コンフリクトは,手動で対処する以外に方法はない.

ワーキングコピーの取得

コピーしたいディレクトリに移動してcheckout. 仮に,~/csd 以下に, proj という名前のワーキングコピーを展開するとすると,

% cd ~/csd
% svn co https://svn.cis.iwate-u.ac.jp/svn/csd/proj

ワーキングコピーの更新

複数の人間で開発を行なう場合,編集作業を行う前に必ず ワーキングコピーに(リポジトリの)最新情報を反映させる必要がある.

% cd ~/csd/proj
% svn update

ワーキングコピーの状態確認

ワーキングコピーの状態を確かめるには, (ワーキングコピーが存在するディレクトリ以下で)

% svn status

とする.先頭のマークで状態が分かる.

?
どんな状態か分からない.(例えば,ワーキングコピーディレクトリ下に新たにファイルを作成したが,svn addしていない場合,とか)
A
追加
D
削除
C
衝突
M
変更
!
バージョン管理下で,ファイル,ディレクトリが不完全,または失われている.svn のコマンド以外でファイルを消去したりするとよく起こる.svn revertなどを使って回復できるが,revertコマンドは「変更を破棄してしまう」という意味で本質的に危険なので,多用しないこと.(!フラグが出ないように気をつけてファイル管理すること)

ワーキングコピーに対する修正変更を,リポジトリに登録

自分が加えた修正をリポジトリに反映させるには,次のようにsvn commitを実行する.

(proj内のxxx.cを修正して登録する場合の例)
% cd ~/csd/proj
% emacs xxx.c
% svn commit -m 'コミットメッセージ' 

「コミットメッセージ」には,何を変更したかを書いておく(他の共同開発者にわかるように

  • commitする際には必ずメッセージが必要だ,と覚えておこう.

ファイルやディレクトリを新規に追加する

ディレクトリ(dir1)を新たに追加したい場合は,

% svn mkdir dir1

のように,svn mkdirとすること.また,ファイル(a.txt)を新たに追加したいときは, リポジトリに反映させるために

% svn add a.txt

のようにsvn addとすること.ただし,これらが真にリポジトリに登録追加されるのはcommitした時点なので注意. (commitするまではリポジトリは以前の状態のまま)

ファイルやディレクトリを削除する

% svn remove a.txt

これも,実際に削除が反映されるのはcommit時なので注意.

ファイルやディレクトリの名前を変更する

% svn move a.txt b.txt

これもcommitすると反映される.

変更内容のチェック

自分が変更したファイルと,リポジトリに登録されている最新版とを比較するには,

% svn diff a.txt

とする.

作業ログの閲覧

開発履歴は log オプションで確認できる.(ここで表示されるメッセージは,commit時に -m オプションで書きこまれたもの)

% svn log a.txt


最終更新日:2017/04/03 09:14:14