【分散型バージョン管理】 Mercurial 2【hg】
まだらしいよ。三大DVCSのなかでは一番遅れる形になってるね。 まあずが金星な現代社会において
水星と言い切るのは困難 MQでパッチ適用した時のマージの仕方がわからない
ハンクっていうのが出来るけど、これGUIでマージ出来ないの? >>217
いったんパッチ作成時点での派生元に適用(hg qpush --exact)してからのリベースがお勧め。
大抵の場合はうまいことマージしてくれるし、そうでなかったとしても通常のマージ/リベースと同じようにGUIから衝突の解消ができる…はず。
あと--exact指定のパッチ適用がGUIからできたかはちょっと覚えてない。 >>218
その手があったか
やってみる、ありがとう スレ違いのような気もするが thg でしか起こってないので教えてもらえませんかの。
Debian squeeze で thg 使ってるんだけど、いつの間にやら起動時に
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
こんなメッセージがいくつか出て、それと対応するかのように (対応してるんだろうけど)
ツールバーなどのいくつかのアイコンが表示されなくなってしまった。
もとに戻す方法教えてもらえませんかの。 hgsubversionでのpullが必ず特定のファイルで止まる
日本語のファイル名だからなのか
大丈夫な日本語のファイル名もあるのに そのファイル名に濁点や半濁点が付いてたらUTF-8の正規化(NFCとかNFD)が疑わしい >>222
確かにファイル名に濁点入ってる、けど
WindowsはNFCを使っていて
MacがNFDを使っているんだよな
作業している人は皆Windowsだ bzrは確か勝手に正規化してるぞ。hgは知らんけど 共有リポジトリからpull/pushしながら、自分の環境では設定ファイルの
DB接続先をとかを変更しておきたいような時って、Mercurialでは
どう作業するのが良いんでしょうか?
自分固有の変更をした設定ファイルをシェルフへ出し入れするとかで
良いんでしょうか? ファイル名のエンコーディングに関する対応ってスケジュールどうなってるんですかね? gitもかなりGUI良くなったし
そろそろ潮時かな tortoisegitは入れてあるけど
cloneしてcloneからブランチ取り出すのが試行錯誤の末わからなくてあきらめたわ ちょっと質問。
TortoiseHg+hggitを使って、gitのリポジトリにpushするのはできない?
そもそもhggitはgitのリポジトリからpullするのが専門なのかな? >>233
コンソールからだと、こんな感じ git+ssh://git@github.com/〜 でに対して
push できるけど TortoiseHg だと「ハンドルが無効です」って出るな。 >>234
d
何か設定しないとダメなのかな。
まあいざとなればTortoiseGit入れて、SVN・Hg・Gitの3つを揃えるのもアリだな… GUIはTortoiseHGしか無いし、それで十分と思ってきたけど、
SourceTreeがMercurialに対応して、なかなか使える感じになってきたね。
ちょっともっさり気味だが。 hgsubversion入れたんだけど、ssh経由でsvnのリポジトリを扱うことはできないのでしょうか?
svn co svn+ssh://svn/data/repos
これはOKなんだけど
hg svn clone svn+ssh://svn/data/repos
こんなのはだめですか? >>242
> hg svn clone svn+ssh://svn/data/repos
hg clone svn+ssh://svn/data/repos TortoiseHGでコマンドログに直接コマンド打ち込むとプチフリして困る
何とかならんのかな でっかい声で「ハゲ!」って言いながらコマンド打ってたら
横を禿げた上司が通りすぎていった。怖ろしいツールだ……。 TortoiseHGってアップデートする時そのままインスコしていいですかね? たったいま、間違ってrm sourceしちゃったんだけど、hgがあったから助かった。
最近そんなミスばっかりしてる。 >>256
そのうち、push前の .hg ディレクトリごと消すよ、きっと commitフックで、バックアップ用のリポジトリに自動pushすればいい。 コミットした瞬間にフェーズが public になってしまうじゃないか。 >>257
恐ろしくて-rオションがつけられない。
ディレクトリ消す時は まず中を空にしてからrmdirすることにしてる。 Mercurial 2.9.1 がリリースされていますね なんでアナウンス無しで変えるかな〜ほんまに
abort: certificate for bitbucket.org has unexpected fingerprint 45:ad:ae:1a:cf:0e:73:47:06:07:e0:88:f5:cc:10:e5:fa:1c:f7:99 大騒ぎしてるopensslのCVE-2014-0160だよ メジャーバージョンアップなのに地味すぎるだろ 3.0 公式曰く、2.9 + 0.1 程度のアップデートですからね… git commit --allow-empty
のようなことはhgではどのようにすればよいでしょうか。
一番最初のコミットを空にしておきたいと考えています。 >>277
何のために?
.hgignoreでも入れるとか? >>278
私の考えが変なのかもしれませんが、いきなり最初のコミットから何かの機能を実装するのではなく、
>>279さんの言われている通り、ゼロから始めたいというのが主な理由です。 でもinitしたら-1のリビジョンで
何もない状態から始まるんだけど.
これとなにが違うのかよくわからんのだけど
(ツールは初期状態でなにもないを想定してると思うけど、それ以上に何もない状態を明示したいわけか。
そこに戻るわけでなし。
gitはよく知らんけども特殊なコマンドでないとできないみたいだし
別に気にしなくていいんじゃない -1がNULL, 0が配列の最初の要素と考えたら気分も楽になろう まあ何も候補を入れてない.hgignoreだけ入れとけば良いんじゃね?と思うが 俺はREADMEやLICENCEが必要なプロジェクトならそっから始めてるな
別にいきなり動くソースコードを入れねばならんということはない >>280
そのゼロのコミットができたとして、次は何かしらの実装をしてコミットするんじゃないの?
違いがよくわからんね。
自分の場合は最近の開発環境が吐き出すテンプレート突っ込むとか、
ベースにするサンプルとか別プロジェクトとかを最初にコミットしてるけど。 .gitkeepの様に空ディレクトリを維持しておく専用ファイルはありますか? hg tagをhg revertでとりけしたら.hgtagsは過去に戻らなかったんだけど
なんでそういう仕様になってるんでしょう? >>293
戻るけど?
$ hg init; touch a; hg add a; hg ci -m a; hg tag a
$ cat .hgtags
bffe4a703b0329239660f445321bb96b3e088969 a
$ hg revert -ar0
.hgtags を登録除外中
$ hg st
R .hgtags
$ cat .hgtags
cat: .hgtags: そのようなファイルやディレクトリはありません すみません
釣りじゃなくて単に疑問なんですけど
なんで Mercurial と Hg と呼び名が二つあるん?
どういう風に使い分けるの? Mercurialの意味を調べたら分かるだろうに……中学生理科/天文レベルの知識があれば分かるはず。 ありがとう
水星って water の水だとおもってた TortoiseHgアプデ来た!
phaseのグラフ表示、地味に便利だ 3.3に更新したら何をしようとしてもエラーが出るようになった…
古いバージョンに戻してもエラーが出る…
リポジトリぶっ壊れたのか 自己解決。
HgSubversion古かっただけだった。
更新したら直った。 Hg-Gitじゃダメなんかな?
Gitのリポジトリにコミットできないんだっけ? Windows 10にアップグレードしたら、TortoiseHGのリストのフォントが見づらくなってしまった。
設定の中にあるフォント設定じゃ変更できない箇所みたいで困ったもんだ。
カーニングが明らかにおかしい。 7->10だとそうなるかな
8->10のひとは無事 windows では軽くて便利なんだけどなー
頑張ってほしい 簡単で使いやすいのに、gitと比べて
ここまで人気がないのは何故なのか? >>311
日本以外では状況が違うの?
人気無いだけならいいんだけと、そのうち開発中止になったら
やだなあと。 Firefox、というかMozilla製品がMercurial使ってるから、
しばらくは開発中止にはならないんじゃない? 当たり前だけど日本語マニュアルの充実度の差は大きかった思う 初心者のときにこれ知ってれば捗ったなと
いうネタをみんなでブログにアップなり
つぶやくなりして、地道に盛り上げてくしかないぞ。
みんな一つくらいあるだろ?
自分はちょっと思いつかないが。 マーキュリアルっていう名前も言いたくないな
ギットのが言いやすい とーたすえいちじー、って職場では言ってる
たぶんマーキュリアルだと通じない >>321
gitは名前もコマンド名もgitだけど、Mercurialはコマンド名がhgだから
単純な比較はできなさそうだね。
ただ、実感としてはgit使いのほうが多いような気がする。
俺はMercurialから入ったので、git使うと困惑することが多い。 Subversionとコマンド体系が近いのはmercurialだと聞くが
シェアにはあまり関係ないのか。 SourceForgeからgithubやBitbucketなどへプロジェクトが移行してきて普及という背景がある
あとみんなしてUTF8マンセーになってきた
特にGoogleやMSのgit贔屓が酷くてgitだけ知名度が突出、多分それだけで
性能比較とか設計の相違点を真面目にやってる人はごく少数 Google Code は Mercurial 採用してたけど、結局ポシャっちゃったもんな。 gitに比べると学習しやすいし使いやすい、svnに比べると分散型ってだけで言う事なしなんだが…
逆に言うと、選択したくなる確固たる理由がない…
ま、俺は使ってるがな。 ローカルリポジトリのコミットメッセージをまとめて検索出来る様にする
何か良い案は無いだろうか? grepで何とでもなるじゃないか
つかWindowsだとどうやるのかなと思ったら
TortoiseHg付属のワークベンチに検索フォームついてんだね ごめん、書き方悪かった
複数あるリポジトリを横断検索したいんだが
何かいい方法が無いものだろうか ところでファイル名のマルチバイト問題ってまだ解決してない?
これのおかげでいまだにドキュメントの管理には Bazaar 使ってるわ。
みんなどうしてんの? ごめん、ずっと使ってたけど、とうとうgitに移行してしまったよ…
意外とtortoiseGitが使いやすかったんだ…
tortoiseHgはなんか使いにくい… なんか git って、リビジョンまるごと保存てのがエレガントじゃない気がしてね。
もう git の一人勝ちになりそうな感じ? なんか Git は日本語ファイル名の対応進んでるみたいね。
こりゃやばいね。 svnとの親和性がhgよりgitの方が上だということに気づいた >>339
切れないんだよ……エンジニアの習熟度の関係で…… >>340
そんなもん、2,3日使ってりゃなれるだろ。 ツールが作成するコードも管理に含めてるんだけど、
生成を実行するたびに中身が変わってなくても日付が変わってしまって、変更一覧に出てしまう。
こういうパターンの部分は変更を無視するみたいな設定ないのかな。
確認してもとに戻すのもめんどいし、手作業は何かと心配だし。 >>343
日付なんて普通は見ないと思うけど、環境は? >>344
いや、ファイルのタイムスタンプじゃなくて、
コード内に "yyyy/mm/dd" って文字列が埋め込まれてて、これが毎回更新される。
ちなみに Windows。 生成後に、可変部分を置換しておくのが常道じゃないか? >コード内に "yyyy/mm/dd" って文字列が埋め込まれてて
糞コードは捨てろ 捨てるのはそのコードというより生成ツールの方だけど、
ラッパーかぶせて日付しか変化なければ上書きしないとするのが現実的。 >>345
ヽ(・ω・)/ズコー
それはファイルの中身が変わっているって事じゃないか… r1 r2 ... r28 ... r32 と rev が ある状態から、
r29:r32 が 不要というか作り直しになりました。
hg revert --all -r r28
としようと考えたのですが、
r28 と r32 merge っぽく graphlog が 繋がってくれたら分かりやすいかなと思いました。
どうすれば良いでしょうか? 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
15SNS MercurialやTortoiseHgの一般的な質問というより
個別ケースの質問となってしまい大変恐縮なのですが、もしご存知の方がおられましたら教えて頂ければ幸いです。
TortoiseHgを使いTVTestのGithub(https://github.com/DBCTRADO/TVTest.git)から
同期を行おうとしているのですが 、サブリポが設定されていてうまく同期ができません。
正確には、同期完了後のupdate(作業領域の更新)が上手くいきません。
(サブリポLibISDB単体の同期は問題なくできます。)
TortoiseHgの設定
・エクステンション hggitチェック
・Allow Git Subrepos→有効
[ファイル]→[リポジトリを複製]を選択し
ソース git://github.com/DBCTRADO/TVTest.git
ターゲット C:\Users\xxx\Desktop\TVTest\TVTest
で[クローン]ボタンを押すと同期が始まるのですが、しばらくすると以下のメッセージが出て
同期が正常に完了しません。
中止: サブリポジトリ 'src/LibISDB' で使用する 'git' または 'git.cmd' がありません
ヒント: PATH から参照可能な位置への git のインストールを確認してください。
何かしらご存知の方がおられましたら、何卒ご教示ください。 > ヒント: PATH から参照可能な位置への git のインストールを確認してください。
答え書いてあるやん
git for windowsインストールしとけ 後だしですみません、git for windowsはインストール済みです。 初歩的な問題でしたわ。
環境変数が反映されてなかった。
単純に再起動で解決しました。ごめんなさい。 bitbucketのサポート終了の影響でMercurialがかなり劣性になりそう… やっぱりみんな履歴いじくり回したいんだねえ。
個人的には Bazaar に復活してほしい。 BitBucketのMercurial廃止は
コロナウイルスの影響を考慮して6月から7月に延期するとかなんとか 操作がシンプルだし、何よりMQが便利すぎるんだよう git は、MQ みたいなことが標準で、しかもどのタイミングでもできるんじゃないの? Gitが安定するまでは俺もhgを使用していたから惜しむ気持ちはわかる Mercurial 5.9 が出ましたが、死滅しちゃうの? どうなってんだと思ってレポジトリ確認したら昨日5.9のタグ追加されたのか
安定してるし、頻繁にアップデートしてないなあ
一方gitはLFS対応するのにちょっと面倒な思いをした