PukiWiki公式サイトをバージョンアップする手順です。 by umorigu (2021-12-11)
PukiWiki公式サイトの管理者向けの情報です。
- サイトの設定及びカスタマイズがソースコードの変更としてがgitで管理されている
- オリジナルリポジトリに追加する形でサイトのカスタマイズを管理 (site ブランチ)
- サイト用のリポジトリは非公開
- official ( pukiwiki.osdn.jp/ ) と dev ( pukiwiki.osdn.jp/dev/ ) は別リポジトリ
- リモートリポジトリ
- osdn: 公式PukiWikiリポジトリ(公開版)
- origin: サイト管理用リポジトリ (非公開)
- バージョンアップ結果が正しく動くことを確認してから本番サイトへ適用する
- コンテンツファイル (wiki/ や attach/ 等) を移動せず、一度に最小限のファイルコピーでバージョンアップを完了させる
- 設定やカスタマイズ項目をすべてバージョン管理する
- オリジナルリポジトリに対してどういう変更を加えているかを明確にする
- PukiWikiのリリース前にもリポジトリ内容を反映できるようにする
- PukiWiki-official https:// pukiwiki.osdn.jp/
- PukiWiki-dev https:// pukiwiki.osdn.jp/dev/
バージョンアップ手順†
- (1) 適当な場所にコピー ( cp -rp official/ ../htdocs/xxx/ )
- (2) カウンタをOFFにする(本番カウンタを更新しないように)
- plugin/counter.inc.php : define('PLUGIN_COUNTER_USE_DB', 1); → define('PLUGIN_COUNTER_USE_DB', 0);
- (3) ディレクトリパーミッションを設定して表示できるようにする
- chmod 770 attach counter backup cache wiki diff
- (4) ブランチを作成してrebase
- git fetch osdn
- git checkout -b site_official_20211211
- rebase : git rebase osdn/branch_r1_5
- コンフリクトを解消しながらカスタマイズ項目を適用していく
- バージョンアップで不要になったカスタマイズはrebase中に消すか、または追加コミットで戻す
- (5) コピー先のディレクトリで表示確認
- (6) コピー元のディレクトリの.git ディレクトリを、コピー先の .git で入れ替え
- mv .git .git-20211211 # バックアップ
- cp -rp (copired_dir)/.git .
- (7) コピー元ディレクトリで git status で変更ファイルを確認
- Gitのカレントブランチが新しく、実ファイルが古い状態となっている
- (8) コピー先からコピー元に、変更ファイルをコピー (git status で差分がなくなるように)
- D=../htdocs/xxx
- cp -p $D/xxx/yyyy xxx/yyyy # をファイル数分実行する
- (9) git status で差分がなくなったらサイト管理用リモートリポジトリにpush
- git push origin site_official_20211211
パーミッションを変えないときのエラー†
Runtime error
Error message :
Directory is not found or not writable (DIFF_DIR)
Directory is not found or not writable (BACKUP_DIR)
pkwk_chown(): fopen() failed for: CACHEDIR/pkwk_chown.lock
$ rm cache/pkwk_chown.lock
pkwk_chown(): flock() failed
$ rm counter/user.dat
- 公式リポジトリとの関係が密になるので一般サイトの管理には適さない
既に git 管理しているファイルをあえて無視したい - Qiita
https:// qiita.com/usamik26/items/56d0d3ba7a1300625f92
git skip-worktree を使って、 wiki/ の中のファイルが変更されていても変更管理対象にならないようにしている。
git update-index --skip-worktree wiki/xxx.txt
解除方法:
git update-index --no-skip-worktree wiki/xxx.txt
コメント†