1. Top » 
  2. スポンサー広告 » 
  3. 【mercurial】【バージョン管理】mercurialの話(四度目)
  4. mercurial » 
  5. 【mercurial】【バージョン管理】mercurialの話(四度目)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

【mercurial】【バージョン管理】mercurialの話(四度目)

引き続きmercurialの基本的な使い方の話です(個人用)
今までの記事はこちら。

一度目の話 【mercurial】【バージョン管理】mercurialの話(最初)
二度目の話 【mercurial】【バージョン管理】mercurialの話(二度目)
三度目の話 【mercurial】【バージョン管理】mercurialの話(三度目)



さて、前回までで出来ていることをまとめます。
・ディレクトリの初期化、管理対象の追加、状態の確認(init/add/status)
・リビジョンの作成と確認(commit/log)
・由来の確認(annotate)
・リビジョンの変更(update)

今回は先に進む前に、少し便利な使い方を見ます。

まず初めに、過去のリビジョンを配布したいときです。いちいち
1.古いリビジョンにupdate
2.cpしてディレクトリを保存
3.再び元のリビジョンに戻す
という手順を踏むのは大変です。

これを解決してくれるコマンドは hg archive を利用します。
今、hg parentsで現在のリビジョンを、そして保存したいリビジョンをhg logで
それぞれ確認します。

ここでは現在のリビジョンが2、出力したいリビジョンが1とします。
hg archiveを利用して、リビジョン1を./work.(リビジョンの文字列)に保存します

taki@false:~/program/test$ hg archive -r1 ./work.%h

このようにします。
カレントディレクトリにwork.%hというディレクトリを作ってリビジョン1を保存。
rはrevisionの頭文字で%hにはrevisionの番号1に相当する文字列がつきます。
実際に作成されているのか確認します。

taki@false:~/program/test$ ls
test.c work.6b6bff58ecb8
taki@false:~/program/test$ cat work.6b6bff58ecb8/test.c
#include
int main(int argc, char** argv){
printf("test message\n");
printf("test message no 2\n");
return 0;
}

このように古いソースが復元されました。
こうすることでリビジョン単位でファイルの受け渡しが可能になります。
せっかくなのでディレクトリをtgz形式で保存してみます。

taki@false:~/program/test$ hg archive -t tgz -r2 ./work.%h.tgz
taki@false:~/program/test$ ls
test.c work.6b6bff58ecb8 work.f9a2ea1a3ee0.tgz

現在のリビジョンをtgzで保存してみました。
中にはきっと入っていることでしょう。

hg archiveは対象ディレクトリ全てを扱ってくれますが
hg catを使うと特定のファイルのみを扱ってくれます。

taki@false:~/program/test$ hg cat -r1 test.c
#include <stdio.h>
int main(int argc, char** argv){
printf("test message\n");
printf("test message no 2\n");
return 0;
}

リビジョン1のソースを取り出す。

taki@false:~/program/test$ hg cat -r0 test.c
#include <stdio.h>
int main(int argc, char** argv){
printf("test message\n");
return 0;
}

リビジョン0のソースを取り出す。
このようにすると、各リビジョンの一部のファイルだけを
うまく利用することが出来ます。

次回はタグの話をするか、hg自体の話をするか。
今のところ検討中です。
関連記事
スポンサーサイト

Comment

コメントフォーム
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTMLタグは使用できません
(任意) ID生成と編集に使用します
(任意) 非公開コメントにする

Page Top

Trackback

Trackback URI
http://parabola0.blog86.fc2.com/tb.php/588-f3733271 この記事にトラックバックする(FC2ブログユーザーのみ)

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。