Mercurial 3.6 Sprint 参戦メモ

ちょっとFacebook Londonまで行ってオフラインミーティングに参加してきました。 Mercurial Sprint 分散バージョン管理システム Mercuiralの半年に一度ペースで実施されるオフラインミーティングです。 公式Wikiのミーティング一覧を見ると、もう10回以上開…

ISUCON5の予選に参加して惨敗してきました #isucon

ISUCON5の予選に参加して惨敗してきました。チーム名は「T・D・U!T・D・U!」。大学で同じ研究室だった友達を誘った&&「googleの大学名の検索結果がおかしくなった事件」の画像の作成者がチームメイトだったので、この名前にしてみました。 事前準備 僕以外…

generaldeltaを有効にしてmercurialのリポジトリサイズを減らす

Mercurialのリポジトリの履歴のフォーマットは通常のフォーマット以外にgeneraldeltaというものが有ります。 http://mercurial.selenic.com/wiki/GeneralDelta と偉そうに言ってみましたが、NetBSDリポジトリに関するMLのツイートをtwitterで見て初めて知り…

#kyon_kao_wedding と #real_dvcs に参加してきました。

きょんさん、かおりさん、ご結婚おめでとうございます! という事で、参加してきました。 #kyon_kao_wedding ガチ発表と様々なのろけの温度差にやられました。ご結婚おめでとうございます。ライフ尽きました。 #real_dvcs アンチパータンがいっぱい紹介され…

「Webアプリエンジニア養成読本」をいただきました。

