From: Tanaka Akira Date: 2002-02-07T03:09:38+09:00 Subject: Re: CVS commit emails In article <1013004973.436472.19761.nullmailer@ev.netlab.jp>, matz@ruby-lang.org (Yukihiro Matsumoto) writes: > Hmm, so why did several mails come out from my commits? Because it's not so magical. The magic doesn't gather multiple cvs commit. cvs commit invokes several times of commitinfo and loginfo as: commitinfo for directory D1 ... commitinfo for directory Dn loginfo for directory D1 ... loginfo for directory Dn A non-magical script which sends a mail for each loginfo invocation sends a mail for each directory. A magical script only sends a mail for last loginfo invocation by counting invocations. Just now, I tried pcl-cvs comes with Emacs 21. It works fine with multiple directores. It invokes single cvs commit for marked files in multiple directores. If you have a problem with marked files in multiple directores, it is *not* pcl-cvs problem because I have same problem with command line cvs client. I don't identify the problem yet, though. > Anyway, if cvsmailer works well, the proposal left is attaching diffs > to mails. Is it hard to do? It shouldn't problematic. Just daemonize a process and wait few seconds to unlock a reopsitory and run cvs rdiff. Ask the maintainer of cvsmailer. Note that, at daemonization, cvsmailer should close all file descriptors which is opened by cvs. It can be implemented as follows. (0..64).each {|fd| IO.new(fd).close rescue nil} Unfortunately it requires the magic number 64 because Ruby doesn't provides a builtin to call sysconf. It is practically not a problem, though. -- Tanaka Akira