Xcodeでソースコードのバージョン管理をしたい


何がしたいの?

  • 変更のスナップショットを適宜取りながら安全にコード変更がしたい
  • XcodeでSCM機能を使ってソースコードのバージョン管理をしたい
  • Xcodeのオーガナイザをエディタ替わりに使っているだけだけどバージョン管理したい
  • 開発者ひとりしかないけどバージョン管理したい

誰が使うの?

  • コードをちょっと変更したら動作しなくなって慌ててバックアップを探すことがある人

どのように機能するの?

何を使うの?

どこで確認したの?

いつ確認したの?

  • 2010年3月16日

何か注意点はあるの?

  • 特にありません。

どんな手順でやるの?

  • まずはmacport経由でインストール
$ sudo port install subversion
$ pwd
/opt/svn
$ 
$ svnadmin create /opt/svn/svntest --fs-type fsfs
$ ls -r svntest/
locks      hooks      format     db         conf       README.txt
$ 
  • 参考ブログによるとtrunk,branches,tagというディレクトリ名が王道らしいので巻かれてみます。
$ mkdir -p /tmp/svntest/trunk
$ mkdir -p /tmp/svntest/branches
$ mkdir -p /tmp/svntest/tags
$ ls /tmp/svntest
branches tags     trunk
$ 
$ svn import /tmp/svntest/ file:////opt/svn/svntest -m "Initial import"
追加しています              /tmp/svntest/trunk
追加しています              /tmp/svntest/branches
追加しています              /tmp/svntest/tags

リビジョン 1 をコミットしました。
$ 
  • XcodeでSCM追加
    • メニュー[SCM]-[SCMリポジトリを構成]を選択してボタン[+]を選択して新しいリポジトリを追加します。
    • URL→file:///opt/svn/svntestを入力して暫く待つと、名前やスキーム、パスが自動的に補完されて一番下に[認証されました]の表示が現れます。


  • XcodeのSCMメニューに[リポジトリ]が追加されているのでので選択します。
    • 見慣れない画面が開きました。ボタン[読み込む]で管理対象のディレクトリを読み込みます。


  • メニュー[表示]-[ツールバーをカスタマイズ]を選択して、[復元]と[スナップショットを]をツールバーに追加します。
    • [復元]ボタンでウィンドウ[スナップショット]が開きます。
    • [スナップショット]ウィンドウのボタン[作成]でスナップショットを作成します。
    • 過去のスナップショットと現在のコードの差分を確認できます。
    • スナップショットを2つ選択すると2つのスナップショット間の差分も確認できます。
    • オーガナイザの[スナップショットボタン]はツリー[PROJECT&SOURCES]でディレクトリを選択しているときのみ有効なようです。



  • 管理対象のディレクトリ内であれば、チェックアウトしてなくてもファイルもスナップショット間の差分が取れます。
    • 管理対象のディレクトリへのファイル追加や削除も自動検出します。
    • ファイルの出入が激しい実験的なプロジェクトにはとても助かる機能です。

    • もちろんsubversionをチェックイン、チェックアウトによる長期的なソースコード管理にも使用するわけですが、
    • コンパイルが通る度、テストが通る度に気軽にスナップショットをパシャパシャ取ることでコード変更が気軽にできるようになるかもしれません。