@kyanny's blog

My thoughts, my life. Views/opinions are my own.

trunk を branches へマージするときのマージ元リビジョン番号の指定を勘違いしていた

svn log --stop-on-copy で一番したにでてくる、ブランチを作った時点でのコピー元リビジョン番号を常に指定しておけば ok なのかと勘違いしていた。

マージした直後にもう一度 --dry-run でマージを試してみて差分があるかないかチェックしたら今落としてきたファイルがまだあったのでおかしいなと思って考えたら、間違いに気がついた。

コピー元リビジョンが 12345 だとして、 svn merge -r 12345:HEAD http://.../trunk は、ブランチが切られた直後と trunk の HEAD を比較して差分をマージ、という意味になる。マージした差分をコミットしてブランチのほうのリビジョンがあがって 23456 になったとしたら、 svn merge -r 23456:HEAD http://.../trunk としないと、「差分をマージ」することができなくなっておかしくなる。きがする。

svn merge したら svn ci して、マージした差分をブランチへコミット。その後 svn up して、ブランチのワーキングコピーをレポジトリ(ブランチ)の最新版と同期する。その後、 svn info をしてワーキングコピーのリビジョン番号をとって、移行はその番号を起点にしてマージする。

合っているだろうか・・・。

しばらく作業してみて、だんだん合ってないような気がしてきた。うーん・・・。