11.11.2012

Sharing a Personal Eclipse Project with Dropbox + Git

Dropbox + Git を使って個人用の Eclipse プロジェクト(今回はC++)を共有する方法

 

2013-01-13 手順更新
mog project: Sharing a Personal Eclipse Project with Dropbox + Git [Updated]

 

何番煎じか分からないけど、意外とハマったのでメモ。

1. 事前準備

  • Git の導入
    • Linux では $ sudo apt-get install git-core
  • Eclipse プラグイン EGit の導入
  • EGit の共通設定
    • メニューから Window -> Preferences (Mac は Eclipse -> Preferences)
    • Team -> Git
      • Default repository folder を適宜設定 (デフォルトは ~/git)
    • Team -> Git -> Configuration
      • User Settings -> Add Entry... を押下
      • Key: user.name, Value: ユーザ名 を設定
      • Key: user.email, Value: メールアドレス を設定

2. ローカルリポジトリの作成

  • まずは普通にプロジェクトを作成。今回はCDTプロジェクトとした。
  • プロジェクトのコンテキストメニューから、Team -> Share Project…
  • Share Project: Git
  • Configure Git Repository
    • 今回のプロジェクトはワークスペースの直下にあるため、
      Use or create repository in parent folder of project にはチェックを付けない
Git リポジトリの配下にプロジェクトのディレクトリが作成される。
ワークスペースと同じ場所にリポジトリを作るのは非推奨。
      • Repository -> Create を押下
        • Parent directory: ローカルマシン上のディレクトリ
        • Name: プロジェクトの集合の名前を入力し Finish
作業用レポジトリをローカルに作成することで、Dropbox の使用量および通信量を節約できる。
    • 設定例
      • Current Location: ワークスペース/プロジェクト名
      • Target Location: ~/git/eclipse/プロジェクト名
    • プロジェクトにチェックが付いていることを確認し Finish
  • この段階ではまだ NO-HEAD
  • プロジェクトディレクトリ直下にファイル .gitignore を作成
    ※ファイル末尾に改行を入れないと、Macでは最後の行が評価されなくなったので注意
.DS_Store
Release/
Debug/
.settings/
  • プロジェクトのコンテキストメニューから Team -> Commit…
    • Commit message: 適当なメッセージ
    • Files: Select All アイコン(右上のチェックマーク)を押下し全て選択
    • Push the changes to upstream のチェックを外してから Commit

3. Dropbox 上のリポジトリの設定

  • Eclipse でプロジェクトのコンテキストメニューから Team -> Show in Repositories View
  • Git リポジトリビューのアイコン Create a new Git Repository and add it to this view を選択
    • Create a New Git Repository
      • Parent directory: ここで Dropbox 配下のディレクトリを指定
      • Name: リポジトリの名前 (例: eclipse)
      • Create as bare repository: チェックを付ける
  • Git リポジトリビューでローカルリポジトリのコンテキストメニューから Push
    • Destination Git Repository
      • URI: 先ほど作成したDropbox 配下のディレクトリを指定
      • Connection -> Protocol: file
    • Push Ref Specifications
      • Source ref: master [branch] (refs/heads/master)
      • Add Spec を押下
      • Finish を押下し、Push Results を確認
  • Git リポジトリビューでローカルリポジトリ -> Remotes のコンテキストメニューから Create Remote… を選択
    • Remote name: dropbox などの適当な名前
    • Configure fetch を選択
    • Configure push for remote 'dropbox'
      • URI: Dropbox配下のリポジトリを指定
      • Ref mappings: +refs/heads/*:refs/remotes/dropbox/* であることを確認
      • Save and Fetch を押下し、everything up to date と表示されればOK
  • Git リポジトリビューでローカルリポジトリのコンテキストメニューから Properties を選択
    • Configuration -> Add Entry… を押下
    • Key: branch.master.remote, Value: dropbox (リモートに指定した名前)
    • Key: branch.master.merge, Value: refs/heads/master
    • Key: branch.master.rebase, Value: true

4. 別のPCで Dropbox と同期

  • Eclipse を起動し、Window -> Show View -> Other… -> Git -> Git Repositories
    • Git リポジトリビューのアイコン Clone a Git Repository and add the clone to this view
    • Source Git Repository
      • Location -> URI: Dropbox 配下のディレクトリを指定
      • Connection -> Protocol: file
      • Branch Selection: master
      • Local Destination
        • Destination -> Directory ローカルリポジトリの保存先
        • Initial branch: master
        • Clone submodules: チェック無し
        • Configuration -> Remote name: dropbox など
        • Projects -> Import all existing projects after clone finishes: チェック無し
        • Projects -> Add projects to working sets: チェック無し
        • Select a wizard to use for importing projects: Import existing projects
  • メニューから File -> Import…
    • Select: Git -> Projects from Git
    • Select Repository Source: Local
    • Select a Git Repository: 先ほどクローンを作成したローカルリポジトリを指定
    • Select a wizard to use for importing projects: Import existing projects
    • Import Projects: プロジェクトが選択されていることを確認し Finish
    • Source Git Repository
      • Location -> URI: Dropbox 配下のディレクトリを指定
      • Connection -> Protocol: file
    • Branch Selection: master
    • Local Destination
      • Destination -> Directory ローカルリポジトリの保存先
      • Initial branch: master
      • Clone submodules: チェック無し
      • Configuration -> Remote name: dropbox など
      • Select a wizard to use for importing projects: Import existing projects 

本来であればインポートウィザードで直接クローンを作りたかったのだが、Mac+CDTという環境が悪いのか、どうにもうまくいかなかった。

(具体的には、Dropbox上のリポジトリを選択した後でプロジェクトの一覧に何も出てこない状態に陥る)

リポジトリビューから操作を行うことで、なんとか事象を回避することができた。

 

環境
  • Ubuntu natty(11.04) 64bit: Elipse Juno(4.2) + CDT 8.1.0 + EGit 2.1.0 + Git 1.7.4.1
  • OS X Mountain Lion(10.8.1): Eclipse Juno(4.2) + CDT 8.1.0 + EGit 2.1.0 + Git 1.7.9.6 

 

References

EGit User Guide
http://wiki.eclipse.org/EGit/User_Guide 

Eclipse RCP, RAP Blog: EGit によるソースコード管理(1) ローカルリポジトリの作成:
http://brissyu.blogspot.jp/2012/02/hudson-tycho-4.html 

eclipse 4.2×EGit環境でPush/Pullのハマりどころを回避する  - mooapp 

Git チートシート
http://www.textdrop.net/doc/git-cheat-sheet-ja/ 

0 件のコメント:

コメントを投稿