Date: Tue, 14 May 1996 14:09:09 -0600 From: Nate Williams <nate@sri.MT.net> To: Tony Kimball <alk@Think.COM> Cc: nate@sri.MT.net, questions@freebsd.org Subject: Re: why so many ways to stay in sync? Message-ID: <199605142009.OAA16821@rocky.sri.MT.net> In-Reply-To: <199605141951.OAA26807@compound.Think.COM> References: <199605141738.LAA16361@rocky.sri.MT.net> <199605141951.OAA26807@compound.Think.COM>
next in thread | previous in thread | raw e-mail | index | archive | help
> Yes, these are clearly failures of CTM. Surmountable, however. > Has anyone given thought to how these problems should be addressed? Obviously you are. :) > RCVS is simply too slow, and too often I'm either > off the net or my link is so slow as to be unusable. > > I've been doing heavy work on a team project about the same size as > FreeBSD using RCVS for some time, and I'm *very* happy with it, at > 28.8k. Is there something better? Sup'ing the repository and using local CVS is 'better' in that it's much faster. > I would have expected sup'ing a large repository to run much more > *slowly* than an RCVS update, since it passes whole files. Is this a > hacked sup, passing compressed deltas? The thing is that I can do my updates once/day in the middle of the night. If I'm out of date < 24 hours I'm okay, but I have access to *ALL* of the CVS information locally now. > RCVS simply does work for me > when I'm on the airplane. :) > > Why is that? Because the remote repository is on the ground, and the information I need is with it, such as the log history, and the ability to 'diff' my current implementation against the 'reference' version. I like to see what changes I've made so I can 'checking' different reference versions of my code. I *could* use RCS on my box to do that, but I prefer to use CVS. > And, CTM won't work either since I often use CVS when on the airplane to > keep track of my source. So, when I come back from my trip, I dump out > my log files, re-sup my repository and magically I can create a patch > files against the 'stock' sources and what I've changed, plus I have my > kept logfiles so I can create a log message for my patch. > > I don't see the problem with ctm in this circumstance. Please > explain. For example, could you not update your repository using ctm > instead of sup, when you return, and create your patch files in > *precisely* the same manner? I've modified the CVS repository, so CTM will not update it. It can't patch a file unless the file matches the MD5 cksum, and it won't match since it's got local modifications. Here's an example: # sup -v CVS-tree ... Getting $CVSROOT/foo/a,v Getting $CVSROOT/foo/b,v Getting $CVSROOT/foo/c,v # su - nate nate % cd $HOME/work nate % cvs co foo cvs checkout: Updating foo U foo/a U foo/b U foo/c nate % cvs log [ Information which tells me where the project is 'at' ] nate % vi a [ History of compile/edit/test loops until a working version exists ] nate % cvs diff -bu | more [ Ahh, this works, but has lots of debugging garbage in it ] nate % vi b [ Removal of un-necessary code, testing, etc.. ] nate % cvs diff -bu | more [ Verification that this code works and a quick code review to make sure it does what I want. ] nate % cvs commit [ Commit log based on previous diff -bu ] nate % vi c [ Add new different feature and/or fix old bugs. Coding cycle deleted, which includes looking at related code/logs in other parts of the system, cvs diffs, etc.. ] nate % cvs commit [ New feature log ] ... OK, I'm happy with the code as it stands. However, the actual log of the code is for *my* use, and my employer doesn't even use version control, or he is more interested in the 'final' solution. nate % cvs log > LOGFILE nate % exit # sup -v CVS-tree [ Re-writes my locally modified files with the original files ] # su - nate nate % cd $HOME/work/foo nate % cvs update [ Make sure no new code got put into the tree, and sync. up the revision #'s, modify my code to reflect new code put in since last SUP if necessary ] nate % cvs diff -bu | more [ Final visual code review ] nate % cvs diff -c > commit.diff nate % scp commit.diff remotehost: nate % ssh remotehost Do whatever necessary to commit the code into the remote tree. In a nutshell that's how I do development for FreeBSD as well as for projects at work. > I'm still pining for a version of CVS that incorporates automatic > mirrored repositories, which would be the *best* solution for me. > > I am confused. CTM does this, if you use cvs-cur. It maintains a > mirror repository on your local system. I think you are confusing using CTM for the 'source' vs. using CTM for the actual 'repository'. I'm supping the entire CVS tree. Then, I actuall commit code and do work against that local tree for my own personal use which gets over-written when I re-sup the CVS repository. Also, the above CTM scheme (or sup scheme for that matter) isn't integrated into CVS like it could be. This could be done automatically so the local developer would only have to worry about being net-connected to do commits and the occasional updates *automatically*, where the current CTM/sup are separate. Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605142009.OAA16821>