【WordPress開発管理】(3) gitでWordPress本体のバージョン管理をする

ソースコードに手を入れていた場合、WordPress標準のバージョンアップ方法では改修内容が全部吹き飛んでしまいます。
そこでgitでのソースコード管理がまず最初に浮かぶ方法になりますが、これを踏み込んで解説していきます。

WordPress日本語版と英語版

まず、WordPress日本語版と英語版は異なるものです。
本家は英語版です。日本語版は時計を日本標準時にするなど日本人向けに調整しなおしたもので、WordPress日本語版チームが作成しています。
詳しくはWordPress日本語版サイトに書いてあります。

WordPress 日本語版について

日本語サイトを作るうえでは日本語版を使うのがよいでしょう。

SVNリポジトリは案内されていない

日本語版は本家SVNリポジトリとともに管理されているようです。本家SVNから日本語版パッチを当てるなどパッケージ作業をして日本語版が出来上がるため、日本語版リポジトリというものはなく、WordPress.orgではzipとtarでの提供となっています。
いろいろな背景を考えると日本語版チームが独自リポジトリを別に作るのは筋が悪く、今の管理方法は妥当と思います。

そこで、gitリポジトリは自前で立てて、zipファイルを自分で展開、コミットしていくこととします。

gitリポジトリサービス

gitリポジトリはどこに立てても良いのですが、ansibleでのデプロイ時にアクセスできる場所におく必要があります。多くはインターネット上のサービスを使う形になると思います。

gitリポジトリサービスはたくさんありますが、よく使われるところでは次のところだと思います。

私自身はGitLab.comを使用しています。

外部サービスを使う場合、サービスダウン時にデプロイ作業ができなくなるリスクがありますので、許容できない場合はミラーサーバを立てるなり工夫が必要になります。

zipを展開しただけのリポジトリを作る

まずzipを展開しただけのリポジトリを作ります。今後WordPress日本語版のバージョンアップがあった場合、このリポジトリを更新し、サイト用リポジトリにマージするためのhistoryを作るためです。

$ wget https://ja.wordpress.org/wordpress-4.3-ja.zip
$ unzip wordpress-4.3-ja.zip
$ mv wordpress wordpress-ja-zip
$ cd wordpress-ja-zip
$ git init
$ git add *
$ git commit -m "WordPress日本語版4.3"
$ git remote add origin git@gitlab.com:noldor/wordpress-ja-zip.git
$ git push -u origin master

サイトを作る際に必ず導入するテーマ、プラグインがあれば、これに同梱してしまうと楽です。ただし、改修をあまり加えないものに限ったほうがいいでしょう。頻繁に改修するテーマについては次回取り扱います。

サイト用リポジトリを作る

上で作ったリポジトリからフォークする形でサイト用リポジトリを作ります。
WordPressバージョンアップ時は「フォーク元の変更を取り込む」という形で、自前の改修履歴を保持したままバージョンアップできるようになります。

$ git clone git@gitlab.com:noldor/wordpress-ja-zip.git
$ mv wordpress-ja-zip blog.noldor.info
$ cd blog.noldor.info
$ git remote set-url origin git@gitlab.com:noldor/blog.noldor.info.git
$ git remote add upstream git@gitlab.com:noldor/wordpress-ja-zip.git
$ git push -u origin master

サイト別の改修はこのリポジトリに対して行い、前回まで説明のansibleでのデプロイに使用します。

WordPressのバージョンアップを行う

WordPress本体がバージョンアップした場合、wordpress-ja-zipリポジトリの更新を行い、それをサイト用リポジトリに反映します。

wordpress-ja-zipリポジトリの更新時、削除ファイルも反映されるようにします。
プラグイン、テーマを同梱している場合はそれらも忘れないようにしてください。

$ cd wordpress-ja-zip
$ rm -fr *
$ wget https://ja.wordpress.org/wordpress-4.3.1-ja.zip
$ unzip wordpress-4.3.1-ja.zip
$ mv wordpress/* .
$ rmdir wordpress
$ git add *
$ git status
$ git commit -m "WordPress日本語版4.3.1"
$ git push

wp-config.phpに変更がある場合はansibleのデプロイ用playbookへの反映を忘れないでください

サイト用リポジトリへの反映はmergeにより行います。

$ cd blog.noldor.info
$ git fetch upstream
$ git merge upstream/master
$ git push

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください