I'm doing some with the SMTP code that David Gourdelier submitted to CVS, and I've got a logistics question. There are now a number of relatively different classes inside of that module, and I thought it would benefit from being split into multiple code files. The problem is that I need to delete the file SMTP.pmod and replace it with a directory of the same name. Is that going to create problems for people that already have the tree checked out (don't remember if I've ever done this myself).
I won't do this until someone gives the OK on that, lest I create real problems.
Bill
Well, people having the tree checked out ought to be competent enough to deal with it. I think it's not worse than that you have to run cvs update twice, since the first one only drops the file and the second one checks out the directory (providing you use -d).
Maybe someone need to tend to the xenofarm system afterwards, but it ought to handle this as it happens every now and then.
/ Martin Stjernholm, Roxen IS
Previous text:
2003-10-19 20:02: Subject: CVS question
I'm doing some with the SMTP code that David Gourdelier submitted to CVS, and I've got a logistics question. There are now a number of relatively different classes inside of that module, and I thought it would benefit from being split into multiple code files. The problem is that I need to delete the file SMTP.pmod and replace it with a directory of the same name. Is that going to create problems for people that already have the tree checked out (don't remember if I've ever done this myself).
I won't do this until someone gives the OK on that, lest I create real problems.
Bill
/ Brevbäraren
The real problem is that you can't do cvs remove on a file and then readd it as a directory, if I recall correct. You would have to do some manual repository work (mkdir SMTP.pmod ; mv SMTP.pmod,v SMTP.pmod/module.pmod,v).
/ Martin Nilsson (saturator)
Previous text:
2003-10-19 20:16: Subject: CVS question
Well, people having the tree checked out ought to be competent enough to deal with it. I think it's not worse than that you have to run cvs update twice, since the first one only drops the file and the second one checks out the directory (providing you use -d).
Maybe someone need to tend to the xenofarm system afterwards, but it ought to handle this as it happens every now and then.
/ Martin Stjernholm, Roxen IS
Yes, you can. It's the other way around that's impossible since directories aren't versioned.
/ Martin Stjernholm, Roxen IS
Previous text:
2003-10-19 20:26: Subject: CVS question
The real problem is that you can't do cvs remove on a file and then readd it as a directory, if I recall correct. You would have to do some manual repository work (mkdir SMTP.pmod ; mv SMTP.pmod,v SMTP.pmod/module.pmod,v).
/ Martin Nilsson (saturator)
You're just guessing...
[nilsson@m222 id3]$ cvs remove -f foo cvs remove: scheduling `foo' for removal cvs remove: use 'cvs commit' to remove this file permanently [nilsson@m222 id3]$ cvs commit -m "Test" foo Removing foo; /usr/cvsroot/id3/foo,v <-- foo new revision: delete; previous revision: 1.1 done [nilsson@m222 id3]$ mkdir foo [nilsson@m222 id3]$ cvs add foo cvs add: the directory `foo' cannot be added because a file of the cvs [add aborted]: same name already exists in the repository.
I've move SMTP.pmod to SMTP.pmod/module.pmod. It takes, as you said, two updates to get the changes locally.
/ Martin Nilsson (saturator)
Previous text:
2003-10-19 20:32: Subject: CVS question
Yes, you can. It's the other way around that's impossible since directories aren't versioned.
/ Martin Stjernholm, Roxen IS
Your compatibility module doesn't work:
> pike -V7.4 -e Protocols.SMTP lib/7.4/modules/Protocols.pmod/SMTP.pmod:6:Illegal program pointer. lib/7.4/modules/Protocols.pmod/SMTP.pmod:7:Class definition failed. lib/7.4/modules/Protocols.pmod/SMTP.pmod:10:Illegal program pointer. lib/7.4/modules/Protocols.pmod/SMTP.pmod:12:Class definition failed.
You can't inherit directory module and expect to get anything useful - you just inherit a dirnode or joinnode instead. (I've wanted to fix that for some time, though.)
/ Martin Stjernholm, Roxen IS
Previous text:
2003-10-19 20:55: Subject: CVS question
You're just guessing...
[nilsson@m222 id3]$ cvs remove -f foo cvs remove: scheduling `foo' for removal cvs remove: use 'cvs commit' to remove this file permanently [nilsson@m222 id3]$ cvs commit -m "Test" foo Removing foo; /usr/cvsroot/id3/foo,v <-- foo new revision: delete; previous revision: 1.1 done [nilsson@m222 id3]$ mkdir foo [nilsson@m222 id3]$ cvs add foo cvs add: the directory `foo' cannot be added because a file of the cvs [add aborted]: same name already exists in the repository.
I've move SMTP.pmod to SMTP.pmod/module.pmod. It takes, as you said, two updates to get the changes locally.
/ Martin Nilsson (saturator)
It wasn't a directory module when I made it though...
/ Martin Nilsson (saturator)
Previous text:
2003-10-24 21:44: Subject: CVS question
Your compatibility module doesn't work:
pike -V7.4 -e Protocols.SMTP
lib/7.4/modules/Protocols.pmod/SMTP.pmod:6:Illegal program pointer. lib/7.4/modules/Protocols.pmod/SMTP.pmod:7:Class definition failed. lib/7.4/modules/Protocols.pmod/SMTP.pmod:10:Illegal program pointer. lib/7.4/modules/Protocols.pmod/SMTP.pmod:12:Class definition failed.
You can't inherit directory module and expect to get anything useful - you just inherit a dirnode or joinnode instead. (I've wanted to fix that for some time, though.)
/ Martin Stjernholm, Roxen IS
It's another matter to keep the version history. One ought to do the move you suggested so that it still is accessible.
/ Martin Stjernholm, Roxen IS
Previous text:
2003-10-19 20:26: Subject: CVS question
The real problem is that you can't do cvs remove on a file and then readd it as a directory, if I recall correct. You would have to do some manual repository work (mkdir SMTP.pmod ; mv SMTP.pmod,v SMTP.pmod/module.pmod,v).
/ Martin Nilsson (saturator)
pike-devel@lists.lysator.liu.se