カテゴリ | |
---|---|
サマリ | 改造されたPukiWikiのバージョンアップ |
バージョン | 1.4.2 |
投稿者 | 名無しさん |
状態 | 完了 |
投稿日 | 2004-05-26 (WED) 03:52:31 |
質問箱/312 に似たような質問はあったのですが、結局どうしたらよいのかわからなかったので質問します。
PukiWiki を改造していた場合バージョンアップはどのように行えばよいのでしょうか?最新版をダウンロードして diff をとって patch をあててしまうと最新版になるだけですよね?
cvscheck.inc.php を利用して、最新バージョンが出ているかを確認し、CVS サイトにいって、改造したけれども自分が使っているバージョンと最新バージョンとの比較をして、それをちくちく手動で書き換えるのですか?
改造したものと同じバージョンの本来のスクリプトとの diff をとって、さらにその本来のスクリプトと最新バージョンとの diff をとって、両方を、って無理ですよね?
ずばり手動なんですか?よろしくお願いします。
cvsのupdateというコマンドを使えば、半自動でマージできますよ。ここで言うcvsとは、CVSサイトのことではなく、cvsというプログラムです。無い場合は、インストールしてください。改造の度合いにもよりますが、大部分は自動でマージしてくれます。変更箇所が重なっていてマージできない部分は、両方の(CVSの最新版と貴方の改造)のソースが示されます。その部分は、手動でマージする必要があります。まずは、cvsの勉強をしてみて下さい。CVS も参考に。
ほうほう、ありがとうございます。
1.4.2 から 1.4.3 への update するためには個々のファイルのバージョンが記述されている CVS/Entries などが必要なんですよね?バージョン 1.4.2 の CVS/ を取得するにはどうしたらよいのでしょうか。普通の checkout で 1.4.2/CVS/Entries などがついてきたのですが、中身は空みたいなものでした。
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/pukiwiki checkout -r 1_4_2_branch pukiwikiとでもするのかとも思ったのですが、
cvs [server aborted]: Numeric tag 1_4_2_branch contains characters other than digits and '.'とエラーがでるだけでした。お願いします(ついでに CVS/ 情報だけ取得する方法がありましたらお願いします)。
-r 1.4.2 でできました。と思ったら CVS/Entries の中身は D/plugin//// だけでした。-r って個々のファイルのバージョンを指定しているだけでしょうか?どのようにして pukiwiki1.4.2 の CVS 情報を得るのか引き続きよろしくお願いします。
というかそもそもローカルに2つのファイルをマージするようなプログラムってないのですかね?
タグが違います。-r r1_4_2 です。ローカルのコマンドでやる方法としては、diff3 でできるはずです(やったことないですけど)。
ということは CVS のページも r が足りないんですね。diff3 ならローカルでちくちくやれそうです。cvs update みたいにファイルをいきなり書き換えないようですし。一気にやる場合は cvs update を使わないときつそうですが。ありがとうございました。
CVSコマンドが使えるならば、ローカルにCVSリポジトリーを作成してベンダータグを使ってやる方法もある。参照=>PukiWiki本家をローカルcvsで追いかける。
完了したはずだったのですが、すみません。もう1つお願いします。cvs co -r r1_4_2 で持ってきたときに cvs update をしたときに最新版にアップデートされるのではなく、あくまで r1_4_2 のものがアップデート(つまり意味なし)されてしまいます。-r r1_4_3 としてアップデートはできるのですが、本当の最新版にアップデートするにはどのようにしたらよいのでしょうか?ishii さんの方法ならできるのですよね?2つ checkout するとマージになるのですか。へー。#ちなみに diff3 -m (--merge) は標準出力になるようなので1つ1つちくちくやることになりそうでした。形式は cvs update のときと同じようでした。もとい、昔の cvs はこれを利用していたとかなんとか?
オプション -j の挙動がよくわかりません。http://ne.cs.uec.ac.jp/~koto/memo/cvs.html のサイトによると cvs checkout -r r1_4_2 -r r1_4_3 [改造したもの] のようにすると diff r1_4_2 r1_4_3 を [改造したもの] にあてるというような挙動をするらしいのですが、[改造したもの] が空である ishii さんの例の場合は一体どうなるのですか?とりあえず cvs checkout -j r1_4_2 -j r1_4_3 pukiwiki と r1_4_2 を保存後 cvs update -r r1_4_3 pukiwiki で出来上がったファイルは diff をとると違うもののようでした。-j は diff のように削除はしないということですかね?
また新たな疑問がでてしまいました。cvs checkout pukiwiki は最新バージョンが落とされるのですよね?しかし、保存された plugin/edit.inc.php が古いものでした(具体的には 1.11) http://cvs.kandix.idv.tw/cgi-bin/viewcvs.cgi/pukiwiki/plugin/edit.inc.php?sortby=date によると 1.3 まででているはずなのですが。
% cvs status pukiwiki/plugin/edit.inc.php =================================================================== File: edit.inc.php Status: Up-to-date Working revision: 1.11 Repository revision: 1.11 /cvsroot/pukiwiki/pukiwiki/plugin/edit.inc.php,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none)質問ばかりでほんとすみません。
1.3よりも1.11の方が新しいのです。http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pukiwiki/pukiwiki/plugin/edit.inc.php
私が見ていたのは別サイトでしたか。そのサイトに行きついたのは RecentDeleted 機能を使いたいと思ったからです。1.4.3 に統合されたと PukiWiki/Download/1.4.3 に書いてあったのに私は使用できなかったので古いバージョンなのかと思ってしまいました。edit.inc.php に dev:BugTrack/491 にあったようなコードが見当たらないのですが、実は統合されていないのでしょうか?(追記:file.php にありました。もう少し調べてみます。ありがとうございました。)
最新リビジョンのタグは、HEAD です(cvs のマニュアルにもちゃんと書いてあ ります)。cvs update -r HEAD で最新版にアップデートできるはずです。例え ば、貴方が r1_4_2 をベースに改造した PukiWiki が、mypukiwiki/ にあるも のとすると、以下のコマンドで最新版にアップデート&マージできると思いま す。
cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/pukiwiki co -r r1_4_2 pukiwiki cp -R -P -p mypukiwiki/ pukiwiki/ cd pukiwiki cvs update -r HEADなお、diff3 を使ってやる場合ですが、foreach や find と組み合わせれば、 自動で全ファイルを処理できると思いますよ。