刊行記念イベントの予約方法の難易度が高いことで話題の「Webアプリエンジニア養成読本[しくみ,開発,環境構築・運用…全体像を最新知識で最初から!]」を技術評論社様からいただきました。ありがとうございます。 Webアプリエンジニア養成読本[しくみ、開発、…

gitworkflowについての雑感

誰得UNIX-Blog: git-flowでもgithub flowでもない、Git本家推奨のワークフロー http://t.co/WC3NmN0Yy3 @troter の熱い解説を待とう— V (@voluntas) 2014, 2月 2 振られたので。詳しい内容はリンク先をどぞー。 gitworkflow 日本語訳 git reset 特徴的という…

2013年のMercurialの主な変更点 #mercurialjp

このエントリはMercurial Advent Calendar 2013 の18日目です。 3ヶ月に一度メジャーリリースのあるMercurialはこの一年で2.4から2.8までバージョンアップしました。その間にあった主な変更点をまとめたいと思います。 機能追加 Command enable secret phase…

MQの適用済みパッチをrebaseする #mercurialjp

このエントリはMercurial Advent Calendar 2013 の16日目です。 MQを使っていて困るのが、ファイル名の変更です。 あるファイルAに対してパッチaを作成していて 最新版を取り込んだらファイルAはファイルBに変更されていて 最新のソースにパッチaが簡単に適…

hg cloneする時に利用できるリポジトリの指定方法について #mercurialjp

このエントリはMercurial Advent Calendar 2013 の7日目です。*1 hg cloneするときのURLについて書きます。 基本編 通常hg cloneに次のようなURLを渡すことでリポジトリをクローンすることができます。 $ hg clone path/to/local/repo $ hg clone file:///ab…

最近のyard パーフェクトRuby Advent Calendar 2日目

このエントリは パーフェクトRuby Advent Calendar の2日目のエントリです。 1日目のエントリはパーフェクトRuby Advent Calendar 2013(1日目) - すがブロです。 yard diff いきなりですが、パーフェクトRubyで知った最高に便利なコマンドは yard diff です…

自分用のRevsetsを定義する。 #mercurialjp

このエントリはMercurial Advent Calendar 2013 の1日目です。 MercurialにはRevsetsというリビジョン郡を指定するための条件を記述するDSLが組み込まれています。Revsetsに関しては過去のAdvent Calendarのエントリにわかりやすい解説があるのでそちらを参…

GTUG Girls #14 でGitのハンズオンの講師を行いました

git

参加者の皆さん、主催者の @yanzm さん、会場提供のドワンゴさん、チューターとして手伝ってくれた @kana1 さん、 @sinsoku_listy さんお疲れ様でした。 当日の資料とtogetterのまとめです。 GTUG Girls原稿 第14回GTUG Girls Meetup 「Gitを使ってみよう」 …

Rhodecode Enterpriseのライセンス

Git/MercurialのリポジトリをホスティングするRhodecodeというWebアプリケーションが有ります。 WebUIでユーザ権限の設定やリポジトリの追加、Pull-Requestなどが行える OSSのアプリケーション です。 いままで、GPLv3で配布されていたRhodecodeですが、2013…

PyCon APAC 2013 開催期間中に勢いで作成したMercurial関連のスライド

twitterでも流しましたが、勢いで作成したスライドです。PyCon APAC 2013 Sprintの成果ということで。 英語はリリースノートからのコピペとかです。 Mercurial Update 2012/08-2013/09 PyCon APAC 2013 Sprint Short Introduction of Mercurial Evolve Exten…

hg rebase が3-way mergeしてくれるという話

hg rebaseは3-way mergeします。 mercurialでhg graftは3-way mergeしてくれるのが売りだけど、hg rebaseはどうなんだっけ?という話がよく出るので。 以下、試したログ % hg version | head -n1 Mercurial Distributed SCM (version 2.7.1) % hg init rebas…

mercurialでgit new-workdir

ローカルのリポジトリをコピーするための専用のコマンドはmercurialには無い。*1 単にcloneすればよい。 hg clone <repository> <new_workdir_path> 追記: git new-workdirは.git以下のファイル郡をsymlinkで共有しているので、元のリポジトリのコミットがnew_workdirでも参照できるが、hg </new_workdir_path></repository>…

tmuxの設定ファイルを再読み込みする。もしくは複数のコマンドを実行するキーバインドを定義する。

tmux-1.8で確認しています。 ググったら、こういう設定たくさん出てくる。けど、この設定では(1.8では?)起動時に警告が表示される。 bind-key C-r source-file ~/.tmux.conf ; display-message "Reloaded." 正しくはこう。セミコロンをバックスラッシュでエ…

TokyoMercurial#8 を開催しました。 #TokyoMercurial #mercurialjp

2013/06/23(日)にTokyoMercurial#8を開催しました。 TokyoMercurial 公式ページ TokyoMercurial#8 まとめページ やったこと 国際化されたマニュアル(Manpage, HTML)を生成するパッチの修正 RhodeCodeのメッセージリソースをTransifexで翻訳 宝塚記念観戦 次回…

社会復帰しました。

社会復帰しました。最近はてブでも話題になったフォトブック作成サービスを運営している会社にお世話になります。

Mercurial-2.6でhgwebからイシュトラッカーにリンクを張る

前回のhgwebからイシュトラッカーにリンクを張るではInterhgExtensionを利用しました。が、InterhgExtensionはMercurial-2.6からobsoleteとなりました。 というのも、InterhgExtension相当の機能はwebsubテンプレートフィルターという形でhgwebに取り込まれ…

Mercurial-2.6から追加されたunionスキームについて調べてみた。

Mercurial-2.6から追加されたunionスキームについて調べてみた。 Mercurial-2.6からリポジトリ指定時にunionというスキームが指定できるようになりました。 unionを利用すると、次の形式で指定した2つのローカルリポジトリの履歴をミックスして閲覧できるよ…

Mercurial-2.6の並列になったupdateの注意点

いくつか注意点があることを id:flying-foozy さんに指摘してもらったので紹介します。 並列updateで10万規模のファイルを一度に更新するとlinux kernelでsoft lockupと誤認される 10万規模のファイルを更新するとlinux kernelでsoft lockupと誤認されるよう…

Mercurial-2.6-rcの並列になったupdateをmozilla-centralで試す

rhodecodeのリポジトリよりずっと巨大なmozilla-centralでMercurial-2.6-rcの並列になったupdateを試してみた。 mozilla-centralの大きさはこんな感じ。13万リビジョン、7万8千ファイルある。 % hg tip リビジョン: 129561:aa620f3fc2f7 タグ: tip ユーザ: M…

Mercurial-2.6-rcの並列になったupdateを試す

多数のパフォーマンスチューニングを含むMercurial-2.6のリリース候補版がリリースされた。今回のリリースからhg updateの処理が並列化されるようになったので試してみた。 インストール バージョンを指定してインストール。 % pip install -U mercurial==2.…

DataMapperでOptimisticLock(楽観ロック)を利用する

dm-core-1.2.0の話です。 DataMapperでOptimisticLock(楽観ロック)を実現するプラグインはいくつか検索でヒットするのですが、古すぎて利用できなかったり、UPDATE文のWHERE句に条件が入るのではなく、プログラム側で判断しているためアトミック性がなかった…

DataMapperのdm-migrationsのマイグレーションファイルの通し番号は重複していても問題ない

dm-migrations-1.2.0の話です。 dm-railsで次のようにdm-migrationsのマイグレーションファイルを生成すると、001から始まる通し番号のマイグレーションファイルが作成されます。 $ bundle exec rails generate migration create_users invoke data_mapper c…

DataMapperで比較的高速にidだけ取得する

dm-core-1.2.0の話です。 現在の検索条件でidだけ取得したい、、10000件くらい。って要望、よくあると思う。:fieldsで指定しても、モデルのインスタンスを作るため、sqlを直接実行した時にはかなわなかったりする。 なので、DataMapper::Collectionに次のよ…

DataMapperとMySQLの組み合わせでDDLにコメントを含める

dm-core-1.2.0の話です。 DDLにコメントを含めたい!という要望があったので。 モンキーパッチ # dm-core-1.2.0/lib/dm-core/property.rb # commentを定義可能にする module DataMapper class Property accept_options :comment attr_reader :comment end en…

DataMapperでinに空の配列が渡された時になんとか空のコレクションを返す

dm-core-1.2.0の話です。 DataMapperはinの条件に配列を渡すと次のように良い感じで検索してくれる。 class User include DataMapper::Resource property :id, Serial property :name, String end User.all(id: [1, 2, 3]) # SELECT "id", "name" # FROM "us…

DataMapperのクエリチェインが使えない(場合の)話

dm-core-1.2.0の話です。 DataMapperのクエリチェイン(正式名称しらない。。)は特定の条件下(DataMapper::Collection#union(|, +))で利用できない理由と、回避策を調べた。 長いです。 class User include DataMapper::Resource property :id, Serial proper…

DataMapperでinner joinする

dm-core-1.2.0の話です。 DataMapperでjoinする話が全然検索に引っかからないので。メモ的に class User include DataMapper::Resource property :id, Serial property :name, String has 1, :profile, 'UserProfile' end class UserProfile include DataMap…

退職しました

新卒入社してから約5年間お世話になった株式会社タイムインターメディアを退職しました。 正確には今月末までですが。*1 退職にあたり、様々な方にご迷惑、ご心配ををおかけし、大変申し訳ありませんでした。 振り返って 思い出話なのでとりとめのない感じで…

TokyoMercurial#7 を開催しました。 #TokyoMercurial #mercurialjp

2013/03/23(土)にTokyoMercurial#7を開催しました。 TokyoMercurial 公式ページ TokyoMercurial#7 まとめページ Mercurial Wikiの適当なページの翻訳を行うと考えていたのですが、実際はrhodecode-1.6.0devのメッセージの翻訳を行なっていました。betaブラン…

pyramidとsqlalchemyのドキュメントをDash.app用に変換してみた

sphinxベースだったらなんでもOKの様ですね。メモ的に。 Pyramid-ja $ git clone https://github.com/pylonsproject-jp/pyramid $ cd pyramid $ virtualenv env $ source env/bin/activate $ python setup.py docs $ pip install doc2dash $ git submodule u…

WerkzeugでBasic認証

ふと思い立ってWerkzeugでBasic認証してみた。BasicAuthMiddlewareでBasic認証を行い、認証が通ったらappに処理を移譲する。 WerkzeugではHTTPヘッダに対応するクラスがあり、Authorizationヘッダーの情報はRequest.authorizationで、WWW-Authenticateヘッダ…

入門TortoiseHg+Mercurial

著者の id:flying-foozyさんから「入門TortoiseHg+Mercurial」を献本していただきました。 入門TortoiseHg + Mercurial作者: 藤原克則出版社/メーカー: 秀和システム発売日: 2013/02メディア: 単行本購入: 3人 クリック: 3回この商品を含むブログ (5件) を見…

reviewboardとtornadoを組み合わせてapacheを使わずに動かす

reviewboardを動かす場合apacheが前提になっているのでだるいです。ドメインとかも入力させられるし。僕はとりあえず8080で動かしたいんだ!的な。 wsgiが動いて静的ファイルがサーブ出来ればいいだけなのに、、、 ということで、tornadoを使ってさくっと動…

2013年の抱負

引っ越しかなぁ。いろいろ心機一転したいですが。 とりあえず直近の目標 RhodeCodeのメッセージの翻訳100% 新年一本目のPullRequestが取り込まれて95%位になったので、後もう少しです。 mercurialの本家wikiの翻訳のお手伝い TokyoMercurial#7 の開催 2月く…

2012年って何やってたっけ?

ちょっと思い出してみます。 Mercurial Mercurial的な活動だとこんな感じですかね。 TokyoMercurial 開催 mercurial-users.jpにMercurialのマニュアルの日本語訳を掲載 rhodecodeのメッセージの日本語を作成(今見たら翻訳率89%くらい) 「mercurial-develにパ…

hg convert --splicemap でリポジトリ変換時に履歴を繋ぐ #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の25日目です。 またまたid:flying-foozyさんからネタを提供していただきました。長かったMercurial Advent Calendarもこれが最後です。 単にhg convertで変換してみる リポジトリ変換を行うhg convert。ブラ…

特別なブックマーク bookmark('@') #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の21日目です。 id:flying-foozy さんからアンドキュメンテッドなMercurialの仕様を教えていただいたのでそのことをネタにします。 bookmark('@') 最近Mercurialのリポジトリにブックマークが付きました。 bo…

Pure JavaによるMercurial実装 Hg4J #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の20日目です。 Pure JavaによるMercurialの実装Hg4Jの紹介をしたいと思います。 Hg4J Hg4J Pure Java によるMercurial実装です。 Mercurial 1.9から利用できる CommandServerを利用する JavaHg とは異なり、…

Yet Another Mercurial Hosting Service: Pikacode #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の15日目です。 ちまたではBitbucket一色ですが、別の選択肢のあるよー(多様性は善)ということでPikacode.comというホスティングサービスを紹介したいと思います。 Pikacode.com Pikacode.com はフリーのMerc…

あまり知られていない?Mercurialのサブコマンドやオプション #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の14日目です。 開発中によく質問されることを気ままに紹介しようと思います。 リポジトリのクローン時に専用の鍵を利用する hg clone 、 hg pull 、 hg push には --ssh オプションが存在します。 このオプ…

Mercurialのバンドルファイルを扱う #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の9日目です。 Mercurialで扱えるバイナリ形式の差分ファイル、バンドルファイルについて簡単に説明したいと思います。 バンドルファイルを作る ローカルリポジトリにあるリビジョンをバンドルファイルにする…

CUIでも使えるMercurialのリポジトリブラウザ hgview の紹介 #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の8日目です。 CUIでも使えるMercurialのリポジトリブラウザ hgview を紹介したいと思います。 hgview hgviewはLinuxやMac、Cygwinで利用出来るGUI、CUI兼用のMercurialのリポジトリブラウザです。今回はCUI…

Bitbucketをちょっとだけ便利にする。 #augj

このエントリはAtlassian Advent Calendar 2012 #augjの4日目のエントリです。 前日は id:kyon_mm さんの SourceTreeで楽々git-flow, hg-flow #augj - うさぎ組 です。 明日は @mtgto さんです。 今回はBitbucketをちょっとだけ便利に使う方法を紹介しようと…

hgrc tips #mercurialjp

このエントリはMercurial Advent Calendar 2012の 1日目です。前回*1の反省を踏まえ、今回は軽いネタから、hgrcのtipsについて話したいと思います。 hgrcのマニュアルの日本語訳をwebから参照したい mercurialのマニュアルはほぼ100%日本語化されています。 …

DataMapper-1.2.0 + Kaminiari-0.14.1 でORをつかうクエリのtotal_countが動かない

具体的には次の部分が動かない https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/models/data_mapper_collection_methods.rb#L12 module Kaminari module DataMapperCollectionMethods def total_count #:nodoc: model.count(query.options.e…

dm-constraints(v1.2.0)のREADMEの日本語訳

試しに訳してみた。 訳は適当なので間違ってるところもあると思う。 原文: https://github.com/datamapper/dm-constraints/blob/v1.2.0/README.rdoc dm-constraints DataMapperのアソシエーションに外部キー制約を追加するプラグインです。 現在はPostgreSQL…