[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:01086] Re: mhc-cvs
馬場@京大宇宙物理 です。
# mule-19.34 はあきらめて、emacs-20.6 + mew-1.94.2 で試しました。
From: KOIE Hidetaka (鯉江英隆) <hide@xxxxxxxx>
Subject: [mhc:01075] Re: mhc-cvs
Date: Mon, 16 Oct 2000 18:57:04 +0900
> | > しておいてから、スケジュールを追加・削除しても Sync がうまく働きま
> | > せん。つまり、~/Mail/schedule/.mhc-db-log には A とか D とかいうマー
> | > クは付いているのですが、リモートマシンに cvs commit してくれません
> | > (もちろん ONLINE 状態で)。
> こちら↑の問題は、わたしの方でも発生しました。
> リポジトリがlocalにある場合にはうまくゆくのですが、
> :ext:メソッドで試したらcvs addもされませんでした。
これは原因がわかりました。といっても自信がありませんが、たぶん。
mhc-cvs.el の mhc-cvs/add や mhc-cvs/remove では、
(mhc-cvs/backend "add" filename) などとしていますが、ここで
filename がフルパスに展開されて渡されているために、cvs add をすると
absolute pathname `/home/baba/Mail/schedule/2000/10' illegal for server
のようになって失敗します。リポジトリと同じマシンの場合には、これで
も成功してしまうので発現しません。
スマートな対処は全くわからないのですが、とりあえず、以下の差分のよ
うに cvs add する前に filename から /home/baba/Mail/schedule/ にあ
たる部分を取り除く処理を入れてやれば、cvs add や remove に成功して
commit もできるようになることは確認しました。
この考え方で良いようなら、もちろん、もっとマシなコードに直して頂く
のがよろしかろうとおもいます。
-
馬場 肇 ( Hajime BABA ) E-mail: baba@xxxxxxxxxxxxxxxxxxxxxx
京都大学理学部宇宙物理学教室 博士後期課程
--
Index: mhc-cvs.el
===================================================================
RCS file: /cvsroot/mhc/emacs/mhc-cvs.el,v
retrieving revision 1.4
diff -u -r1.4 mhc-cvs.el
--- mhc-cvs.el 2000/08/02 02:30:15 1.4
+++ mhc-cvs.el 2000/10/17 16:51:40
@@ -96,7 +96,7 @@
(let* ((default (catch 'found
(mapcar (lambda (dir)
(and (stringp dir)
- (file-directory-p dir)
+; (file-directory-p dir)
(throw 'found dir)))
(list
(getenv "CVSROOT")
@@ -174,18 +174,21 @@
(defun mhc-cvs/add (filename &optional offline)
"ファイルを追加する関数"
- (let ((added (mhc-cvs/get-added-flag-file-name filename))
+ (let ((dir (mhc-summary-folder-to-path mhc-base-folder))
+ (added (mhc-cvs/get-added-flag-file-name filename))
(removed (mhc-cvs/get-removed-file-name filename)))
(if (file-exists-p removed) (delete-file removed))
(if offline
(not (copy-file filename added t))
(if (file-exists-p added) (delete-file added))
- (and (= 0 (mhc-cvs/backend "add" filename))
- (mhc-cvs/modify filename)))))
+ (setq filename2 (substring filename (string-width (concat dir "/"))))
+ (and (= 0 (mhc-cvs/backend "add" filename2))
+ (mhc-cvs/modify filename2)))))
(defun mhc-cvs/remove (filename &optional offline)
"ファイルを削除する関数"
- (let ((added (mhc-cvs/get-added-flag-file-name filename))
+ (let ((dir (mhc-summary-folder-to-path mhc-base-folder))
+ (added (mhc-cvs/get-added-flag-file-name filename))
(removed (mhc-cvs/get-removed-file-name filename)))
(if offline
(if (file-exists-p added)
@@ -194,8 +197,9 @@
(if (file-exists-p added) (delete-file added))
(if (file-exists-p removed) (delete-file removed))
(if (file-exists-p filename) (delete-file filename))
- (and (= 0 (mhc-cvs/backend "remove" filename))
- (mhc-cvs/modify filename)))))
+ (setq filename2 (substring filename (string-width (concat dir "/"))))
+ (and (= 0 (mhc-cvs/backend "remove" filename2))
+ (mhc-cvs/modify filename2)))))
(defun mhc-cvs/modify (filename &optional offline)
"ファイルを変更する関数"