SCM
Mar 03, 2009
git pushでちょっと驚いたこと
git pushはgit pullの反対ではない。
warning: updating the currently checked out branch; this may cause confusion,
as the index and working tree do not reflect changes that are now in HEAD.
git pushは gitの管理のところにcommit されるだけでワーキングツリーには反映されない。pushしたけりゃ専用リポジトリを用意しておけということみたい。確かに編集中にpushされてどんどんソースが変更されたら困ると思ってそういう設計にしてあるんだろうね。ちなみにpushされた側で git reset をかけたらきちんと merge(?)されたがそれでいいんだろうか。git diffでは何も出力されずに git diff HEADで出力されるというのも、合っているけどなんかね。
でも、自分のやっているように手元のPCとサーバ上の二箇所で作業するんだけの話だとdarcs使ったほうがいいかもしれない。FAQにはいろいろ工夫すればいいよということを書いてあるが…。
Feb 27, 2009
prcs2git
大体できた。
最初は一つのディレクトリでできるかと思ったがブランチの取り扱いが難しかった。prcs のmergeを無視して変なブランチを作っているだけだった。prcsのrevision毎に一つのディレクトリを作って init - pull をしていたが、さすがにフォルダ作りすぎなので prcsのbranch毎に一つのディレクトリという扱い。prcs の branchのマージを追い掛けると gitのほうでconflictしたりするのが苦労する。なんともならんところもある。
自動でやっているのでファイルの移動が追跡できてないので、削除と追加扱いになっているのかな。二回同じ操作をしようとして…駄目になるとか。結局gitのエラーメッセージをヒューリスティックに解釈してgit rmとかやるしかないようで。mergeの履歴さえ終えれば何をしようと勝手なんでいいのだけど。
ちょっと勘違いしていたが、mergeは実際にきれいにmergeされていなくてもいい。merge履歴が追い掛けられればそれでいいのであとは無理矢理で問題はない。

