« Slony-I まとめ | Home | イギリス生活 »

Subversionのmerge

2007-12-03 - 23:58

http://d.hatena.ne.jp/higepon/20071202/1196576743

「いまさら聞けない」的な疑問の一つだったんだけど、やっぱりSubversionのmergeって自分でmergeしたリビジョンを覚えてないといけないのね。いや、確かにドキュメントにもそう書いてあるんだけど「そんな馬鹿な」と思ってた。

普通はどうしてるんだろう。サードパーティっぽいツールもあるけど、どうも使いづらいんだよなあ。

自分は、commitログにリビジョンを書いておくなんてマメなことはできないので、mergeのwrapperコマンド作ってしのいでいる。 そのスクリプトは、どのブランチのどのリビジョンとmergeしたか、という情報を持つファイルを作成して、そのファイル自体も一緒にcommitする。次回のmergeでは、そのファイルを参照して前回commitしたリビジョンからmergeするだけ。

こんな感じ:

$ cd <mergeしたいレポジトリの作業ディレクトリ>
$ sh ~/bin/merge_branch <branchの名前>
  これで、.current_rev_<branchの名前>というファイルができて、その中にmergeが完了したリビジョンの履歴が残る。初回は、--stop-on-copyでどこからmergeすれば良いか取得
$ svn commit

自分しかmergeしない場合(または同じレポジトリいじる人に、このスクリプトを使うことを強要できる場合)でしか使えないけど、 これを使い始めてから数年mergeで苦労したことないので取り合えず満足はしている。 もちろんSubversionでちゃんとサポートしてくれると嬉しい。

糞スクリプトだけど取り合えずおいておこう。

他に、Subversionで嫌いなのは、ファイル名の変更とか、ファイルの移動のサポートがいい加減、というかもうちょっと賢くてもいいんじゃないの、ってところ。 Subversionのファイルの移動はただ「commitログを引き継ぐ」というだけで、ファイル自体は別のものとなってしまうので、mergeとかしたときにファイル名が変わってるとうまくいかない。

後、svkでできるようなことがsubversion自体でできればいいのに、と思う。localでcommitしたいことあるからなあ。レポジトリを汚したくないとかそういう理由ではなくて、単純にネットワークがない、とかの場合に。分散SCM使え、は禁止。

それと、サーバサイドでautopropできないのも嫌い。「いつか実装する」的なのは何度か見てるんだけど。

どれもこれもたいして難しそうじゃないのになんで実装されないんだろうか。

その他は特に問題ないかなあ。やっぱりWindowsクライアントがあるのは大きいし、hook関係でも色々しちゃってるので(コーディング規約のチェックとか)、そう簡単には乗り換えられない感じ。

使用タグ:
No comments

Trackback link:

トラックバック用URLを生成するには、JavaScriptを有効にしてください。

  
情報を記憶する

Emoticons / Textile
  (ユーザー登録 / ログイン)

通知:
アドレス非公開:

注意: 使用できるタグは <b> と <i> のみです。URLやメールアドレスはそのまま記述すればリンクになります。

 

設定

  • イギリス在住プログラマー
  • 趣味は城巡り
  • オープンソース好きという表向き
  • twitter
  • masatomon at gmail.com

最近のエントリ

PostgreSQL ebuilds
サーバ側のSubversionを移行でなんかエラー
VMware上のGentooでsuspendとかresumeとか。
Flexでbuild時にユニークなIDをふる
スイス行ってきた

twitter

photos from mobile


きもちー



状況がわかんない…



近所のお気に入りパブ…



チェス



photo.jpg


最近のコメント

通りすがりです… (Slony-I まとめ…): Slony の情報、大変参考に…
なかの (泥棒に入られた - …): ひろしまさん、 とりあえず…
mamoruk(usata) (泥棒に入られた - …): あれあれ、大変でしたね。 …
ひろしま (泥棒に入られた - …): 逆に考えるんだ。 初級期…
なかの (iPhone続き): なんかもろもろの話を総合…

最近の参照元

05:57 [Go] 2008
05:39 [Go] マルチマスター…
05:37 [Go] database link…
04:59 [Go] bucardo Postgre…
04:56 [Y] postgre uuid
04:06 [Go] flex css
02:33 a.hatena.ne.jp/usata3…
02:25 [S] google app engin…
02:06 a.hatena.ne.jp/h-hira…
01:59 kazehakase.sourceforg…
01:33 a.hatena.ne.jp/usata3…
01:19 [Go] ATOK
01:00 [Go] flexible flex
00:39 [Go] etc/init.d/post…
21:11 [Go] hunterian museu…
14:15 a.hatena.ne.jp/usata3…

タグ

アーカイブ

2008-08
2008-04
2008-03
2008-02
2008-01
2007-12
2007-08
2007-07
2007-06
2007-05
2007-04
2007-03
2007-02

Powered by Pivot - 1.40.5: 'Dreadwind'