[Android] 自分的SVN管理方法

2014年5月6日火曜日

Android Eclipse SVN

t f B! P L

毎回忘れてて大変なことになるので、自分用のメモを兼ねて自宅のPC数台でのプロジェクト共有方法を書いておきます。完全に自己流です。

環境

  • TortoiseSVN 1.7.6
  • Eclipse 3.7.2

リポジトリサーバは DropBox のフォルダ直下に svn というフォルダを作ってそこを利用します。 フルパスは C:\Users\hoge\DropBox\svn と仮定して記載します。 パスは共有する各PCで異なっていても問題ありません。この svn フォルダはただのフォルダです。事前に作成しておいてください。 勿論 Dropbox じゃなくてNASとかサーバがあればそれでもいいです。

初回同期までの流れ

  • Eclipse で新規 Android プロジェクトを作る。共有したくなるまで適当に作ります。
  • エクスプローラで svn フォルダを開き、プロジェクト名で新規フォルダを作成する。ここでは仮に testproject という名前で作ったことにします。
  • 作成した testproject フォルダを右クリックして、[TortoiseSVN]→[Create repository here]をクリック。
    01_createrepo.png
  • default folder structure を作るかどうか聞いてくるので作る。
    02_createfolder.png
  • testproject フォルダを右クリックして、[TortoiseSVN]→[Repo-browser]をクリックし、中に[branches],[tags],[trunk]があることを確認したら[OK]を押して閉じる。
    03_repobrowser.png
  • Eclipse に戻って、プロジェクトを右クリックし、[Team]→[Share Project]をクリック。
  • [SVN]を選択して[Next]をクリック。
  • [新しいリポジトリー・ロケーションを作成]を選択して[Next]をクリック。
    04_newsvn.png
  • [Url]に[file:///C:/Users/hoge/DropBox/svn/testproject]と入力して[Next]をクリック。
    ※file: の後の / が3つなのは間違いではありません!3つ記載してください。
    ※パスの \ は / にして記載します。
    05_urlinput.png
  • [指定したフォルダ名を使用]にチェックを入れて、入力欄に[trunk]と入力して(※)[Next]をクリック。
    ※[URL]は[file:///C:/Users/hoge/DropBox/svn/testproject/trunk]になったはず。

    06_trunk.png
  • コメントはデフォのままでもいいし適当に編集してもいいです。[Finish]をクリック。
    ※TortoiseSVN でリポジトリを作成したときに default folder structure を作成していると、『フォルダ"{0}"はすでにリモートで存在します。既存のものと異なるフォルダ名を設定してください。』というメッセージが表示されますが、[Yes]を押せばそのまま成功します。
    07_warning.png
  • 自動的に同期画面になります。左上のペインでプロジェクトを展開してください。 [bin]フォルダを右クリックし、[svn:ignoreに追加]をクリック。開いたダイアログは中身は変更せずに[OK]をクリック。 同様に[gen]フォルダもsvn:ignoreに追加します。
    08_syncwindow.png 09_ignore.png
  • プロジェクトを右クリックして[コミット]をクリック。適当にコメントを入れて[OK]をクリック。

別PCからの初回利用の流れ

  • Eclipse で新規プロジェクト作成のウィザードを立ち上げ、[SVN]→[SVNからプロジェクトをチェックアウト]を選択して[Next]をクリック。
    10_newproj.png
  • [新規リポジトリー・ロケーションを生成]にチェックを入れて[Next]をクリック。
  • [Url]に Dropbox の svn\testproject フォルダまでのパスを入力して[Next]をクリック。1台目のPCとパスが違っても問題ありません。 例えば仮に Dropbox のフォルダが D:\Dropbox ならば [file:///D:/Dropbox/svn/testproject]と入力します。
    11_svnurl.png
  • [trunk]フォルダを選択して[Finish]をクリック。
    ※特定のタグやブランチから取り込みたければそれを選択してもOK。
    ※特定のリビジョンから取り出したかったり、ワークスペースの場所を標準から変えたければ[Finish]ではなくて[Next]で進めばそのへんを設定できます。
    12_export.png
  • リポジトリにない[bin]と[gen]フォルダは勝手に作られますが、フォルダに?マークが付いているはずです。
    13_question.png
    [bin]フォルダを右クリックし、[Team]→[svn:ignoreに追加]をクリック。開いたダイアログは中身は変更せずに[OK]をクリック。 同様に[gen]フォルダもsvn:ignoreに追加します。これで?マークが消えるはずです。

運用

  • こまめにコミットすること。コミットの方法はプロジェクトを右クリックして[Team]→[コミット]。
  • コミットの際には必ずコメントを詳細に入れること。
  • 作業PCを切り替えたときは必ず[Team]→[更新]してから編集すること。
  • リリース版にはタグを付ける。プロジェクトを右クリックして[Team]→[ブランチ/タグ]をクリック。 [コピー先のURL]に初めから入っているURLの末尾の[trunk]の部分を[tags/バージョン番号]に書き換えて[Next]をクリック。 14_tag.png [リポジトリーのHEADリビジョン]を選択(もし忘れてて後からタグ付けする場合はリリースしたときのリビジョンを選択)して[Next]をクリック。 コメントを入力して[Finish]をクリック。[作業コピーを新しいブランチ/タグに切り替える]にはチェックを入れないこと。 15_tagfinish.png
  • 本流を汚さずに実験的な機能を試したい場合はブランチを作る。 作り方はタグと同じだがコピー先URLの[tags/バージョン番号]を[branches/任意の名前]に変えることと、[作業コピーを新しいブランチ/タグに切り替える]にチェックを入れる。

覚書

  • trunk が本流。タグはリリース時点でのスナップショット。ブランチは支流。普通のソフトウェア開発とかで複数バージョンのメンテを続けなければならない場合はマイナーバージョンのブランチを作ってそのブランチでリビジョンをアップしていったりする。Android アプリは1アプリの公開バージョンは1つだけなので、1人で開発している限りブランチの必要性はあまりない。チーム開発している場合などはリリースに向けた安定化と時期バージョンの新機能追加が平行に走ったりするので必要になる。
  • 1つのリポジトリの中でプロジェクトごとにフォルダを作って管理することもできるが、リビジョン番号はリポジトリ全体での通し番号にされてしまうので、1プロジェクト単位でヒストリを見た場合にリビジョン番号が歯抜け状態になって気持ち悪い。のでプロジェクトごとにリポジトリを作っている。

QooQ