2006-03-28 (Tue)

* トランクやブランチなどのバージョン管理用語の意味

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [VSS] [Subversion]

バージョン管理システムで使われる用語の意味のメモ。主に CVS、Subversion、VSS (Visual SourceSafe) で使われる用語が対象。

- リポジトリ repository

バージョン管理の履歴が保存されているところ。リポジトリのバックアップだけはしっかり取っておこう。

- ツリー tree

リポジトリにある一連のファイルをまとめるディレクトリのようなもの。ツリー状になるのでこう呼ばれているようだ。VSS ではプロジェクト、CVS ではモジュールとも呼ぶ。

- チェックアウト checkout, 取得

チェックアウトと取得のどちらもリポジトリからファイルを取ってくることを指すが、バージョン管理システムの動作モデルによって微妙に意味が異なる。

コピー・修正・マージの動作モデルで動いている Subversion では、リポジトリからファイルを取ってきてローカルに作業コピーを作ることをチェックアウトと呼ぶ。

ロック・修正・ロック解除の排他動作モデルで動いている VSS では、リポジトリから単に取得することを「取得」と呼び、ロック付きで取得することを「チェックアウト」と呼ぶ。他のメンバーはチェックアウト中のファイルを修正できない。

- チェックイン checkin, コミット commit

リポジトリに修正を反映させることをチェックインやコミットと呼ぶ。

- タグ tag, ラベル label

複数のファイルやツリーをまとめて名前付けするものをタグやラベルと呼ぶ。タグを指定した時点のファイルをまとめて取得したりするために使う。

たとえば、新バージョンの開発が終わってリリースするときなどにタグを打ったりする。こうしておけば リリースしたバージョン *** のビルドに必要なソースを全部取得したい、という場合もすぐに対応できる。

ちなみにタグは「打つ」もので、ラベルの場合は「貼る」もの。私の場合、なぜかバージョン管理のタグは「付ける」のではなく「打つ」という。

- 共有 share

VSS で複数のプロジェクト間で同じファイルを扱うための仕組み。エイリアスやシンボリックリンクのようなもの。複数のプロジェクトで「共有」されたファイルを修正してチェックイン (CVS 風に言うと commit) すると、すべてのプロジェクトに修正が波及する。

- ブランチ branch

ツリーを分岐させること。ブランチすると分岐元とは別にバージョン管理されるようになり、チェックインされた内容が他に自動的に波及しないようになる。明示的に分岐元と同期することはマージと呼ぶ。

分岐させる理由としては、元のツリーを壊すことなく大規模な機能追加をおこないたいとか、リリースに向けてバグ修正だけをするツリーを作りたいなどといったものがある。

ちなみに branch は枝という意味。朝ごはんと昼ごはんを一緒に食べるブランチ (BReakfast + lUNCH) は brunch なのでスペルが違う。

- マージ marge

ブランチしたツリーに対し、別のツリーにチェックインされた修正を適用すること。VSS や Subversion では、マージは単なる差分の適用でしかなく、ブランチが統合されたりするわけではない。

- トランク trunk

主流となっているブランチのこと。HEAD とも呼ばれる。ちなみに trunk は幹という意味で、そこから「主流のブランチ」という意味になったのだろう。かばんを意味する trunk も同じスペルだけど、別の意味。

2005-03-01 (Tue)

* Subversion を Windows で GUI 中心に使う

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Windows] [Subversion]

2005-02-28 の「CVS から Subversion に乗り換え」の続き。Windows 環境で GUI なバージョン管理システムを使うために、Subversion と TortoiseSVN をインストールする。

- Subversion 本体のダウンロード

subversion: ファイルの共有: Windows
http://subversion.tigris.org/servlets/ProjectDocumentList?fo ...

上記ページから以下の実行ファイルをダウンロード。

svn-1.1.3-setup.exe
http://subversion.tigris.org/files/documents/15/20015/svn-1. ...

- Subversion のインストール

ダウンロードした実行ファイルをダブルクリックしてインストール開始。Next を連打してどんどん進める。

インストールが終わったとき、以下のメッセージが表示された。インストール直後の警告やメッセージって、たいていプログラムを動作させるために最低限必要なことだったりすることが多いので、読んでみる。

Information

Please read the following important information before continuing.

When you are ready to continue with Setup, click Next.

Post installation notes for Subversion:

Read the documentation included with this distribution.
For more info - Fire up your browser and point it to:
  http://subversion.tigris.org/ and look for documentation.
