すがブロ

sugamasaoのhatenablogだよ

Subversionネタ(2)

ここ2〜3日で学習したこと。
ついでに、さっき見つけたサイト。結構わかりやすい。
http://tortoisesvn.bluegate.org/dailyuseguide.html

SVNでのディレクトリ構成

  • リポジトリの起点ディレクトリ
    • プロジェクト名?(ここはあってもなくても良さそう)
      • trunk
      • branches
      • tags

という形で運用するのが一般的らしい。で、各々のディレクトリの分類については以下の通り。らしい。

  • trunkディレクトリ

メインのソースの格納場所。基本的に、ここがオフィシャルな最新のソースとなる。

  • branches

開発中のソースの格納場所。とりあえずここで開発して、開発が落ち着いたら上記trunkディレクトリにマージする。ようするに作業用に使う。

  • tags

ある特定のバージョンのソースを格納する。ここにリリースバージョンのソースの登録などを行う。
簡単な開発シナリオは以下のような感じになると思われる。

  1. trunkから最新ソースを取得
  2. 自身の作業が完了するまではbranchesに保存して作業を続ける
  3. 作業完了したらtrunkへマージ
  4. リリース時期が来たらtagsにversionxx等として保存する

こんな感じらしい。
で、実際にeclipse+subclipseを使っていて一番困ったこと。
これはeclipse環境が悪いのかわからないけど。
いざコミットしようと思うと、意図せずファイルのロックが発生してしまい、よくわからないが「クリーンアップをしてくれ」というメッセージが出るのだが、実際にクリーンアップ作業を行うとエラーがでて処理が終わらない。……当然、ファイルのロックは解除されない。
このような状態になってしまうと、ファイルの更新もできないし、コミットもできない。今回は遊びでやってるから危機感ないけど、実務だったら冷や汗ものだ。
きちんと原因と対処方法を考えておかないとなぁ。部内のSubversion導入者としては。