Mercurial の全体像

handwrite1.png

Mercurial のインストール

共有レポジトリの準備

Netbean プロジェクトをローカル・レポジトリで管理する

  1. プロジェクトを選択状態にする
    hg1.png
  2. [チーム]-[Mercurial]-[プロジェクトを初期化]
    hg2.png
  3. プロジェクトが Mercurial のローカルレポジトリになる
    hg3.png
  4. プロジェクトを右クリックして [Mercurial]-[コミット]
    hg4.png
     
    hg5.png
  5. 現在の資産が、初期バージョンとしてコミットされた
    hg6.png
  6. お一人様で使うのであれば、これで終わり。後は普通にコミットしたり、過去バージョンを取り出したりできる。

共有レポジトリを作成し、ネットワーク経由でアクセスできるようにする

  1. Linux を共有レポジトリサーバにする → Fedora13 mercurial
    • Linux の hguser ユーザが共有レポジトリを管理する
    • SSH2 で hguser としてログインする
    • SSH2 は 公開鍵暗号で通信し、鍵ペアはユーザごとに異なるようにする
    • Linux ユーザを分けるまでする必要はないが、今日日 LAN (WAN) 内でも暗号化くらいはした方が良いでしょう
  2. Fedora13 mercurial公開鍵の登録 - 4.ログインできるか試して貰う も忘れずに (ssh-add で秘密鍵をクライアント側の ssh に登録する作業が必要)
  3. .hgrc の設定
    [~]$ cat .hgrc 
    [ui]
    ssh = ssh -i /Users/Atsushi/.ssh/hguser_id_rsa
    • Windows の場合は、putty をインストールして %USERPROFILE%\Mercurial.ini に
      [ui]
      ssh = plink.exe -i %USERPROFILE%\ssh\hguser_id_rsa.ppk
      と設定。 秘密鍵の ppk 形式への変換と、証明書のパスワード登録は Pagent でやればいいらしい (TODO そのうち確認する)
  4. NetBean? で、[プロジェクト]-[Mercurial]-[プロパティ]
    hg10.png
  5. レポジトリの URL を設定する
    hg11.png
    • URL は、ssh://ユーザ名@サーバ名/パス
    • パスは、hguser のホームディレクトリからの相対パス /home/hguser/hgrepository/ourworkhgrepository/ourwork

ローカル・レポジトリを共有レポジトリに push して共有を開始する

  1. [プロジェクト]-[Mercurial]-[共有]-[デフォルトにプッシュ]
    hg12.png
  2. 実行結果
    Mercurial プッシュ
    --------------
    情報 - プッシュ中: ssh://hguser@192.168.1.2/hgrepository/ourwork ...
    情報 - プッシュするチェンジセット:
    changeset   : 0:9e3b9f7206c9
    author      : Atsushi@hondou-atsushi-no-MacBook.local
    日付          : Fri Jul 15 00:01:14 JST 2011
    summary     : Initial Version
    
    
    pushing to ssh://hguser@192.168.1.2/hgrepository/ourwork
    searching for changes
    remote: チェンジセットを追加中
    remote: マニフェストを追加中
    remote: ファイルの変更を追加中
    remote: 1 のチェンジセット(8 の変更を 8 ファイルに適用)を追加
    情報 - プッシュ先: ssh://hguser@192.168.1.2/hgrepository/ourwork
    情報 - 元:    JavaExam - /Users/Atsushi/NetBeansProjects/JavaExam
    情報: Mercurial プッシュの終了
  3. 共有レポジトリサーバ側で確認してみる
    [hguser@orange ourwork]$ hg history
    チェンジセット:   0:9e3b9f7206c9
    タグ:             tip
    ユーザ:           Atsushi@hondou-atsushi-no-MacBook.local
    日付:             Fri Jul 15 00:01:14 2011 +0900
    要約:             Initial Version
    ssh のログインは hguser ユーザだけど、Mac (クライアント) 側の Atsushi で commit されている

開発の流れ

資産を clone して開発開始