Take a close look in the Readme.txt file found in the Subversion folder and  the start menu. It may save you some time if you get into trouble.
Notes for Windows 9x and Millenium users:
Add this line to your Autoexec.bat file (adjust the path so it fits your system) if it's not there:

    SET APR_ICONV_PATH="C:\Program Files\Subversion\iconv"

Restart your machine if your Autoexec.bat file are changed.

Thanks for using Subversion! And..  enjoy..
Your Subversion team

Windows 95系のユーザは 環境変数 APR_ICONV_PATH をセットしろと言ってる。私は Windows2000なので何もせずに続行。無事 Subversion 本体をインストール完了。

- Subversion の GUI クライアント TortioseSVN のダウンロード

Subvresion 本体はインストールしたので、現状でもコマンドラインから使うことはできる。でもコマンドラインではなく GUI から使いたいので、GUI のクライアント TortoiseSVN (とーたすえすぶいえぬ) をインストールする。

Tortoise って最初は とーといず って読んでしまったけど、トータスって読むんだね。トータス松本のトータスだ。亀という意味らしい。

tortoisesvn: TortoiseSVN Downloads
http://tortoisesvn.tigris.org/download.html

上記ページから、以下の2つをダウンロードした。

Version 1.1.3.2502 for NT4/Win2k/XP
http://tortoisesvn.tigris.org/files/documents/406/20001/Tort ...

メニューなどの文言を日本語化するために、Japanese Language Pack もダウンロード。
http://tortoisesvn.tigris.org/files/documents/406/20028/Lang ...

- Subversion の GUI クライアント TortioseSVN のインストール

これもダブルクリックしてインストーラを起動し、あとは Next 連打。超簡単。インストール完了時に OS の再起動を要求されたので再起動。シェル統合とかしてると再起動が必要なんだろうな。

- Subversion リポジトリを作成

まず、リポジトリのデータベースを置きたいディレクトリをエクスプローラから作っておく。今回は d:\svn に作ってみる。

作ったディレクトリを右クリックして TortoiseSVN の中の Create repository here を選ぶ。リポジトリで使うデータベースの種類を尋ねてくる。

Select the type of repository you want to create:

◎ Berkeley Database (BDB)
○ Native Filesystem (FSFS)

デフォルトの Berkeley DB でいいよね。2004-11-09 の 「GMail をバックアップストレージとして使う」で書いたスクリプトを使って、リポジトリは圧縮と暗号化を施して毎日 Gmail に投げる予定だし。万が一 Berkeley DB で何らかの不具合が起きたときは FSFS を試してみることにするけど。

The Repository was sucessfully created.

上記ダイアログが出たら、無事作成完了。

- リポジトリにインポート

インポートしたいディレクトリを右クリックし、import を選択。で、どのリポジトリにインポートしたいかを指定。それだけ。あとは進行状況が表示される。あー楽だ。GUI でできるっていいなあ。

- update, commit

svn update や svn commit も簡単。単に対象を右クリックしてやりたい操作を選ぶだけ。

- 日本語ファイル名への対応

一応日本語のファイル名が通るかどうかを軽くテスト。

リポジトリへの追加、削除、ファイル名の変更、コミットを試したが、とくに問題なく処理がおこなわれた。まあ、個人的には ascii 以外を積極的に使うつもりはないけど。

以下のファイル名で試した。
日)椨狂.txt
ソースコードチェックリスト.txt
能力表.txt

一つめは日本語文字列 + 丸付き数字、全角のローマ数字。日1本II語.txt と書いた。このメモは euc-jp で書いてるけど、utf-8 にすると化けちゃうかな。RSS で読んでる人は適当に脳内で補ってね。
2つめは半角カナ文字。ソースコードチェックリスト.txt と書いた。
3つめは Shift_JIS エンコーディングのときに \ が含まれる能 や 表 を含んだ文字。能力表.txt と書いた。

- subversion には cvs release ってある?

Google で subversion "cvs release" を検索

subversion には cvs release に類するコマンドは存在しない模様。rm -rf などで直接ファイルシステムから削除してしまって構わないようだ。

Subversion スレッド その3
http://pc5.2ch.net/test/read.cgi/linux/1100622362/287-
287 :login:Penguin:05/02/16 00:07:44 ID:FUKFr12X
cvs release -d に相当するコマンドはありますか?
今ググったりして探してるんだけど1.1.3 releasedとかのお知らせばっかり引っ掛かって・・・


288 :login:Penguin:05/02/16 06:24:57 ID:c55Mr6CX
rm -rf しちゃっていいんじゃなかったっけ?
ぐぐるなら、"cvs release" とかクォーティングすれば良いと思われ


289 :login:Penguin:05/02/16 13:30:42 ID:2EWi4Gho
cvs editとか使ってるんでない限り、cvs releaseって必要ないからなぁ。



