【分散型バージョン管理】 Mercurial 【hg】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/08/25(火) 23:02:30公式
http://mercurial.selenic.com/wiki/
日本語チュートリアル
http://mercurial.selenic.com/wiki/JapaneseTutorial
Mercurial - Wikipedia
http://ja.wikipedia.org/wiki/Mercurial
Mercurialではじめる分散構成管理
http://gihyo.jp/dev/feature/01/mercurial/0001
TortoiseHG
http://tortoisehg.sourceforge.net/
0153デフォルトの名無しさん
2010/02/20(土) 13:22:31Eclipseのプラグインでもファイル名文字化けしたりするからな
0154デフォルトの名無しさん
2010/02/20(土) 13:48:02ってことはBazaarが根本的な問題を抱えてるってことかぁ・・・。
Mercurialの日本語問題に絶望してBazaarならと思ってただけに残念だ。
0155デフォルトの名無しさん
2010/02/20(土) 13:58:390156デフォルトの名無しさん
2010/02/20(土) 14:18:28確かにそうなんだけど、Windowsとかでコンソールの設定弄るのが面倒。
>>153
Eclipseがbazaarとやりとりする方法に問題があるんじゃない?
>>154
根本的な問題はなくて、環境依存のバグがたくさん残ってる感じ。
Macでファイル名がNFCじゃなくてNFDで正規化されるのに対応できてないとか、
大文字と小文字を区別しないファイルシステムのサポートが不完全とか、
外部プロセス(diffとか)を起動するときの引数の文字エンコードとか。
Mercurial や git なら「そんなファイルシステムやエンコーディング使っている方が
悪い」で済ませちゃってるけど、Bazaarは大風呂敷広げちゃったせいでsvnに
必死で追いつこうとがんばってる感じ。
0157デフォルトの名無しさん
2010/02/20(土) 15:31:41テスト側にとってはあって当たり前なので、今のところ SVN から離れられない。
なので確実に大丈夫なファイルだけ Hg で管理。
0158デフォルトの名無しさん
2010/03/04(木) 13:05:440159デフォルトの名無しさん
2010/03/06(土) 09:43:25ハァ?「Mercurialしかない」どの口開いたらそういえるんだ?
Windowsでのさっさと日本語ファイル名の問題さっさと直せよ、さっさと。
win32mbcsも、そういう拡張とかに頼ってるのがそもそもおかしいそもそも。
0160デフォルトの名無しさん
2010/03/06(土) 09:46:02開発者側は「マルチバイトファイル名を使わない」そう思っていた時期が私にもありました・・・
別会社に頼んでたphp仕事で「〜〜のコピー」みたいなファイル名をいくつもみたときは殴ろうかと思った。
MercurialとかgitがさっさとWindowsでのマルチバイトファイル名対応したら、殴らんでもよくなるんだが。
0161デフォルトの名無しさん
2010/03/06(土) 10:01:337-bit ASCII だけでがんばる必要などどこにも残っていない。
0162デフォルトの名無しさん
2010/03/06(土) 11:21:21NFDしちゃうMac対応の方がツライ
0163デフォルトの名無しさん
2010/03/06(土) 12:10:420164デフォルトの名無しさん
2010/03/06(土) 12:21:53正しく処理できるべきなんだけどねー
Macの場合はNFD以外に一部の文字のマッピングを変えているそうだが…
0165デフォルトの名無しさん
2010/03/06(土) 12:33:51設計方針としてアリだと思う。ただ、両者間で動くアプリ作ろうとしたら面倒だけど。
一部の文字のマッピングうんぬんは知らなかった。
0166デフォルトの名無しさん
2010/03/06(土) 12:46:35さらに画面上に表示するときだけ、合成されたグリフを出すので気づきにくい。
OSX だと、ほとんどのところで UNICODE 正規化をかけてくれるから混在しても同じファイルにアクセスできる。
ところが、正規化のことを予想していないアプリケーション/コードが、たとえばファイル名「だ」を作成したはずなのに
ファイルを列挙すると「た゛」が返ってきて驚く。というケースが発生するのだ。
OSX の API を普通に使えば問題は出てこないんだけど、
POSIX アプリが C の RTL だけ使うと、こういうことが表面化する
0167デフォルトの名無しさん
2010/03/06(土) 12:47:48どれがどの文字かさっぱりわからねー。
0168デフォルトの名無しさん
2010/03/06(土) 14:01:57http://pc11.2ch.net/test/read.cgi/mac/1214284891/172-
0169デフォルトの名無しさん
2010/03/06(土) 14:05:15Macみたいに中途半端に気を利かせてくれると余計にややこしくなるんだけども。
0170デフォルトの名無しさん
2010/03/06(土) 14:10:420171デフォルトの名無しさん
2010/03/06(土) 17:00:000172デフォルトの名無しさん
2010/03/06(土) 17:28:45詳しくはアナウンス[1]やチェンジログ[2]にありますが、いくつか重要な部分だけ:
・ダウンロード: http://tortoisehg.org/ja/
・新インストーラは32ビットと64ビットが別々に用意されている
・旧バージョンのアンインストール前にホームディレクトリにあるMercurial.iniのバックアップを取る
・WindowsにおけるGUIが0.9系に比べて退化してるのは仕様(GTK+ 2.18の問題なので、今すぐ解決できない)
・日本語Windows向けのフォント設定: http://tortoisehg.bitbucket.org/manual/1.0-ja/settings.html#id10
[1] http://sourceforge.net/mailarchive/message.php?msg_name=3f40cf551003052300m2b7c44fase7b71e804612fef4%40mail.gmail.com
[2] http://bitbucket.org/tortoisehg/stable/wiki/ReleaseNotes#tortoisehg-10
0173デフォルトの名無しさん
2010/03/06(土) 17:53:39変わらないよ
echo -n "\xe2\xbe\xbc"| uconv -f utf-8 -t utf-16be -x '::nfd;'| hexdump
0000000 2f bc
echo -n "\xe9\xab\x98"| uconv -f utf-8 -t utf-16be -x '::nfd;'| hexdump
0000000 9a d8
echo -n "\xe9\xab\x99"| uconv -f utf-8 -t utf-16be -x '::nfd;'| hexdump
0000000 9a d9
0174デフォルトの名無しさん
2010/03/06(土) 22:46:01Åは正規化挟むとSJISからラウンドトリップできないらしい。
まあ、実用上禁止にしてしまえばすむ話だと思うけど。
プログラマのための文字コード技術入門
A.4 Unicodeの諸問題
http://gihyo.jp/magazine/wdpress/plus/978-4-7741-4164-0
あとは、パズル要素が増えてて結構大変みたいだね。
国ごとにCJK文字(A)に違う文字を割り当てしてたところに、
それぞれ反対の文字をJIS2004みたいに新しく用意したので、
それぞれ新ルール(意味ごと->字形ごと)に従ってSIPに登録 ch-tw:B(ja-jp:A) ja-jp:C(ch-tw:A)したら、
Unicode表記で同じ2文字を表現するのに、母国語の文字コード割り当てからUnicodeに変換すると別になる
(ch-tw:AB = ja-jp:CA = CB =ch-tw:A ja-jp:A)とか。
0175デフォルトの名無しさん
2010/03/06(土) 22:59:23ちなみにHGてSubversionと連携できるの?エロい人教えてちょうだい
0176デフォルトの名無しさん
2010/03/07(日) 01:04:18SVN リポジトリがあって Mercurial をクライアントとして利用することなら一応できる。
0177デフォルトの名無しさん
2010/03/08(月) 14:10:29ちょうど最近試したので共有しとく。
連携というか、チェックアウトしたものをMercurialのレポジトリとして運用する感じ。
ブランチタグやバージョンタグの構造を伴ったままのSyncはできない。
0178デフォルトの名無しさん
2010/03/08(月) 14:12:35参考にしたところも書いておく。
Mercurialではじめる分散構成管理:第6回 勝手に「分散構成管理」 〜非Mercurial環境との共存|gihyo.jp … 技術評論社
http://gihyo.jp/dev/feature/01/mercurial/0006
0179デフォルトの名無しさん
2010/03/08(月) 16:32:52hgsubversion
0180デフォルトの名無しさん
2010/03/08(月) 17:47:47TortoiseHg使っててコミットとか出来ていた状態で、
TortoiseHgをアンインストールして、cygwinのコマンドラインで使おうとしました。
しかし、
hg commit -m "hogehoge"
とコミットしようとし他ところ、
abort: no username supplied (see "hg help config")
などと言われてしまいました。
TortoiseHg使っていたときの設定がそのまま $HOME/Mercurial.iniに残っているのですが、
何がまずいんでしょうか?
0181デフォルトの名無しさん
2010/03/08(月) 18:46:43読み込まないんじゃないかな?
0182デフォルトの名無しさん
2010/03/09(火) 03:38:16cygwinって独自のディレクトリを作って、その中にユーザのホームディレクトリを作るんじゃなかったっけ?
Windowsのホームディレクトリは無関係な気がする。
0183180
2010/03/09(火) 12:05:42ああ、そっか。
hg help config しろっていうから出力見てたんだけど、Windowsの方みてたw
Unixでは.hgrcにしろって書いてあるね。
Windowsでも %HOME%/.hgrc は読んでくれるみたいだから、.hgrcにしとけば両方から読めそう
試してみます。
>>182
そっちは大丈夫なはずです。HOME環境変数はcygwinでもこちらの意図したところに設定してあるので。
0184180
2010/03/09(火) 12:29:00(TortoiseHgのまま使っててエラーでた箇所はコメントアウトしたけど[encode]とか[decode]とか)
さきほどはお礼を忘れてました。ありがとうございました。
0185デフォルトの名無しさん
2010/03/17(水) 08:36:29helpにも公式サイトにもろくに書いてないから試すのも苦労したぜ……。
hg サブコマンド --mq 引数
で、リポジトリそのものじゃなくMQパッチに対して、サブコマンドを作用させることができるのか。
当然MQパッチをバージョン管理してないとまったく意味がない、と気付くのに二時間かかった……。
0186デフォルトの名無しさん
2010/03/17(水) 15:35:29なるほど
パッチのパッチなんかみたくない
0187デフォルトの名無しさん
2010/03/17(水) 19:56:40しかも1.4よりもやりやすくなったという
0188デフォルトの名無しさん
2010/03/18(木) 23:12:17いやそうではなくて、基本的には従来のMQコマンドの置き換えだよ。
例えばqinitの代わりにinit --mqとか、qdiffの代わりにdiff --mqとかそんな感じ。
qinitとかはdeprecatedになってるので注意。--mq使えってこと。
0189185
2010/03/19(金) 08:18:47qinitとかしても警告とか出なかったし
軽く試した結果をみて勘違いしたようだごめん
0190デフォルトの名無しさん
2010/03/19(金) 13:37:42従来のMQコマンドが削除されたわけでもないから、
それほど話題になってないのかもねー。
私はMercurialのMLで知りました。
0191デフォルトの名無しさん
2010/03/22(月) 12:38:39日本語のフォルダだとTortoiseHgでファイルの追加ができません。
なんとかしてください。
0192191
2010/03/22(月) 13:04:01mercurial.iniに、
[extensions]
hgext.win32mbcs =
を追加したら日本語フォルダでもファイル追加とかできるようになりました。。。
0193デフォルトの名無しさん
2010/03/22(月) 23:04:12駄目文字問題
0194デフォルトの名無しさん
2010/03/22(月) 23:09:19日本語使いたかったらBazaar使え。
0195デフォルトの名無しさん
2010/03/22(月) 23:11:240196デフォルトの名無しさん
2010/03/23(火) 03:12:030197デフォルトの名無しさん
2010/03/23(火) 03:27:04kihonsekkei.xls
みたいなファイル名にするのか?
0198デフォルトの名無しさん
2010/03/23(火) 05:33:370199デフォルトの名無しさん
2010/03/23(火) 10:34:030200デフォルトの名無しさん
2010/03/23(火) 10:42:15不満があるなら不満が無いように改善すべき
0201デフォルトの名無しさん
2010/03/23(火) 11:03:310202デフォルトの名無しさん
2010/03/23(火) 11:56:28それは多言語対応とは言わない
0203デフォルトの名無しさん
2010/03/23(火) 14:43:540204デフォルトの名無しさん
2010/03/23(火) 16:30:000205デフォルトの名無しさん
2010/03/23(火) 18:54:260206デフォルトの名無しさん
2010/03/23(火) 23:54:200207デフォルトの名無しさん
2010/03/24(水) 13:53:170208デフォルトの名無しさん
2010/03/24(水) 22:51:490209デフォルトの名無しさん
2010/03/24(水) 22:55:260210デフォルトの名無しさん
2010/03/24(水) 23:37:000211デフォルトの名無しさん
2010/03/24(水) 23:39:110212デフォルトの名無しさん
2010/03/25(木) 00:18:01直すところがわかってるなら多言語対応版に fork できないのかな。
0213デフォルトの名無しさん
2010/03/25(木) 00:30:050214デフォルトの名無しさん
2010/03/25(木) 09:52:38CP_ACPでマップできない文字を全部 '?' にした上で Win32 API 呼び出して、結果は同じなんじゃね。
0215デフォルトの名無しさん
2010/03/25(木) 10:50:12ファイル名の件は国際化テストケースの管理ができないので(俺の組織では)致命的。
0216デフォルトの名無しさん
2010/03/25(木) 12:21:12おまえさんのところではhgのテストをしてるのか?
そうじゃなければテストスクリプトの中でcpすれば済む話。
致命的でもなんでもない。
0217デフォルトの名無しさん
2010/03/25(木) 16:33:52日本人が日本人のために作っているんだから
わざわざツールのせいでファイル名を外国語やローマ字にして
作業効率を落とす事になるなら、普及も進むわけがない。
0218デフォルトの名無しさん
2010/03/26(金) 00:41:54とてもいいアイデアですね!
ところで、cp先のファイル名を .hgignore に書いておきたいんですが、文字コードはどうすればいいですか?
0219デフォルトの名無しさん
2010/03/26(金) 00:46:22ignoreしたいファイルは適当な名前のディレクトリつくってその中に全部ほりこんどけばいいよ
0220デフォルトの名無しさん
2010/03/26(金) 02:36:580221デフォルトの名無しさん
2010/03/27(土) 23:03:27オプション変えながら様子を見てるけど、いまいち挙動が分からん。
0222デフォルトの名無しさん
2010/03/29(月) 10:26:070223デフォルトの名無しさん
2010/03/29(月) 11:43:29コミットダイアログの左上にあるブランチボタン ("branch: default" って書いてある) をクリックして
そこに新しいブランチ名を入力して、次のコミットからそのブランチになります。
ちなみに1.0からはファイル変更なしでも、コミットメッセージだけ入力すればブランチ切ることできます。
0224デフォルトの名無しさん
2010/03/29(月) 12:47:14ありがとう!!!!!
まじ助かった><
0225デフォルトの名無しさん
2010/03/29(月) 14:40:08http://tortoisehg.bitbucket.org/manual/1.0-ja/
0226デフォルトの名無しさん
2010/03/29(月) 16:09:52後は日本語対応化を書いたサイトが最新のバージョンまで追いついてくれると
新規の利用環境が整うんだけど
0227デフォルトの名無しさん
2010/04/02(金) 12:48:150228デフォルトの名無しさん
2010/04/10(土) 22:38:390229デフォルトの名無しさん
2010/04/11(日) 15:52:170230デフォルトの名無しさん
2010/04/14(水) 09:39:52亀hg 1.0.1 入れてみた。フォントの設定はあるみたいだけど、全然変わらない。
一応「MS ゴシック」に書き直してみたりもした。
結局 >>107 の方法で変更した。
0231デフォルトの名無しさん
2010/04/14(水) 12:36:45transaction.pyでopenを使ってるところをopenerを使うように変更してもらえ
そうしたらfixutf8でほぼ問題が無くなる
0232デフォルトの名無しさん
2010/04/14(水) 12:50:45|┃ | |
|┃ \_/
ガラッ |┃ |
|┃ ノ// /  ̄  ̄ \
|┃三 / ::\:::/:: \
|┃ / <●>::::::<●> \.
|┃ | (__人__) |
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
0233デフォルトの名無しさん
2010/04/14(水) 13:24:54だめ、fixutf8が読み込まれる前に、まだUTF-8になっていないコマンドライン引数を
使ってしまっている部分がある。
0234デフォルトの名無しさん
2010/04/14(水) 13:26:110235デフォルトの名無しさん
2010/04/14(水) 18:32:50それでなにか問題なのか?
0236デフォルトの名無しさん
2010/04/28(水) 14:29:410237デフォルトの名無しさん
2010/05/04(火) 21:39:260238デフォルトの名無しさん
2010/05/10(月) 01:00:25他のWindowsプログラムから使いにくいんですが、上手く扱う方法ないんでしょうか?
cygwin版hg.exeないのかな?
cygwin bash上からは使えるけど、cmdからは使えなかったり、NetBeansなどから設定できなかったりします。
0239デフォルトの名無しさん
2010/05/10(月) 07:42:39PATH を通せばいけた気が。
0240デフォルトの名無しさん
2010/05/10(月) 11:30:06@python C:\cygwin\bin\hg %*
とか書いた hg.cmd をパスの通ったとこに置いとけばいいんじゃない?
0241デフォルトの名無しさん
2010/05/13(木) 13:00:15PATHは通してますが、オプション設定でOKするとMercurial見つからないと行ってくる
>>240
いけるかなー、試してみます
0242デフォルトの名無しさん
2010/05/13(木) 17:18:08そういえば、Eclipse のアナウンスがあったけど、この件どうなったんだろう?
0243デフォルトの名無しさん
2010/05/16(日) 08:50:160244デフォルトの名無しさん
2010/05/19(水) 01:19:330245デフォルトの名無しさん
2010/05/19(水) 06:41:03nodeidをconvertしないオプションがあるからそれを使えばいけるかもしれない。
0246デフォルトの名無しさん
2010/05/20(木) 00:45:19ありがと、convertってコマンド自体がないけど、
convertextensionでよいの?
0247デフォルトの名無しさん
2010/05/20(木) 02:30:20Yes.
hg convert --help でいろいろ出てくるんで、試してちょ。
0248デフォルトの名無しさん
2010/05/20(木) 02:49:48ただ単に hg branches で出したくないだけだったら、新たにブランチ作って、
元のはcloseするのが正しいやり方のような気がする。
0249デフォルトの名無しさん
2010/05/22(土) 10:20:04作業できるんだけど、エクスプローラーの右クリックメニューから
どの項目を選択しても、GUIが全く起動せず無反応。
そういう不具合ってうちの環境だけ? 再インストールしてもダメ。
コマンドプロンプトからaddとかするとアイコンオーバーレイは
普通に動作してる。
Win 7 64bitで、ToirtoiseSVNも入ってる環境。
TourtoiseHgをこのマシンに入れたのは初回。
0250デフォルトの名無しさん
2010/05/23(日) 02:05:51普通は2つのリポジトリを作るんだろうけど、
ある数個のプログラムだけ共通処理として同じソースを利用している場合、
Aで共通処理を修正したらBにもマージって
ってことが出来ないから、
1つのリポジトリでA,Bをブランチ作った。
でも、やってみると、その共通ソース以外のも全部マージしなくちゃならないハメになって困ってる。
みんなこういうときどうする?
0251デフォルトの名無しさん
2010/05/23(日) 04:19:33それで、実用性が良く分からないけどsubrepoを試すか、ツールで頑張る。
1つのリポジトリ2つのブランチの場合、Transplant extension で頑張る。
0252デフォルトの名無しさん
2010/05/25(火) 20:58:10Subversionしか知らなかった自分としてはあまりの手軽さに感激してるのですが
一点どうしても不満な点があります。
例えば、dir01/dir02/dir03という階層があり、
dir01をバージョン管理しているとします。
この状態で、Subversionではdir03のみをチェックアウトして
ごにょごにょ操作したのち元のリポジトリにコミットすることができます。
しかしmercurialではdir01以下を丸ごと扱うしか術が無いようです。
.hgディレクトリもトップディレクトリにしか無いですね。
具体的には、
会社でサイズの大きなファイル群をmercurial管理するようにしたのですが、
自宅でも作業したいのです。
しかし自宅では、プロジェクトのごく一部しか修正することは無いので、
その部分のみを取り出して自宅用の小さいリポジトリを作りたいのです。
こんなことは実現可能でしょうか?
■ このスレッドは過去ログ倉庫に格納されています