飯野卓見 (@troter) 株式会社タイムインターメディア所属 BtoB、BtoCのWebアプリケーションの構築、保守などに従事 普段はJava, Ruby, PHPなどを書いてます 参加コミュニティ TokyoMercurial(mercurial-ja), pyfes などなど
今回は Atlassian の開発者である Charles O’Farrell によるゲストブログです。チームが DVCS として Git を選択する理由について説明します。Charles はコーディングをほとんど DVCS 上で行い、また ClearCase から Git へユーザーを移行させる作業を行ってきました。 前回の記事では、分散バージョン管理システムとしてチームがなぜ Mercurial を選択するのかについて考えてみました。今回は、分散バージョン管理システム (DVCS) として なぜ Git が有力な選択肢であるのかについて考えてみましょう。 1970 年の黎明期から、ギークたちはどちらが善でどちらが悪かという血なまぐさい論争を長い間行ってきました。それが Vim と Emacs との間の戦いです。最近では、それとは別のツールセットについて、ギークたちは本来の仕事そっちのけ
SCMBootCamp in Tokyo 開催しました。KPT公開。 - うさぎ組にて手ぶらLTをしたので資料はないが、内容を軽くまとめておく。 GitとMercurialの比較 Git Mercurial リポジトリ commit objectのグラフと、branchのHEAD,tagなどの参照で出来ている。 commit objectのグラフだけで出来ている。 歴史改変サポート デフォルトであり。 デフォルトではなし。extensionが必要。 歴史改変 新しいcommit objectグラフを作成し、参照を古いHEADから新しいHEADに移す。表面上要らない歴史の削除として使われるresetはHEADの移動のみを行う。 新しいcommit objectグラフを作成し、古いcommit objectグラフをリポジトリから除去する。要らない歴史の削除として使われるstrip(MQExte
基本的にterminal上で使うアプリケーション(エディタ、言語処理系、細かなツール等)は、ソースコードからビルドして使うようにしている。 複数の版を使えるようにしたいのもあるし、なによりビルドすることが好きだからだ。 Mercurialをビルドする前に、docutilsを使えるようにしておこう。Mercurialのドキュメントはdoctuilsを使って生成している。 pythonモジュールなのでpipを使うのが簡単だ。 ソースからインストールする場合Docutils: Documentation Utilitiesから最新のものを取得しよう。 $ tar zxf docutils-0.7.tar.gz $ cd docutils/ $ ./setup.py installpipならコマンドを叩くだけでいい。 $ pip install docutilsこれでMercurialをインストー
つい先日、SVNからMercurialに移行するべき8つの理由をまとめたが、Twitterやはてなブックマークのコメントを見ていると、同じ分散バージョン管理システムとしてGitとMercurialとの比較に関心が高く、Windowsでの動作でMercurialを評価する人が多いように感じられた。 それも一つの側面で間違いでは無いのだが、日々の開発作業で使っていくと、むしろ操作体系の方が気になるものだ。GitとMercurialの両方を使う機会があったので、操作体系の面で気づいた違いを列挙した上で、Gitに対するMercurialの優位点を考察してみる。 1. 管理対象ファイルの指定方法 .gitignoreや.hgignoreで管理外のファイル名を指定でき、正規表現も使える点は良く似ている。 しかしGitはcommit前にコミット対象を毎回git-addで指定するが、Mercurialは一
Takumi IINO @troter 移行直前に @yoppiblog の提案で全員にpullしたときのmultipleheadsの 解決方法をペアプロでレクチャーした。 2011-03-08 20:14:30
2012/01/25 追記 Mercurial 2.0 以降は これ を参照 これの続き。 subrepoは確かに便利なんだけども、あるシチュエーションでは使いにくいことになる。 サーバの名前が変更されたとき 場所によってpushする先が違うとき(滅多にないだろうけど) 例えば、あるマシンAではsubrepo Aにpushしたりpullしたいが、あるマシンBではsubrepo Bにpushしたりpullしたい、だけど履歴は共有したい、なおかつマシンBからsubrepo Aはアクセス出来ない場合(マシンAを中心に履歴は共有する)。あるのか?というぐらい限定的だけども、現在自分が困っていて、その解決策っぽいのが見つかったのでメモ。 解決先はこれ -> http://mercurial.selenic.com/wiki/SubrepoRemappingPlan 前回 .hgsub にリポジトリの
前から気になってた、Mercurialのsubrepoの使い方がなんとなくわかったのでメモ。 何がうれしいのか 別管理のリポジトリを一緒に扱える。具体的には、共通ライブラリは別のリポジトリで管理しつつ、それを利用するアプリのリポジトリの下に共通ライブラリのリポジトリを配置できる。Subversionで言うところのベンダーブランチとかsvn:externals。 ベンダーブランチ/svn:externalsよりもうれしいのは、アプリ側のリポジトリからライブラリ側のリポジトリのリビジョンが指定できること。アプリ側のリポジトリを特定のリビジョンに更新したら、ライブラリ側のリポジトリもその時指定していたリビジョンに更新される。これはかなり便利。 作り方 まずはアプリ側のリポジトリ生成。これは普通に作る。 hg init次にディレクトリを作って、ライブラリのリポジトリを作る。新規リポジトリをつくって
※ 2015-01-19 更新 重要なお知らせ: 1.9 ⇒ 2.0、2.9 ⇒ 3.0、3.9 ⇒ 4.0 といったバージョン番号の増加でも、Mercurial のコンセプト/操作性/互換性等における大きな改変はありません。通常の定例アップデートに過ぎませんので、従来の版を元に書かれている情報の多くは、そのまま適用可能です。 現状でそこそこ妥当な Mercurial の版は以下の通りです。 由来不詳のリビジョンを含むリポジトリから履歴情報を取り込む可能性がある場合は、3.2.3 以降の使用を強く推奨 それ以外の場合は 1.8.1 〜 最新版 (使用状況によっては 2.2 〜 2.2.1 および 2.3 〜 2.3.2 の使用回避を推奨) また、個別のケースにおいて回避を推奨する版の情報を以下に示します。 revsets 記述によるリビジョン指定を多様する場合は、2.5 版以上を推奨(詳細
GUIの無い環境で開発してると手動マージが発生したときに結構たるい作業を強いられる訳です。 mercurialのデフォルトだと <<<<<<<<<local ウオー ========== うおー >>>>>>>>>otherなんてのをテキストエディタでちまちま直す必要があるわけで、めんどい。 マージツールつかえよ vim様にはマージ機能があるというのは前から知ってて使いたかったんだけど、どうも操作がよくわかんなくて放置していました。 ということで、ちょっと真面目に調べてみた。 設定 まずmercurialの設定 hgrcなどにマージツールとしてvimdiffを使う設定を書く [ui] merge = vimdiff 使う confrectが発生するようなマージを行うと、勝手にvimがdiffモードで立ち上がります。 デフォルトでは マージ結果 | local | otherてな感じに縦3分
はじめに こんにちは、Python界の渡辺篤史です。@nkjm宅にて記事を書いています。 (git-core 1.7.12以降で設定が変わるので、最新版を使う場合は最後の方を参照して下さい) プロンプトにブランチ名を表示させよう 今のbashプロンプト 僕はzshを使おうと思いつつzshのdotファイルがどれに何を書けばいいのかわかりません状態が続いてずっとbashを使っています。いまのプロンプトはどこでも同じ色で表示されるように次のようなものを使っています。 PS1="\[\033[0;37m\][\[\033[0;32m\]\t \[\033[1;36m\]\u\[\033[0;37m\]@\h \[\033[0;32m\]\w\[\033[0;37m\ ]]\n\$ "こんな感じで表示されます。 gitのブランチ名の取得 MacPortsでgitをインストールしていて、bash_co
TortoiseHgでExcelの差分を見る方法を見つけたのでメモ。 【元ネタ】 スィンプロ (sinproject) Windows Vista 環境で TortoiseHG(Mercurial)を利用してバージョン管理とバックアップを行う (3) WinMerge 日本語版 xdocdiff WinMerge Plugin -Word、Excel、PowerPoint、pdfの比較・差分を見る- TortoiseHgで差分表示ツールにWinMergeを指定し、xdocdiff WinMerge Pluginを入れると、Word、Excel、PowerPoint、pdfをテキスト化した後に比較・差分表示してくれる。 このおかげで、TortoiseSVNと同様に、分散バージョン管理ツールTortoiseHgでも、ExcelやWordの仕様書の差分比較ができる。 実に素晴らしい。 最近思うの
これだけ。 結局、$HOME/.hgrcは以下のような感じに。色の詳細設定は [color]セクションを追加して設定します。MQ使ってない(ってか、 何かあんまりわかってない。)ので、qseriesは設定していません。 [defaults] cdiff = -q [extdiff] cmd.cdiff = colordiff opts.cdiff = [extensions] hgext.color = hgext.extdiff = color = [color] status.modified = green bold underline status.added = magenta bold underline status.removed = red bold blue_background status.deleted = red underline status.unknown
2012/12/13 追記 zsh 4.3.11 以降の新しい機能を使って改良しました。 -> 「zsh の vcs_info に独自の処理を追加して stash 数とか push していない件数とか何でも表示する - Qiita」 最近Gitを使い始めた。で、ブランチとか使うようになって、今どのブランチにいるのかをzshのプロンプトに表示したくなってきた。「そういやそんなブログのエントリ、よく見かけるな」と思ってちょっと調べてみた。 gitコマンドを呼び出してなんかやってる例が多いけど、manを読んでたらzsh自体にそういうのが組み込まれてたので紹介。vcs_info ってのを使うと解決する。 zshrcの例 いきなりだけど zshrc の書き方の例。 autoload -Uz vcs_info zstyle ':vcs_info:*' formats '(%s)-[%b]' zstyl
複数人でドキュメント書いたり修正する場合なんかに、Mercurial で Sphinx のドキュメントソースを管理しているわけですが、毎度毎度、 作業領域を更新してから make html するのが面倒なわけです。 で、例によって id:nullpobug が「mercurial の hook 使えば楽だよ」と言ってたので、 早速マネしてみました。 フックって? Mercurial のリポジトリで発生するイベントを通知して、指定したアクションを 叩いてくれるトリガです。 フックの一覧 changegroup commit incoming outcoming prechangegroup precommit preoutgoing pretag pretxnchangegroup pretxncommit preupdate tag update 今回の場合は、リポジトリ更新完了後に処理を
織田信長 ぼちぼち、元気にやっています。少し薬にも慣れた...んかなぁ。相変わらず食べられないけど。朝、指がこわばって文字なんて入力できなかったけど、それはほぼなくなった。関節もどこも痛くない。薬効いてきたんやろな。 で、ブログを書こうと言う気がまた起きてきた。 …
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く