290 :287:05/02/16 21:46:56 ID:FUKFr12X
>> 288, 289
サンクス。リポジトリ側でバックアップ取って作業コピー rm -rf してみました。
特に問題ない模様。リポジトリ側で誰が作業中かとか管理してたらやだなと思ったの
ですがそこまでしてないみたいですね。


291 :login:Penguin:05/02/17 00:34:54 ID:dOR7Wnf2
管理してないですよ。Subversionはその辺りは一切見ていません。
だって誰がどこを作業してもよいようになっているので。
svn diffやsvn statusだって、何のオプションもつけなかった
わざわざリポジトリにアクセスしません。

- Subversion + TortoiseSVN は実に楽。

しばらくこの環境でやってみよう。Subversion ・・・いや、TortoiseSVN は実に素晴らしい。楽すぎ。Tortoise のスペルは覚えられないけど。コマンドラインと GUI の両方があるとやっぱり楽だなあ。

- Subversion を使う際に参考になったサイト

Subversion - メモ
http://terai.s55.xrea.com/Subversion.html

Subversionの基礎練習
http://www.hyuki.com/techinfo/svninit.html
「CVS の基礎練習」の続編かな。コマンドラインから使う方法を解説してある。

2005-02-28 (Mon)

* CVS から Subversion に乗り換え

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Windows] [Subversion]

2004-09-04 の「Windows で CVS サーバとクライアントを使う」で書いたように、私は Windows だけで完結する CVS 環境を作り、ソースコードなどのバージョン管理に利用している。でも、やっぱり Windows 環境なんだから GUI を使って手軽にバージョン管理したい。

- GUI だとコミット (チェックイン) をこまめにするようになる

個人的なバージョン管理には前述の CVS を利用しているが、仕事場ではバージョン管理システムとして PVCS と VSS (Visual Source Safe) を使っている。

VSS はなかなか良い。正確に言うと、VSS ではなくて VS.NET が良いんだけど。VS.NET だと ソリューションエクスプローラというところに常にリポジトリが表示されていて、ソースを修正しようとすると、すぐさまチェックアウトするかどうか尋ねるダイアログが出る。もちろん修正後にはソリューションエクスプローラから VSS にチェックインできる。統合開発環境の強みだ。

VS.NET + VSS ではチェックインとチェックアウトが手軽にできるので、「コンパイルが通ったらとりあえずチェックイン」という使い方になってくる。ファイルの新規追加もドラッグアンドドロップだけでできて簡単。とても便利。

- コマンドラインだとコミットを怠りがち

一方、私の CVS 環境はコマンドラインからの操作が中心。GUI だけでできる環境に比べると手間がかかるので、コミット(チェックイン) を怠りがちになる。

当該 CVS を利用しているのは私一人なのでそれでもいいんだけど、コミットの粒度が荒いのでバージョン間の差分が大きくなるのが難点。せっかくバージョン管理システムを使ってるのに、活用し切れてないわけだ。それに、GUI に比べるとファイルの新規追加もちょっと手間がかかる。今回 GUI を使いたいと思った理由はこれらをなんとかしたいと思ったからだ。

バッチファイルやスクリプトを活用すれば解決できるという意見もあるかもしれない。しかし、バージョン管理システム側でそれらを自動生成してくれるのならまだしも、自分で作って管理していくのは煩わしい。タグやブランチ、リポジトリのバックアップくらいの管理作業は厭わないけど、それ以上はやりたくない。bash にくらべて使い勝手が劣る dos プロンプトに縛られたくないし。

- コマンドライン版 CVS の代わりに何を使おう?

では、Windows 環境では コマンドライン版 CVS の代わりに何を使うのが良いんだろう?

リポジトリの互換性や実績などを考慮すると、WinCVS などを使って CVS を使いつつ GUI 化した環境を作るのが無難なところだろう。でも、今回は業務で使うわけではないので互換性や安定性は重視しない。リポジトリも最新版さえインポートできればそれで十分。フリーで便利なバージョン管理システムならなんでもいい。オープンソースでなくてもまあ許容範囲。

ということで Subversion を導入することにした。Subversion はフリーのバージョン管理システム。幸いなことにオープンソース。Windows でも Unix でも使える。Windows のエクスプローラにシェル統合できる TortoiseSVN という GUI クライアントがあるそうなので、それを使ってみることにする。とーたす えすぶいえぬって読むのかな?

ねむくなったので続きはまた明日。

追記。2005-03-01 に 「Subversion を Windows で GUI 中心に使う」を書いた。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。