【分散型バージョン管理】 Mercurial 【hg】
>>647 git/hgはLinuxではバイト列だから全く制約は無い。
Linuxで壊れるのはロケールに依存するsvn/bzr。
git/hgはcygwinを使えば問題ない。
cygwinじゃないWindowsはぐぐれば出て来るので、そちらを。
>>647 ログについてはHGENCODINGでぐぐりましょう。
>>647 Windowsでしか編集とcommitをしないのであれば、共有リポジトリの位置に関わらず、コミット・ログもファイル名も気をつける点は特に無い。
>>648 bzr もリポジトリ置くだけならロケールが設定されてなくても大丈夫だよ。
チェックアウトするときには LANG=ja_JP.utf8 とか en_US.utf8 とかして
utf8 使えって指定してあげないといけないけど。
>>651 美乳-日本語.txtとしないとロケールを間違ったとき壊れます
>>640 >無難なのは分かってるけど、開発者が逃げてるからいつまでも解決しないんだと思う。
>開発者ならガンガンマルチバイト文字を使って問題を肌で感じるべき。
いい言葉だ。ほんとその通りだと思う。
DBのテーブル定義で、がんがんマルチバイトを使ったら、上司に首を締められました(><)
>>652 そのファイル名をつけるユーザーの心は既に壊れている気がする。
mq使っている時に、新しいファイルを追加したい場合ってどうするの?
既存のファイルならhg qnew -f file.txtとかhg qrefresh file.txtでいいけど
新しいファイルを加える方法がわかりません。
>>657 もしやと思ってhg add file.txt; hg qnew -ef add_file_txt file.txtしてみたらいけました。
hg qadd とかないのかなとおもってたけど、hg addでいけたのね。
>>648-650 ありがとうございます
Linux上で開発はしないので(置き場所にするだけ)
hgも使えそうですね…
と思ったけれど、
Linux上で置き場所にしてるディレクトリを覗いたら
凄いことになる、とかあったりするんだろうか…
まあそのへんはLinuxの問題だから、ここでは関係ないか…
>>659 自動ではファイルは展開されないから、問題ないかと。
展開してしまったら
>>660 で。
hg qnewで、ファイルの一部だけをパッチにしたい場合ですが、
>>603 >一部だけ指定はrecordしてからqimportかねぇ・・・
既存のパッチがあるときは、hg recordが失敗するので、この方法だとだめっすね。
hg diff > patch.diff
hg revert
cp patch.diff patch2.diff
vi patch2.diff
patch -p1 < patch2.diff
hg qnew -f patchnameA
cp patch.diff patch3.diff
vi patch3.diff
patch -p1 < patch3.diff
hg qnew -f patchnameB
うーん面倒。
hg qnew -f test
hg qdiff > test.patch
vi test.patch
hg qpop -a
vi .hg/hgrc/test.patch
patch -p1 -d. < test.patch
hg qnew -f test2
これからmercurialを本格的に使おうと思っているのですが、
リモートリポジトリを作成せずに、ローカルからリモートリポジトリにpullまたは同期などは行えますか?
公開サーバーがあるのですが、管理者は基本的におらず、
各ユーザーはリリースしたリビジョンのみ公開サーバーで公開できるような感じで運用したいと思っています。
やはり、最初の段階でリモートでリポジトリを作成するか、ローカルリポジトリをリモートリポジトリに
クローンするしかないんでしょうか?
>>665 探せばあると思うし、Tracってどうだったけ?
あっちで聞いた方が良い気がする。
667 :
デフォルトの名無しさん:2011/02/19(土) 00:24:46
HGてなんで漢字のファイル名が上手く扱えないのか、エロい人教えて頂戴。
669 :
デフォルトの名無しさん:2011/02/19(土) 00:32:29
ほんとー? WindowsXPなんだが・・・
ダメ文字的なのはあったよふな
>665
bitbucketでええやん
つーか、サーバ要らないし。
極端な話、USBメモリーを渡し合えば良いし。
>>665 公開サーバーからtransplantするとできるかもしれないが
リリースしたリビジョンだけ公開って難しくない?
675 :
665:2011/02/22(火) 22:35:03.88
>671
パブリックな環境には置けないです。。
>672
仮想化を利用して、ゲストOSで開発したものをホストOSでリリースバージョンだけ管理しようと目論んでいます。
なので、scpなどでもいいかも。。
でも、きれいなリビジョンで渡せそうにないですね。まぁ、そこはそんなに拘ってはいないのですが。
>674
transplant調べてみましたが、マージに近い?様な感じになるんですかね??
現在、bitbucketを参考にredmineを導入したらどうかなーと思いつつ検証を始めたところなんですが、
scpでいいんじゃないのだろうかと思ってきました。。
>>675 bitbucketは5人までプライベートでも無料だよ。
5人というのもpushできるのが5人って意味で、開発者が5人と制約されているわけでは無いよ。
拠点が5つあったら拠点ごとに内部で共有レポたてて、
bitbucketにはまとめ役だけがpushするという運用もあるよ。
Redmineはね、プロジェクトを作ったら、cronでリポジトリを自動的に作る機能があるよ。
>>676 プライベートだとpullできるのも5人までなのかな?
678 :
デフォルトの名無しさん:2011/02/22(火) 23:13:05.45
>>665 >リモートリポジトリを作成せずに、ローカルからリモートリポジトリにpullまたは同期などは行えますか?
gitやbazaarならできるけどmercurialでは無理。リポジトリを作るかクローンをする必要がある。
>各ユーザーはリリースしたリビジョンのみ公開サーバーで公開できるような感じで運用したいと思っています。
リリースしたリビジョンのみのブランチを作ってそのブランチのみをpush
>>678 sshでhg init叩けばいいだけやん
sshもだめだって言うんなら、簡単なスクリプト書けばいいやん
ローカル・リポジトリがあるなら、ローカルからリモートにcloneもできる。
hg clone local_branch ssh://remote_host/remote_branch
clone後に、ローカル・リポジトリの.hg/hgrcを作るか編集して、以下を加えればクローン元がリモートのように振る舞える。
[paths]
default = ssh://remote_host/remote_branch
むつかしいなあバージョン管理
バージョン管理かんたんじゃん。なかった時代でバージョン管理なんてできないし。
バンバンコミットして履歴が見れるのは素敵だよ
>681
RCSでも出来るようなことだけをやっとけば簡単だろ。
新しい概念とそれを実現する方法の説明が分離していないのが学習の枷になる。
一つ覚えた事を、次に覚える事の足がかりに出来ない。
結局の所、学習者は学習する前にまず学習の仕方を(自力で)修得しなければならない。
以前から類似の物を使っていれば簡単だろうが、初学者には厳しい学習曲線にならざるを得ない。
まあ草の根で開発されたようなソフトウェアにはよくあることだが。
履歴が取れるとだけ言われて
なにもわからないまま渡されても
日に一度、全ての状態をコミットし続けるだろう
それでも便利と思われるかもしれないが・・・
バージョン管理を語るのならスレ違い
svnのようにサーバを立てる必要もなく、gitのようなbareも必要ないという
hgの特徴を語るのなら続けて良いけど
バージョンアップごとにこんな機能が増えました みたいなのまとめてるサイトない?
>>686 まさにその特徴が今の仕事にベストフィット。
というか殆どの仕事はMercurialで足りてる。
Mercurial使わないとか、残業代のためにわざとやってるとしか思えないね。
日々、少しずつ増減する画像ファイルの管理にMercurialを使ってみたが、
まぁ一応使えた。1万ファイルぐらい。
リポジトリが大きくなりすぎると、ssh経由のcloneが失敗するのに困ったが、
一旦、bundleファイルを作る事で何とかなった。
hg 1.8 & 亀hg 2.0 リリースおめ
TortoiseHg 2.0って、日本語の扱いはどうなってるのさ?
変わらんだろ
TortoiseHg 2.0超速い!
ツールキットを変えたんだっけ?
695 :
デフォルトの名無しさん:2011/03/02(水) 20:53:27.50
GtkからQtに変えるだけで速くなったの?
>>694 GTKからQtに変えた理由ってなんかあるんだっけ?
GTKよりQtのほうがいいの?それともPythonバインディングの出来の差?
pygtkはしょぼいってこと?
pygtkというか、gtk自体、Windowsではもっさりだからな。
700 :
デフォルトの名無しさん:2011/03/02(水) 22:13:00.97
>>699 LinuxとMacOSXとWindowsの中で1番自信があるのがWindowsと言ってたような
リンク先を読まずに勝手に捏造すると
・Macも含めて対応しようとするとGtkは辛い
・Gtkが一度やらかしたのが考え直すきっかけ
WindowsとMacintoshで、Qtの方がGtk+より良いサポートがあり、品質向上が期待できるそうだ。
>>697 > It's been our experience that Win32 support for GTK has been
> suboptimal for some time (rendering glitches, etc) and declining in
> quality. While the support for native Mac OS X has been stalled and
> never released.
>
> Switching to Qt has given us better support for both platforms.
GTKはWin32サポートが弱くて品質もよくない。
Mac OS Xにいたってはネイティブでのサポートは失速しリリースされてもない。
だからQtにしたってあるね。
GTKはWindowsで冗談みたいなフォントレンダリングだったからなぁ。
About TortoiseHgからブラウザ開かなかったしな。
>>704 。が真ん中にあるのは味わいがあって慣れたのだが
707 :
デフォルトの名無しさん:2011/03/03(木) 13:27:57.33
これ、Workbenchだけで基本何でも出来るな。
Explorerへの統合なんか要らんかったんや。
>>708 それを言っちゃあ・・・
TortoiseHg 2.0でbzr-explorerに追いついたのかな?
bzrではbzr-explorerとTortoiseBzrに分かれているけど、
hgではTortoiseHgでシェル拡張が統合されているのが売りかと思う。
あれはなんで分かれてるんだろうね
TortoiseHG2.0にバージョンアップしたんだが、
hg pull
hg update
しか書いてないバッチファイルが動かなくなった。
hg pullが終わった瞬間にbatファイルが終了してしまう。
Mercurial1.8でなんか挙動変わった?
multiple headsになってない状態で、hg mergeすると、親チェンジセット1個で変更点無しの
謎チェンジセットが出来るね。何の意味があるのか。
>>711 hg pull を hg.exe pull にすると挙動が変わったりする?
>>712 いえ、自宅WindowsPC→Linuxサーバーで、自宅でコマンドプロンプトのバッチファイルを動かしました。
>>714 hg.exe pullにすると、hg.exeは認識できないエラーで実行されず、次のコマンド進みます。
ちなみに
hg pull
pause
としてもバッチファイルが終了するので、hgが強制的に終了してる気がする…。
>>715 bitbucketという問いはhttpsのことだろう。
hg.exeは亀付属のもの?
亀以外にeasy_installやらソースを落としたのがどっかに無い?
あと拡張を全部外したらどうなる?
>>715 hg pull を call hg pull にすればいい気がする。たぶん。
それで動けば後々のために hg update も call hg update に変えた方がいいと思う。
なんか 2.0 になって実行ファイルの置き場が変わった気がする。
Mercurial.ini にフルパスで TortoisePlink.exe 指定してたらはまった……
718 :
717:2011/03/04(金) 14:34:52.44
hg.exe でなく hg.cmd が使われちゃうことについては、PATH 環境変数を
いじる(直す?)方が正しい気もしてきた。
みなさんありがとうございます。
>>717さんのcallで解決しました。
確かに2.0になってファイルの置き場所が変わったのにmercurial.iniは変わらないですね。
デフォルトが相対パスで同一フォルダになってたからこれにもハマった。
>>718 bin\配下に変更になったからPATHは直したほうがいいのかも…。
TortoiseHg 2.0にしたら、plink.exe, tortoisepling.exeを呼び出すような処理で
詰まって固まりまくりだわ。コマンドラインから hg out とかやっても詰まる。
mercurial.iniで、sshコマンドをCygwin版sshにしたら直るから、
なんか入力待ってるのか?
>>720 コマンドラインからplink実行してみたら良いじゃん。
初めてアクセスするサーバーで、このfingerprintでおk?とか訊いてきてるかもよ。
あえて2.0いれてみたら使いにくい・・・
1.0の昨日は一通りいれてからリリースしてほしいわ・・・
>722
わざわざコンソールを開くってメニューも用意されてるぐらいだし、
足りない所はコンソールでやるって感じなのでは?
TortoiseHg 2.0いれたけどissue trackerの設定項目消えてるし・・・。
でも以前の設定を一応使ってくれてるみたい。
レポジトリのURL設定でパスワードまで設定しても保存してくれない(URLに情報を付加してくれない)から
URLに直書きしたら以前と同じように保存された。
ただしURLエンコードはしてくれなくなってた。
mercurial.ini にユーザ名とパスワードが保存されてる。
BitbucketでコピーされるURLにユーザ名が入ってるけど
そのまま使っちゃうとTortoiseHgでパスワードを設定しても
同期の時にパスワード入力求められた気がする
ユーザー名とパスワードともにURLから消せばmercurial.iniの
ユーザー名とパスワードの設定を使ってくれるみたい
hgrcに
[auth]
を手動で書けばいいよ
tortoisehg 2.0、スタックダンプが頻繁に出るけど、
それでも1系に戻そうと思わないぐらいには快適に動く。
>>713 よく状況がわからんけどfast-forwardかも
Fast-forward merge ... なに、これ、キモい
バグかと思ったわ
いや、バグであってるっぽい。
fast-forward mergeでやりたかったのって、やっぱりgitの同名の機能なのかな
まぁv1.8.1で早くもいなくなるらしいからなんでもいいか
過去の指定リビジョンからのコピーって出来ないんだな。
svn cp と同じ事を hg cp でやろうとして悩んだ。
733 :
デフォルトの名無しさん:2011/03/09(水) 02:28:49.14
>>732 何したいんだ?
branch / bookmark / tag / cloneのどれか使え
>733
ファイルがでかいから、リポジトリ内での参照コピーですむ方法があれば、そうしたかった。
過去のリビジョンには存在したが、今は存在しないファイルね。
>>732 リポジトリ内で指定リビジョンに戻すなら、hg revert -r [リビジョン番号] [ファイル名]
リポジトリ外に出すなら、hg archive -r [リビジョン番号] [ディレクトリ]
>735
revertで戻したら、デカいファイルでも、数KBのメタ情報だけで済むの?
>>734 hg update 過去のリビジョン
hg cp
hg commit
hg update 元のリビジョン
hg merge
mercurial-1.8.1.tar.gz
fast-forward mergeは、そんなに問題なのか?
Windowsの64bitsインストーラで何かと問題があったみたいだからそのついでっぽい感じがしないでもない
亀の初期不具合対応で、hgとバージョンを合わせるという意味もあったかもしれない
741 :
デフォルトの名無しさん:2011/03/14(月) 08:07:37.98
tortoisehg2.02にしたらbitbucketへのpushができなくなったんですが、なにが設定しなきゃいけないんでしょうか?
Tortoisehg2.0.2でバッチファイルでthg commitするとpythonのエラーが出てしまう。
友人の環境でも駄目だった。
同じことになって改善した方います?
743 :
742:2011/03/14(月) 18:39:02.06
自己レス。解決しました。
右クリックメニューからGUI立ち上げて一度コミットしたら以後使えるようになった。
だがしかし、mercurial.iniの設定を変更しようとするとエラーが出る…orz
どうすりゃいいんだ…。
どっかにTortoisehg2.0.0以降のmercurial.ini[Tortoisehg]の設定項目一覧ってないですかね?
めっちゃめちゃ久しぶりに 2.0 にアップデートしてみた。結構変わったもんだな。
フォントも設定画面から変更できるようになってて感動。
ところで、古いバージョンに上書きインストールしたんだけど、設定画面のエクステンションに
表示される項目が2個しかない。しかも選択できない。クリーンインストールした職場の PC では
もっといっぱい表示されてるんだけど、古いの消してから入れないとダメなのかな?
>>744 2.0.2でなく2.0だと、hgext.win32mbcsのようにhgext.とあるものは削除してしまうバグがあります。
explorerへの組み込みやめて、Workbenchだけ切り離して配布してくれないかな。
>>746 それ俺も思った
設定でコンテキストメニューからいなくできないかな
インストール時に選べるよ?
そんなんあったっけ?
>>749 シェル拡張だっけ?名前忘れたけど、それっぽいもののチェックを外す。
やってみたが、インストーラーでShell Extensionをはずしても、コンテキストメニューが
出なくなるだけで、 シェルへの組み込みは入る。
アイコンオーバーレイは行われるし、キャッシュサーバも常駐する。
>>751 あれ、俺はそれで行けたんだけど・・・
ちゃんとアンインストールして再起動してから再インストールした?
>>745 なんと、バグだったのか。2.0.2 入れたら直るかな。また今度入れてみる。
これから新規サイトを立ち上げに伴い、Mercurialを使用して
バージョン管理を行いたいと考えております。
開発サーバとしてCentOSにMercurialをインストールし、
クライアントソフトはtortoiseHg2.0.2を使用してます。
クライアントPCから、サーバにあるリポジトリへのPUSHはできてますが
元ソースへの反映方法がわかりません。
元ソースへの反映は別途クライアントからsftpなどのソフトを用いて
アップしないといけないのでしょうか。
リポジトリの作成は、サイト開発ということがあり、
public_html直下に.hg/を作成しております。
識者の方教えてください。
>>755 教えて頂きありがとうございます。
調べて見ましたところ、現在設定として
hgrcに
[hooks]
changegroup = hg update >&2
を設定することにより、toroiseHGからPULL・UPDATEをおこなうことにより
元ソースに反映されるようになりました。
現在4名でサイトの作成を行っておりますが、
changegroup = hg update >&2
を設定したことにより、今後バージョン管理上不都合は発生したりするのでしょうか。
デフォルトでリポジトリ変更と同時に元ソースのupdateが行われない理由が知りたいです。
>>756 編集中のワークツリーが勝手に他の無名ブランチに切り替えられたら困ります。
759 :
742:2011/03/20(日) 21:06:42.13
>>756 2名で同じことを一ヶ月ほど続けてるけど現状は問題なく管理できてる。
毎回pull確認しないと締め切り直前にマージが発生しやすくなるくらい。
760 :
デフォルトの名無しさん:2011/03/24(木) 02:24:23.67
使い方で質問です。
本家からクローンを作成して、あるチェンジセットに対して自分のカスタム+特定のチェンジセットでの変更のみを適用したい場合ってどういうやり方でやるのがいいんでしょうか。
こういうやり方で正しいんでしょうか?それとも、もっとスマートな方法があれば教えてください。
本家にpushはしませんが、後々、ローカルでhg merge 本家するかもしれません。
1.hg clone 本家
2.hg branch mybranch
3.hg update -r changeset_a
4.自分のカスタム
5.hg commit -m "自分のカスタムを適用"
6.hg diff -r changeset_b -r changeset_c > b_c.diff
7.patch -p1 < b_c.diff
8.hg commit -m "チェンジセットbからcの変更部分のみ適用"
>>760 > 特定のチェンジセットでの変更のみ
transplant拡張
MercurialEclipseのバージョン1.8、何かおかしくない?
何かと言われても
>>763 うちでMercurialEclipseがまともに動いたことがないんだが。
公式サイトには1.71の情報しかないが、インストールすると1.8が入り、かつ例外を吐いて動かない。
普通に動いてる俺は運がいいのか
同じ症状のバグ報告は既にされているようだから、しばらくコマンドラインで耐え忍び。
gitのリポジトリからもってくるのに
一旦git pullしてからhg convertしてるんだけど
めんどくさいしリビジョンがhgとgitで違うしとか
あんまり便利じゃないので、おすすめをおしえてください。
>>769 hg-git。
コンバートはgitのブランチ・タグの特性からhg使いからするとあまり満足した結果が得られない。
gitに限らず、コンバートは一方方向だけなので、完全移行が目的だったら、コンバートでも十分かも。
hg-gitはソースを見る限り、hgとgit間のリビジョンのハッシュ値を何らかの方法で生成しているっぽいので、
相互運用が可能。
だけども、gitが気軽にブランチ=リビジョンを消せる、hgは消せないという特徴から、
gitでもリビジョンが消せないというジレンマがある。
771 :
769:2011/03/31(木) 20:25:06.83
>>771 dulwichはLinuxでは一つ前のをeasy_installで入れて使っている。
Windowsの亀にバンドルされているみたいだけど、Windowsで使っていないから分からない。
773 :
769:2011/04/01(金) 21:28:06.79
hg-gitが例外になるのはhgsubversionを外したら直った。
でhgsubversionを最新にしたらhg-gitが動いた。
これから遊んでみる。
775 :
769:2011/04/06(水) 16:10:25.77
hg clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
が22時間たってもおわらない.
git cloneは30分でおわったのに。
素直にgit使えw
hgsubversionも最初のcloneが重いから仕方ないでしょ。
hgsubvesionは最近になって、開始リビジョンが指定できるようになったようだ。
gitはshallow cloneに対応しているんで、それをワンクッションおけば、
速くなるかもしれない。
778 :
769:2011/04/07(木) 00:51:03.61
なんか4日くらいかかりそうな勢い。まだ2007年のを処理してるし。
電力事情も改善されてきたので、このまま放っておきます。
いや電力事情は別に改善されてないだろ
計画停電は落ち着いたようだけどな
一晩かけてのDLで計画停電で落とされでもしたら泣きたくなる
>>780 自分が落とされてなくても
鯖が落ちたことはあった
無計画停電初日の思い出
Bazzarのbzr-explorerみたいなスタンドアロン型のGUIはありませんか?
TortoiseHgはあるみたいですが、シェル拡張では無くスタンドアロン型で無いかなぁと。
TortoiseHgにはシェル拡張だけじゃなくてワークベンチがついてくるからそれでいいんじゃないの
いまTortoiseSVN入っているからTortoise系はちょっと避けてみたけれど、
入れ直してしばらく使ってみる。
TortoiseHgのワークベンチは、それだけコピーしてきて使う事が出来る。
インストールせずに。
PyGTKと違ってPyQtはWindowsでも比較的楽にソースから立ち上げられるよ
TortoiseHgいれてWorkbench使ってみました。
ネットで調べながら格闘しつつマージまでやってみたのですが、マージ→コミットが
出来なくて、ずっと悩んでいました。
結局、マージ→特定リビジョンへ移行→コミットの流れで思ったようにファイルが
更新されたのですが、TortoiseSVNやTortoiseBzrではマージ→コミットの流れ
だったので、手順を間違えているのか気になっています。
GUIとしてはbzr-explorerの方がなじみやすかったけれど、覚えたいのはMerucurial
の方なので、もうしばらく悪戦苦闘してみます。
むしろコミットしてからマージじゃね
コミットはしてある状態からスタートと考えると、マージ→コミットで良いんじゃね
Mercurialのマージは明確に分けてコミットしようとするから混乱してるだけな気がする。
TortoiseSVNから移ってきた時、PullなりPushした内容が作業ディレクトリに
反映されないという事に気がつかなくて、四苦八苦してたなぁ。
結局概念の違いと間違って覚えていた事を、改めて学習した。
trunkの内容をbranchにpull。マージしてbranchのコミット。
branchのコミット内容をtrunkにpush。
trunkでbranchの内容をマージしてコミット。
この後、branchでtrunkの内容をpullしたら、変更があったから
再びマージしてコミットしてtrunkにpush。
trunkでマージしてコミット・・・以下、リビジョンだけを上げていた
懐かしい日々。
794 :
769:2011/04/22(金) 12:04:17.52
>>793 普通に操作したら、そうはならないんじゃない?
795 :
デフォルトの名無しさん:2011/04/23(土) 09:56:27.27
保守が必要になるとは
質問もあがらないとは珍しいな。ほしゅ。
あれ、今月のバージョンアップはどうしたんだ?
ごめん、コミットしたらコンパイルできなかった。
mercurial-1.8.3.tar.gz
1.8.3は、さほど見るべきものは無さそうだな。
zeroconfに対応してるのが気になるが、ユーザーではないので便利なのかどうか知らん。
TortoiseHG2.0.4リリース済み。
2.1くらいになるまでは怖くて1系からアップデートできないな…。
今月のは定期メンテリリースなんだから目新しい機能はつけないでしょ
定期リリースってなんの意味があんの?
なんか目新しい気がしてくる。
昨日が大差なくても、最終更新日が1年前より安心というプラシーボ効果。
バグ直してるのにプラシーボとかないわー
みんなbitbucketとか使ってるのか?それともGoogle派?
codeplex使ってるよ。
test
809 :
デフォルトの名無しさん:2011/05/18(水) 09:58:27.70
hosyu
自分のいるブランチの親に現在の修正をマージするコマンドってないの?
mqエクステンションって使い道がわからない・・・
>>810 hg qnew myfix
hg qref -e
hg qpop
hg pull
hg update
hg qpush
hg log -l2
hg qfin -a
hg push
812 :
デフォルトの名無しさん:2011/05/20(金) 21:58:33.69
二つ以上さかのぼって、過去のコメントを変更したいのだが、
方法はありますか? 完全に無理?
815 :
デフォルトの名無しさん:2011/05/27(金) 15:18:56.26
hosu
>>1のJapanese Tutorialってリンク切れしてる
キレてないですよ
同じsvnリポジトリを、
マシンAで hg convert したものと、
マシンBで hg cnovert したものがあるとして、
この二つの hgリポジトリって互いにマージできるの?
それともちゃんと clone したものでないとマージできない?
>>818 hg convert は .hg/shamapを1つのところで管理しないとだめなので、transplant拡張を使わない限り不可能。
hgsubversionだと可能。
あ、hgsubversionも別のマシンだとリビジョンが違うハッシュ値になるからだめ。
821 :
デフォルトの名無しさん:2011/05/29(日) 09:28:01.14
822 :
デフォルトの名無しさん:2011/05/29(日) 13:57:02.83
現在使っているリビジョンを表示するコマンドはありますか?
823 :
769:2011/05/29(日) 14:03:10.12
hgsubversionでもリビジョンが同じにならないのか。
けっこう困るんじゃなのか。
825 :
デフォルトの名無しさん:2011/05/29(日) 14:17:21.08
>>823 hg svn rebuildmeta dokosoko
svnは、コミットログを後からでも編集出来るんだから、ハッシュが異なるのは当然では?
828 :
デフォルトの名無しさん:2011/05/29(日) 16:38:51.64
hg glogで時刻でソートするオプションがほしい
今月の月刊Mercurialはどんな感じ?
付録つく?
>>830 日本は発売一日遅れなので、気長に待ちましょう
既存のリポジトリを bitbucket にクローンしたいんだけど、どうやるの??
bitbucketからローカルにクローンするコマンドはあっても、ローカルのクローンを
bitbucketに新規作成するメニューがみあたらないんだけど
新規リポジトリを作成してpushすればいい
それって、clone したのでもなんでもないまったく違う無関係なリポジトリに、
別のリポジトリ内容をpush可能ってこと?
それともpush先のリポジトリがまだが作ったばかりで空っぽの場合、
最初の一回のpushに限ってはリポジトリ間の関係性を一切考慮しないとか?
>>834 > それって、clone したのでもなんでもないまったく違う無関係なリポジトリに、
> 別のリポジトリ内容をpush可能ってこと?
自己責任で-fオプションを試してみよう。
> それともpush先のリポジトリがまだが作ったばかりで空っぽの場合、
> 最初の一回のpushに限ってはリポジトリ間の関係性を一切考慮しないとか?
Yes.
そもそも全然関係ないリポジトリをpush -fすると先祖が複数にできるよ。
>837
えっ?
ええ。
最近忍法帳の仕様って変わった?
社会に出て、cvsの使い方を覚えた頃にsubversionが出現し、
subversionの使い方を覚えた頃にgitが登場し、
gitの使い方を覚えた頃にmercurialを知った私でも、
mercurialを使って良いでしょうか?
Mercurialを使うのに誰かの許可なんていらないよ
Mercurial と git の違いって何?
両方使っている自分からすると
Mercurial
使いやすい
コミットが1個までしかロールバックできない
コミット管理ではなくパッチ管理(MQ拡張)したほうが柔軟性がある
ブランチ機能はおまけ
複数プラットフォームで日本語を扱う場合は事前調査する必要あり。
git
クセが強いのではじめは使いにくい
ブランチをうまく使わないと使いにくい
コミットをいくらでも消去できる、やり直しもしやすい
サーバ建てなくていいので、あらゆる場面でMercurial+MQを使うことを俺はお勧めする。
>>845 名前付きブランチとリビジョン番号がgitに無い。
それ以外は、あんまり変わらない。
>>845 Mercurialのlogは入っているコミットすべて出てくる。
Gitはブランチ(コミット)からたどれるコミットだけ出てくる。
Gitでコミットを消去するという時は、普通は単にたどれないようにするだけで、
ゴミは残ってる。
Mercurial を理解する
新規ユーザは Mercurial の分散開発モデルに混乱するかもしれません。このページ
では、いくつかの基本概念を解説しようと思います。 順を追った説明は チュートリア
ル を参照してください。
======================================================================
あーチュートリアルを見た方が系統立った理解ができるんすね。
では、では、、、
======================================================================
Mercurial の使い方のチュートリアル
このチュートリアルは Mercurial の使い方を紹介します。SCM ソフトウェアを使うにあ
たっての特定の予備知識は必要ありません。
{i} あらかじめ Mercurial を理解する を見ておくとよいでしょう
======================================================================
あらかじめ Mercurialを理解するを見ますか、、、、
「Mercurial を理解する」に飛ばされるじゃないかお!!!
循環参照だお!!!技術者として恥ずかしくないのかお!!!
早くデバッグしろお!!!
850 :
デフォルトの名無しさん:2011/06/10(金) 22:03:31.22
フラグへし折り男。登場
MQで、
・パッチの順番を入れ替える方法
・ファイルの一部だけをコミットする方法
を教えてください。
>>852 > ・パッチの順番を入れ替える方法
1 入れ替えたいパッチをすべてqpop
2 .hg/patches/qseriesを編集
または、hg qnew hoge; hg qfold パッチ、でパッチを現在の位置に移動できる
> ・ファイルの一部だけをコミットする方法
record extensionのqrecord
>>853 ありがとうございました。.hg/patches/qseriesを手で編集するとは驚きです。
仕事で使ってるソースコードとか、自前のサーバ用意するのが面倒だから
Bitbucket 使いたいんだけど、セキュリティとか、さすがにマズいかね?
パッチの順序いれかえがseries編集ってのはどうにかならんかと思わんでもない
たしかにqfold使う手はあるけど、一時的に付けたパッチ名から名前を戻すのがめんどい
857 :
デフォルトの名無しさん:2011/06/11(土) 17:13:38.48
>>856 自分は調べるの面倒で、その方法でやれたからそのままやってるんだが、
公式に入れ替える方法ってそうなのかね?w
わざわざ調べてくれて感謝。
確かに公式ですな。
hg qpush --move じゃないの?
cvs to subversion to hg
867 :
デフォルトの名無しさん:2011/07/02(土) 02:14:07.97
TortoiseHg 2.0.5で下記のような3回連続コメントが15行程度あるファイル
hogehoge.txtならCommitできるがhogehoge.cではCommitしようとすると
エラーも出さずにthgw,exeが動作しっぱなしで帰ってこないのだが?
何か回避する方法はありませんか?
コマンドで直接hg commitすればいけるようなので最悪コマンドで
回避できそうですが?
/* c */ /* c */ /* c */
そのコメントの書き方をやめる
869 :
863:2011/07/02(土) 21:34:57.04
>>865 遅くなったけど 教えてくれてありがとう
TortoiseHGの最新版ってさ、push/pullのURLの入力欄が消えてない??
hgsubversionでcloneできないリポジトリがあるんだけど
どうすりゃいいのコレ
最初はトップレベルのフォルダに全てのファイルが入っていて、
途中のリビジョンからtrunkに移動しているリポジトリがあるのだが
そのリビジョンの取得がいつまで経っても終わらない
layoutはstandardに設定した。
途中のリビジョンからcloneするのは--layout singleでないと出来ないらしい。
A+ trunk/changes.txt
A+ trunk/readme.txt
............
fetching files...
........................................................................................................................................................................
875 :
デフォルトの名無しさん:2011/07/04(月) 20:03:09.71
治】菅首相の資金管理団体、北の拉致容疑者親族所属政治団体から派生した政治団体「政権交代をめざす市民の会」に6250万円献金★3
http://raicho.2ch.net/test/read.cgi/newsplus/1309573084/ 現実のほうがものすごいことが起きている件について、キミはどう思う?
特捜1「献金されています!五千万です!」
特捜2「献金元はどこだ・・・!?」
特捜1「・・・これは・・・ウソだろ?総理です!総理が五千万献金しています!」
110:名無しさん@12周年 07/02(土) 08:36 GAZzjy8T0 [sage]
オバマがビンラディンの親族が属する政治団体に大口寄付してたようなものw
909:名無しさん@12周年 07/02(土) 09:55 oEGy+UI/0 [sage]
テロのスポンサーが総理大臣って…。
>25 名前:名無しさん@12周年[] 投稿日:2011/07/02(土) 08:22:15.91 ID:8a/xyVGw0 [1/9]
>一瞬拉致被害者団体に献金ならまぁいいんじゃないかと思ったんだが
>よく読んだら容疑者団体ってwwwwww
>有り得ない文字に目がおかしくなったのか俺wwwww
俺もwwwwww
やっぱりな、
拉致被害者ってゆすりが目的だと
思ってたけどやっぱりそうだったのか
なんか胡散臭いとずっと思ってたけど
これで証明されたな、
TortoiseHGが、bug fix release出しおった。
今回のアップデートで、syncが使えるようになった
2.1にしたら、エラーで強制終了するようになって、困っていたが
いまいち無名ブランチってのが良くわからない
hg branch barnch-name と何が違うの?
default ブランチのことじゃないの?
あるいは特定のリビジョンから生える同名の別ブランチとか。
>879
分散型はローカルでチェンジセットを更新していくので、サーバー上のリポジトリのチェンジセットと競合が起きる。
その際の対処としてMercurialが自動でブランチを作って枝分かれしておく。
それが無名ブランチ。defaultのブランチも無名ブランチ。
集中管理型から来ると競合時に勝手に分岐されて大混乱する。
GitとBazaarは自分でブランチを意図的に作らないといけないので、
Mercurialの無名ブランチはかなり独特だと思う。
gitって、mq相当のことはひたすらローカルリポジトリ内でcommitを整形していく感じなんだな。
ローカルとは言えcommitしたのをいじくり回すってのは結構違和感がある。
ってなことをgitのスレに書くといろいろありそうなのでここに書く。
同種ツールの一長一短、ポリシーの違いだからなぁ
使ったことないけどbazaarも同じようなことしようとするとmercurialとまったく同じにはならんのだろう
>>883 gitにはguiltがあるな。
hgでもローカルだとすぐqimport -rでいじくり回してしまう自分には
gitでも違和感はないが、正直mqのほうが使いやすい気がする
>>883 ローカルリポジトリは過去の記録ではなく作業場所であり
ローカルcommitは公開するcommitの下書きにすぎない、
と考えるようにすると腑に落ちると思います。
887 :
883:2011/07/19(火) 09:56:47.19
条件後出しですみません。
linuxカーネルの開発などの、パッチの形でレビューを受ける必要があるものは、
gitだとどうやってるんだろう?と疑問に思ったのが発端です。
ひたすらローカルでcommitを整形して、完成したと思ったらgit format-patchで
各commitをパッチにするというあたりがmqに比べると手間がかかるなあと。
guiltやstgitがあるというのはわかってるんですけど、いまいちこれらのツールの
出来が中途半端な感じだったりするし……
888 :
デフォルトの名無しさん:2011/07/31(日) 21:44:33.45
hg mv dir1 other/dir1
hg mv dir2 other/dir2
...
としたのを取り消すにはどうしたらいいでしょうか。
commitするまえならもう一度mvして元の場所に戻してやればいいよ
revertで戻せないか?
revert使うとotherディレクトリ内にファイルが残る気がする
>>890 その方法はうまくいきませんでした。
>>891 revertで戻せました。ありがとうございます。
>>892 その通りだったので、あとで手動で削除しました。
MQを使っているのですが、MQでブランチみたいなのはできますか。
MQだとパッチが1列に並んでいると思いますが、これをツリー状に持ちたいです。
普通にブランチ切ったらええがな
Cloud9IDEで遊んでる人おらん?
bitbucketサポート始まったので、いじり中。
ちなみに、無料アカウントだと、bitbucketのプライベートリポジトリはアクセスできないから、注意ね。
間違って hg qnew してしまったのを、取り消すことはできますか。
hg rollback したけど no rollback information available と言われてしまいます。
>>897 これでいいかな?
hg qrefresh -X \*; hg qpop -f; hg qrm `hg qnext`
もしhg qrefreshするつもりだったのを間違えてhg qnewしたのであれば
hg qpop; hg qfold `hg qnext`
qfoldか、いつも
hg qpop
patch -p1 -d. < .hg/patches/mistake.patch
hg qdel mistake.patch
ってやってたりする
hgやgitって空ディレクトリを扱えないんだけど何で?
技術的な設計上、何か問題があったんだろうけど、その理由が分からなくて
疑問に思ってるんだ。
逆に聞きたいんだけど空ディレクトリって何に必要なの
でも空ファイルは扱える!不思議!
>>902 必要な理由なんて数多あると思うけど。
>>905 それ当初はそうだった、という話でしょ。
それから?
>>901 aさんがhogeというディレクトリを作りました。
bさんがhogeというファイルを作りました。
マージしたら?
あと大文字小文字とか。
>>908 実装の方で、ディレクトリは最後に'/'を付けて扱う
ファイルには'/'を付けない
っていうで回避できると思うんだ。
そこまで修正は必要ないはずだし、何で嫌がったんだろ?
思いつかなかったとかそんなことあるわけないし。
>>904 ざっと訳させてみた
それで、たとえ人が空のディレクトリが価値がないという意見であるとしても、
以下を貯蔵所に入れること: 私が全てのサブディレクトリでチェックするならば、
階層とこのサブディレクトリがそうでない所で枝への当時の切り替え
現存して、私はサブディレクトリが_gone_であると思っていて、いくつかを持っていません
散らかっている空のディレクトリを散らかすこと。
そして、そのクズ-違いは、それで間違った何も本当にするのを見ることができます
ものを改善してください。
それで、クズが内容トラッカーであると思われるならば、私は方法を見ることができません
内容を追跡して、ディレクトリを空にすることが実際にできるそれのまわりで
_are_内容。 それは、特殊活字とともにまわりを飛んで、彼らにそうさせることができません
私が枝またはタグを変えるとき彼らの許可。 そして、
上記の「感触」を用いた回避方法は、するために、本当にひどいです
手ですべての時間。
クズは、中で0までの長さのファイル名で、ファイルを技術的に追跡することができました
空のディレクトリもしも1はそれを含むためにはっきりとそれに話します、好きにしてください
\をクズ加える!-x「subdir
あるいは、誰かを持ちますよりよい考えまたはインターフェースまたは正当性? 私はわかります
とてもそこで、人が気にしない使用事例は、だいたい空です
ディレクトリを行っていない、_content_トラッカーを除けば、ディレクトリ
彼らが空であるからは、全く深刻なようです。
Ok、私を殺してください。 これは、たぶん最も一般のFAQ/rant/whateverでなければなりません
関しているクズ。
>>909 .hg/store/data/を見れば、内部構造がファイル単位なのはすぐわかるだろ。
/をつけるも何も、空ディレクトリを特別扱いしないと記録ができないよ。
RCSやCVSも同じ。
>>909 その話も
>>904のリンク先にあった。
>>911 空ディレクトリを特別扱いするのは良いんだけど、
特別扱いするにはさらに問題があるという話だと思う。
それから?
ディレクトリをバージョン管理するのって何だかんだ面倒だろうしね。
中にバージョン管理外のファイルがあるかどうかも気にしなきゃいけないし、
ファイルと比べて移動や変名が失敗する率も高いし。
空ディレクトリを扱いたいっていう要望がその手間には
見合わないっていう判断なんだろう。
空ディレクトリの管理をする必要性がわからん
どんなときにつかうの?
ディレクトリがなくてスクリプトが止まるとかささいなストレスの元が一個減る
そんなのドットファイル1個作っとくとかじゃだめなのか?
そういうことをしなくて済むってことでしょ
>>916 それじゃ、ここでいう空ディレクトリではないでしょ
「ここでいう空ディレクトリ」に変更履歴なんてないじゃん
空ディレクトリを作れるようにして
そのディレクトリの下には一切addできない
ってことにしとけばよくない?
空ディレクトリの有無も立派な変更です
>>922 そう言われればそうだけど、
そうじゃないと言えばそうじゃない。
名前変更追跡できるVCSならそれも。
925 :
デフォルトの名無しさん:2011/08/27(土) 13:42:33.74
Mercurial 1.9.2 (2011-08-26)
This is a regular bugfix release (slightly early due to travel plans).
926 :
デフォルトの名無しさん:2011/09/17(土) 22:07:54.59
メンテナンス
927 :
デフォルトの名無しさん:2011/10/04(火) 03:09:28.24
Bitbucketが、gitに対応しちゃった。
ずっと悩んでるんだけど、コミットメッセージに句点ってつける?
ほほー、こんなガイドラインがあったんですね。基本つけない方向にします。
>>929 lowercase summary lineってのにびっくりしたけど、mercurial の開発でのルールか。
summary 文字数制限はないんだな。
次は2.0か……
MQでqfoldしようとすると、編集中のファイルがある場合は
$ hg qfold tmp1
abort: local changes found, refresh first
のように怒られます。
現在編集中のファイルをqrefreshすることなく、qfoldをさせることはできますか。
MQで、qrefreshする際に、指定したファイルの、指定した箇所だけ現在のパッチに追加することはできますか。
qrecordだと、パッチ全体を作り直すみたいなので、そうじゃなくて現在のパッチに追加だけをしたいんですが。
>>934 自分がそういう状態になってしまったら、
hg qnew tmp2 (編集中のファイル)
hg qpop
hg qfold tmp1
ってやると思う。
>>936 その場合、編集中の内容が tmp2 というパッチになるけど、
その内容を作業ファイルに戻し、かつtmp2を消すにはどうするのでしょう。
hg qnew tmp2
hg qpop
hg qfold tmp1
hg qpush # tmp2 が適用される
hg delete tmp2 # 適用済のパッチを削除できない?
キタ━━━━(゚∀゚)━━━━!!!!
941 :
デフォルトの名無しさん:2011/10/26(水) 20:59:26.81
>938
日本語ファイル名がSVN並みに安定して使えるのであれば乗り換えたい
以前使ってみて使いやすさ、わかりやすさに良い感触を得たが
日本語ファイル名のからみでSVNにもどった
だからこれに期待する
945 :
デフォルトの名無しさん:2011/11/02(水) 06:46:22.79
2011-11-01 Mercurial 2.0 released!
TortoiseHGを最近使いだして、その使い勝手に感激しています。
そこで質問なんですが、ファイルの更新日時も管理対象にすることはできないのでしょうか?
特定のリビジョンへ更新した際に、更新日時もそのときのものに変更されれば
最高なんですが。
>>947 TimestampModExtension
これ使ってみました。
手間いらずでバッチリ希望通りの動きをしているようです。
どうもありがとうございました。
2.0 も出たことだし、そろそろ本気出すか。
ver.3になったら本気だす
Ver.4になったらあの仕事を片付ける。
952 :
デフォルトの名無しさん:2011/11/03(木) 15:10:49.23
分散型のほうが手軽に使えていいよね。
かといってソースコードは集中してるほうがいいという。
結局、個人で小さく始める場合は分散型、大きく始める場合は集中型がいいのかなと。
なにこの子
transplant エクステンション、便利なんだけど、
同じコメントのブランチが複数ニョキニョキと伸びていくのが
ニンともかんとも。
transplant と2.0で入ったgraftとの違いが分からん。
そもそもどっちもわからんから問題ない
それよりtortoisehgまだ?
graftは所謂cherry-pickingの機能。
ブランチの繋がりとか無視して、とにかく、欲しいチェンジセットをいいとこ取りで
継ぎ接ぎする。
>>945 >2011-11-01 Mercurial 2.0 released!
おめでとう!
ところで2.0の新機能って何?
MQ使ってるんだけど、applyされてないパッチの中身を見るにはどうしたらいいの?
つまり
hg qpop
hg qpop
hg qpop
とかしたときに、3つほどapplyされてないパッチができるけど、
その中身を確認したい。
>>961 .hg/patches/以下を直接見る
>>964 さんくす。largfilesはいいね!
バージョン番号は増えた
2.0 のgraftってtransplantと何か違うのかね。
transplantはパッチベースだけど、graftは3-wayマージという話
で、日本語ファイル名に関してはどうなったのかね。
ダメやん
今時CGIとかどんだけWeb創世記の化石なんだよw
975 :
デフォルトの名無しさん:2011/11/07(月) 11:05:58.42
TortoiseHG 2.2.0 記念あげ
今日mercurialを使い始めたのですが、
2点質問させてください。
1.
svnのリポジトリからconvertしたのですが(hg convert)
.hgtagsがmercurialのリポジトリの管理化にあるのは正常でしょうか?
2.
StatSVNみたいな(というStatSVNレベルの)
可視化ツールはありますか?
Gourceは抜きで…
以上、よろしくおねがいします。
【環境】
windows xp sp3
mercurial 2.0(mingw32 4.5.1でビルド)
python 2.6.6
978 :
デフォルトの名無しさん:2011/11/10(木) 01:50:20.43
なんだかんだ言ってもGITの方が需要が多いのか。
取り敢えず期待AGE
>>977 1. .hgtagsはhg tagコマンド使えば勝手に作られると思われるので空リポジトリ作って試してみるよろし
2. Mercurialの変わりにTortoiseHgをインストールする。
TortoiseHgに、統計情報を可視化するような機能有ったっけ?
981 :
977:2011/11/11(金) 22:36:24.66
>>979 ありがとうございます。
.hgtagsは新規のリポジトリでも確かに作られてました。
.hg*が管理下にあるのに違和感があったんですが
そんなもんなんですね。
ToroiseHGはなんだか抵抗が…
自分でも探してみたんですが、ないっぽいですね。
スレ落ち回避保守。
次スレテンプレ募集。
983 :
デフォルトの名無しさん:2011/11/13(日) 00:04:32.95
梅
>>983 乙。ちょうどMercurialのバージョンと同じくらいのタイミングで2.0だね。
そういや、パッケージに入ってないextensionsでほとんど保守されてないよね?