ドキュメント管理のためのVCS 分散管理ならmercurialよりbazaarがアツい?

私がふと思いついて何かを作るとき

  1. まずプロジェクトのディレクトリを作り、
  2. 右クリックして「新規テキスト ドキュメント.txt」を作り
  3. それにだらだらとアイディアを書き連ね、設計して
  4. コーディングする

という順で進めます。

subversionではレポジトリ生成が手間(別の場所にレポジトリを生成し、管理しないといけないため)

なので最初は全て同じレポジトリに放り込んでいました。coderepos状態です。
しかし、1〜3のドキュメントの類と、4のコードは分けておいた方が、純粋にコード変更だけを追えてスマートだということに気づき、それからはプロジェクトごとにmercurialレポジトリを作ってコードを管理をしています。
ついでにドキュメント管理もmercurialでやれれば、subversionのレポジトリ管理の手間も無くなり、サーバが死んでてもOK!マージも賢い!万々歳!で、話はそこで終わりだったんですが……

TortoiseHG、如何せんこれがダメで、日本語ファイル名がまともに扱えない。

泣く泣くドキュメントはsubversionで管理していました。


今回、いい加減にsubversionから逃げ出したくなり

久しぶりにTortoiseHGの現状を見てみると、

TortoiseHg で日本語ファイル名
http://www.asukaze.net/etc/vcs/hg-fixutf8.html

2009/07/25 現在、TortoiseHg 0.8 ではダメ文字を含む日本語ファイル名はコミットできないようです。

…えー、変わってないようです。

fixutf8を使うと

mercurial.ini

[extensions]
fixutf8 = D:\hg_clones\hg-fixutf8-jp\fixutf8.py
hgext.convert=

subversionからのコンバート

> hg convert file:///d:/svn/hoge hoge

これは成功する。が、TortoiseHGのほうが日本語パスに未対応な挙動をして使い物にならない。


このあたりを愚痴っていると

ruby_U 2,3週前に開発者が話をしてる。がそれから進展なしか。fixutf8-jp関係 http://tinyurl.com/lsoyzp

http://twitter.com/ruby_U/status/2904466573
返事をもらった

kuy @ruby_U bzrはhgみたいな根本的な問題をかかえていないので日本語は期待できますよ。hgは手遅れかもです。TortoiseHgはfixutf8-jpが安定するまで追従しない予定です。

http://twitter.com/kuy/status/2906165436
ので

bazaarを試してみた。

Launchpadしかホスティングサービスが無いのと、ググってみるとTortoiseHGと同じようにTortoiseBZRにも”日本語パスで問題がある”との記述が見つかるので試さずに避けていたんですが、


コンテキストメニュー


ログ


diff


……どうやらこの問題についてはTortoiseHGを既に超えているようです。
diffも綺麗で申し分ない。ただ、エクスプローラのファイルオーバーレイ表示がちょっとダメかもしれません。フォルダを開いたときに重く、結果が反映されるのも遅いです。まあ問題ないといえば問題ないですが。


subversionレポジトリをbranchして

> bzr branch file:///d://svn/repo

上手く動くようです。
ホスティングサービスの関係でbazaarに統一は難しいので、ドキュメントはbazaar、コードはmercurial。この環境でしばらく行ってみることにしました。



おまけ! ライフハック「新規テキスト ドキュメント.txt」万能説

アイディアノート

tabでインデント、→は反論、結果のニュアンスで

key1がint min:0 以外の場合も許容されるべきではないか
	→そらそうだ

	→htaccessの自動修正とバッティングする

		baz/0/aaa/ とかで 0はダミー、
			→キャッシュが溢れる?
			→キャッシュしなければOK
		baz/?key1=aaa でPOSTする クエリはFieldStorageから取得する
			→POSTはこの手法だろうな
			→もちろん(用途的にも)キャッシュはしない
タスク管理

エディタで^//.+$はコメントアウト表示にしておくと見やすい
Ctrl+Shiftで選択行をコメントアウトできるエディタとの組み合わせは素晴らしい

//cacheableなものだけallowのほうがいいか

//keyが一つの時は[0]でアクセスするように

テンプレートの分離

//開発用簡易サーバ用環境も生成
設計にも
join_auth
	ip
	token
	created

session
	user.id
	key
	ip
	created


これらを順に末尾に書き加えていくだけで作業ログも兼ねるという…
このハックは夢のような開発をあなたに提供するでしょう!