Cornerstone、これだけ知っていればとりあえず始められる

最近、使い始めたSubversionのクライアントソフトで「Cornerstone」というソフトがあります。MacらしいGUIのクライアントソフトで使いやすいソフトです。
とりあえず、これだけ知っていれば「Cornerstone」を使い始められるという点をまとめてみました。

目次

[1] リポジトリの設定

とりあえずリポジトリの設定から。リポジトリもワーキングコピーも設定されていない状態(つまり初期状態)で起動すると、メインウインドウの中央のちょっと下側に「Add Repository…」というボタンが表示されるので、これをクリックします。

メインウインドウの初期状態

メインウインドウの初期状態


リポジトリの設定シートが表示されるので、「http://」や「https://」なら「HTTP Server」タブ、「svn://」なら「SVN Server」タブ、ローカルマシンなら「File Repository」タブ、「codesion」なら「Cloud Service」タブを表示します。
私の場合は「svn://」なので「SVN Server」を表示しています。
リポジトリの追加

リポジトリの追加


例えば、「svn://mylocal.local/」というリポジトリの場合は、「Server」に「mylocal.local」と入力します。
匿名接続できないサーバ(ほとんどは読み込みは匿名でできても、書き込みはできないはず)のアカウントは、「Account Information」の「Name」と「Password」に設定します。
設定が終わったら、「Add」ボタンを押してください。メインウインドウの「REPOSITORIES」に追加されます。

[2] リポジトリのブラウズ

設定したリポジトリをブラウズするにはメインウインドウの左側「REPOSITORIES」から接続したいリポジトリを選択します。中央部分がブラウザになっていて、リポジトリの内容が表示されます。
ディレクトリの横のディスクロージャーボタン(三角ボタン)をクリックすれば内容が表示されます。ダブルクリックすれば、そのディレクトリ内に潜ります。ちょこっとみたいときはディスクロージャーボタンの開閉、確実にみたいときはダブルクリックするみたいな使い分けができます。
ダブルクリックでディレクトリ内に入った場合は、ブラウズ部分の上側にディレクトリパスのボタンが表示されて、トップディレクトリでも途中のディレクトリでも一気に移動できます。

リポジトリのブラウズ

リポジトリのブラウズ

[3] チェックアウト

チェックアウトは、チェックアウトしたいディレクトリを選択して、ツールバーの「Check Out」ボタンをクリックします。チェックアウト先のディレクトリやチェックアウトしたときのディレクトリ名などを設定するシートが表示されるので、設定して「Check Out」ボタンをクリックします。チェックアウトするとメインウインドウの左側「WORKING COPIES」にチェックアウトしたディレクトリが追加されるので、そこからチェックアウトしたディレクトリをブラウズできます。

チェックアウト

チェックアウト

[4] コミット

チェックアウトしたワーキングコピーを変更した後、コミットしたいときは、メインウインドウの左側「WORKING COPIES」からワーキングコピーを選択して、ツールバーの「Commit」ボタンをクリックします。なお、ブラウズ部分で「Changed」を選ぶと変更したファイルとリポジトリに追加していないファイルだけが表示されるので、便利です。また、コミットしていない変更ファイルがあるときは「WORKING COPIES」の欄に個数が出ているので、わかりやすいです。
特定のファイルやディレクトリだけをコミットしたいときは、コミットしたい対象を選んでから「Commit」ボタンをクリックします。

変更された項目の絞り込み

変更された項目の絞り込み


「Commit」ボタンをクリックすると、メッセージ入力欄などが表示されるので、「Log Message」にメッセージを入力して、「Commit Changes」ボタンをクリックします。
コミットの確認

コミットの確認


メッセージを入力しないで「Commit」ボタンをクリックすると警告が出ますが「Commit Anyway」ボタンをクリックすれば、未記入でもコミットできます。

[5] 変更の破棄

変更したけど、変更を破棄したいということも開発中にはよくあります。変更を破棄したいときは、ファイルを選択して、「Revert」ボタンをクリックします。
確認シートが表示されます。「Copy to Trash First」を選択すると、とりあえず変更したファイルをゴミ箱に入れてから変更を破棄します。「Discard Changes」を選択すると強制破棄です。

変更の破棄の確認

変更の破棄の確認


破棄したコードをやっぱり使いたいという、優柔不断になってしまいそうなときには「Copy to Trash First」を押しておきましょう。

[6] ファイルやディレクトリの追加

この項目はもっと前に書くべきな気もしますが、ファイルやディレクトリの追加をしたいときは追加したい項目を選んで、メインウインドウの下側の「Add」ボタンをクリックします。
このとき、ディレクトリの場合は、「Add」ボタンを長押しして、「Add to Working Copy with Contents」を選択するとディレクトリの中も追加されます。
さらに「Cornerstone」の便利な点は、ワーキングコピーのブラウズ表示で、「Unversioned」を選べば、追加していないものだけが絞り込まれて表示されるので、変更と追加が入り乱れているときなどにとても効率が良いです。

[7] タグ付け

リリース後や節目のときなど、タグ付けが必要です。あとで、特定のバージョンのソースが取り出せないというような悲惨な目に遭わないように、タグ付けをしましょう。なお、Subversionでのタグ付けは特定の状態のコピーです。「Cornerstone」でタグ付けをするには、「REPOSITORIES」からリポジトリを選択して、タグ付けをしたいディレクトリの親まで移動します。
次にタグ付けをしたいディレクトリを選択して、「Tag」ボタンをクリックします。
タグの設定シートが表示されるので、「Tag As」にタグの名前というか、コピーされた後のディレクトリ名を入力して、「Create Tag」ボタンをクリックします。デフォルトの場所は、タグ付け対象のディレクトリと同じディレクトリの「tags」ディレクトリ内です。
そのため、次のようなディレクトリ構成にしておくと、効率が良いです。
[cc]
/
trunk/ 作業中の最新版
tags/ タグ付けしたものを入れるところ
branches/ 分岐コピー
[/cc]
ちなみに、タグ付けではなく、分岐コピーのときは、「Branch」ボタンをクリックします。デフォルトの場所は、同じディレクトリの「branches」です。

タグ付け

タグ付け

[8] ファイルやディレクトリの削除

ファイルやディレクトリを削除したいときは対象を選んで、右クリックして「Delete」を選択します。
なお、削除後に削除したことをコミットするということを忘れないように注意してください。

[9] 出力

チェックアウトではなく、リポジトリの内容を出力したいこともあります。例えば、ソースファイルのスナップショットのアーカイブを作りたいときなど。
出力は、リポジトリからでもワーキングコピーからでもできます。出力したい対象を選択して、「Export」ボタンをクリックします。
出力先の選択シートが表示されるので「Export As」に出力名を入力して、「Export」ボタンをクリックします。

出力先の設定

出力先の設定

[10] 衝突解決

Subversionは、同じファイルを複数の人が同時に編集してもうまくマージしてくれるという優れたツールですが、時には、全く同じ場所を編集してしまって衝突を起こすことがあります。
衝突が起きてしまった場合は、後からコミットする人が解決しなければいけません。衝突内容を修正したら、最後に「Cornerstone」の「Resolve」ボタンをクリックします。

[11] アップデート

サーバにコミットされた変更をローカルに反映するには、ワーキングディレクトリを選択してツールバーの「Update」ボタンをクリックします。特定のディレクトリやファイルだけをアップデートしたいときは、アップデートしたい項目を選択してから「Update」ボタンをクリックします。
以上、「Cornerstone」をとりあえず使い始めるために必要なことでした。
Cornerstone

著書紹介

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次