共有レポジトリを clone して、ローカルレポジトリを作る

  1. SSH の設定をする → 共有レポジトリとの接続
  2. [チーム]-[Mercurial]-[他をクローン]
    clone01.png
  3. 共通レポジトリのURLを設定
    clone02.png
  4. pull 元、push 先の設定。たいていは共通レポジトリだよね
    clone03.png
  5. ローカルレポジトリの設定
    clone04.png
  6. 公開鍵のキーフレーズを入力すると、clone がはじまる
    clone05.png
     
    Mercurial クローン
    ---------------
    running ssh -i /Users/Atsushi/.ssh/hguser_id_rsa hguser@192.168.1.2 "hg -R hgrepository/ourwork/ serve --stdio"
    remote: Identity added: /Users/Atsushi/.ssh/hguser_id_rsa (/Users/Atsushi/.ssh/hguser_id_rsa)
    requesting all changes
    adding changesets
    adding manifests
    adding file changes
    added 1 changesets with 8 changes to 8 files
    updating to branch default
    resolving manifests
    getting .hgignore
    getting nb-configuration.xml
    getting nbactions-release-profile.xml
    getting nbactions.xml
    getting pom.xml
    getting src/main/java/com/snail/exam/javaexam/App.java
    getting src/main/java/com/snail/exam/javaexam/USCurrency.java
    getting src/test/java/com/snail/exam/javaexam/AppTest.java
    8 files updated, 0 files merged, 0 files removed, 0 files unresolved
    情報 - クローン元: ssh://hguser@192.168.1.2/hgrepository/ourwork/
    情報 - 宛先:         /Users/Atsushi/NetBeansProjects/JavaExam
    
    情報: クローンの終了
    
  7. クローンが終了すると、NetBeans? Project として開くかどうかを聞かれる
    clone06.png
  8. 開かれたプロジェクトで [プロジェクト右クリック]-[Mercurial]-[プロパティ] を選択すると、共通レポジトリの情報が設定されている
    clone07.png

1つのレポジトリに複数のプロジェクトって入れられるの?→無理!1プロジェクト=1レポジトリ

commit

ローカルの編集結果を共有レポジトリに pull → merge → push する

  1. pull
    pull.png
     
  2. merge
    merge.png
    merge 開始宣言(衝突を解決) → マージ作業 → resolve 宣言(解決としてマーク) → commit で完了
     
    handwrite4.png
     
  3. push
    push.png
     

リリース管理

方法1.レポジトリを Clone する

handwrite5.png
$ hg clone -r 12345678 mywork release

mywork のリビジョン 12345678 を release に clone

方法2.名前付きブランチを作る

handwrite6.png
$ hg branch release-line
$ hg tag release-line-base

release-line を分岐し、枝分かれしたところに release-line-base と言うタグをつけておく

bitbucket


Java#NetBeans


添付ファイル: filehg3.png 488件 [詳細] filerevert.png 474件 [詳細] filehg6.png 509件 [詳細] filepush.png 461件 [詳細] filepull.png 457件 [詳細] filehg4.png 510件 [詳細] filehg5.png 485件 [詳細] filehg2.png 525件 [詳細] filemerge.png 439件 [詳細] fileclone06.png 575件 [詳細] fileclone07.png 572件 [詳細] fileclone02.png 559件 [詳細] filehg1.png 501件 [詳細] filehandwrite3.png 525件 [詳細] filehandwrite2.png 497件 [詳細] fileclone03.png 570件 [詳細] filehandwrite5.png 442件 [詳細] filehg10.png 603件 [詳細] fileclone01.png 537件 [詳細] filecommit.png 516件 [詳細] fileclone05.png 582件 [詳細] filehandwrite1.png 535件 [詳細] filecommit2.png 526件 [詳細] filehg11.png 515件 [詳細] filehandwrite4.png 500件 [詳細] filehg12.png 543件 [詳細] fileclone04.png 570件 [詳細] filehandwrite6.png 531件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2011-09-27 (火) 01:04:41 (1897d)
ISBN10
ISBN13
9784061426061