Slashdot Mirror


CVS Via E-Mail?

krogoth asks: "I'm working on a project with another programmer from Germany, and I and the person who runs our CVS server are in North America. This means that in the last 1-2 months, the other programmer and the CVS server have been online once, and that's not good enough. Is there any way to access a CVS server while it's offline (or at least have a commit/update ready to go)? The easiest way I can think of to do this would be e-mail... but then I don't have the time or knowledge to find out how to modify the server. The CVS server is running on Windows." Now this is an interesting idea. How difficult would it be to change the CVS client and daemon so that it would be possible queue up commits thru e-mail when the server is unavailable? Would any of you find this useful?

5 of 10 comments (clear)

  1. CVSQ by velkro · · Score: 2
    CVSQ, or CVS Queued might solve your issues. It doesn't work over email, but it allows you to quere up commits until the CVS server is available again.

    Ask Slashdot seems to be for people who haven't found www.google.com...

  2. well, not directly what you asked, but... by StandardDeviant · · Score: 2

    OK, so I know this isn't really an answer, but have you considered making a project on sourceforge? It would take care of all the stuff you needed to host the project (CVS, bug tracking, blah blah, you know the drill). Plus it's got a slightly better uptime/availability that some random Windows machine... ;^)

    WRT to the question itself, I'm not very familiar with the workings of CV, but speaking in the broadest sense of theory I could see how this might be doable using email, in that the message subjects could contain he codes neccessary to make the storage program interpret which message contains what, and the diffs could be attachments. This could also be non-trivial to program (i.e. me doubting CVS can do this normaly you may have to code up something that's ``really CVS-like'' from scratch (probably in perl because there exist plentiful tools native to the language and module base that would make this task easier than C or whatnot), like do you go on sent-time or receive- time to determine which diff came in ``first'' and represents an earlier version number?

    Anyway, good luck!


    --

  3. Re:What's this? by StandardDeviant · · Score: 2

    Well, use a non-silicon patch mechanism. In other words, only one person at a time has the ability to modify the source package through some arraingment between the participants. Like how a token ring lan works. Kludgy, yes, but platform independent and doesn't use sourceforge. :-) (Perl used somethign similar for a while back in the early 5.x days called the ``patch pumpking'' whereby only one person at a time had the ``patch pumpkin'')

    Shrug. Restricting yourselves to win32 and private server leaves you with a pretty small solution space. Anyway, good luck!


    --

  4. CTM by elbuddha · · Score: 2


    CTM does this.

    Server side, the CTM server runs a script which identifies changes, compresses them, puts a sequence number on them, and emails them out. Client side, ctm.rmail decodes and applies the changes.

    CTM was developed for use with FreeBSD, but could be used for any source repository.

    1. Re:CTM by krogoth · · Score: 2

      This helps a lot, but, as I said, the server is windows, and I don't think it's possible to get it to linux or FreeBSD. How hard would it be to get it running on windows? or am I missing some part of the documentation that obvious to every linux programmer who doesn't want to hear about windows?

      --

      They that quote Benjamin Franklin on liberty and safety deserve neither.