このblogはMovableTypeと言うシステムを使って書いている。
MovableTypeがバージョンアップすると、フルセットのzipファイルで提供されるのだが、今まではバージョンアップするたびに以下の手順を踏んでいた。
  1. 既存のmtディレクトリをリネーム
  2. 新しいzipを展開
  3. mt-config.cgiを古いディレクトリからコピー
  4. 追加していたpluginを古いディレクトリからコピー
  5. 追加していたtemplateを古いディレクトリからコピー
  6. 追加していたalt-tmplを古いディレクトリからコピー
  7. 自分用にカスタマイズするパッチをソースにあてる
この手順を全て手動でやっていたので、毎回何かしら忘れたりして後からコピーしたりしていた。
せっかく、gitみたいなバージョンコントロールのシステムがあるのだから、なるべく手でやる手順は減らしてみることにする。
# ここまでやるなら、MTOSにして直接リポジトリとやるようにしたらもっと楽になると思うけど、今のところ個人無償ライセンスで製品版を使う。

今回は、MT-5_1-ja.zip(5.1)をベースにローカルな修正を加え、それをMT-5_11-ja.zip(5.11)に上げる手順をやってみる。
  1. リポジトリを作る
    % mkdir mt
    % cd mt
    % git init
    
  2. リポジトリにMT-5.1をコピーして追加する。
    % cd ..
    % unzip MT-5_1-ja.zip
    % cp -r MT-5.1-ja/* mt/
    % cd mt
    % git add *
    % git commit -m "import 5.1"
    % git tag MT-5.1 ←tagでわかりやすい名前を付けておく
    
  3. ローカルの変更用のbranchを作成して、ローカルの変更を加える。
    % git checkout -b local
    ... ローカルの変更を加える
    % git commit -a -m "local changes"
    % git tag MT-5.1l
    
ここまでが、5.1の時点でやっておくべきこと。
ここからは、5.11のzipを持ってきてからやること。
  1. masterブランチに5.11をコピーする。
    % git checkout master ←カレントディレクトリはmt
    % rm -rf * ←バージョンアップで削除されたファイルがある場合に対応するため
    % cd ..
    % unzip MT-5_11-ja.zip
    % cp -r MT-5.11-ja/* mt/
    % cd mt
    % git status ←これをやると、何が追加/削除/変更されたかわかる
    % git commit -a -m "import 5.11"
    % git tag MT-5.11
    
ここまでで、masterブランチに5.11を持ってこれた。後は、5.11にローカルの変更を加えたバージョンを作れば良いんだけど、やり方として git merge を使うやり方と、git rebase を使うやり方があるらしい。
今回は、おそらくこう言う場合のためにあるであろうrebaseを使ってみる。
  1. rebase
    % git checkout local
    % git rebase master
    .... conflictせずに成功したら
    % git tag MT-5.11l
    
え~っと、終わりです。
masterの修正内容と、localブランチの修正内容がぶつかる場合は Conflict が検出されて、自分で直して git rebase --continue とかやらないといけないらしいですが、今回は何のエラーも出ずに終わってしまいました。
git log --all --graph とか見ると、元のbranchとは別に新しくMT-5.11をベースにbranchが作られていることがわかる。

追記
なんとなく、rebaseよりもmergeの方が良いような気もしたので、mergeの手順も書いておく。最後のrebaseの所を以下のように変えるとmergeになる。
  1. merge
    % git checkout local
    % git merge MT-5.11 ←masterでも良いけどtagを指定した方がmergeのlogがわかりやすいと思う
    .... conflictせずに成功したら
    % git tag MT-5.11l
    

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: gitを使ってMovableTypeのバージョンアップを追いかける

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/2691

コメントする

このブログ記事について

このページは、falseが2011年6月10日 09:19に書いたブログ記事です。

ひとつ前のブログ記事は「Objective-C メモ」です。

次のブログ記事は「フレッツ 光ネクスト」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1