When will CVS be replaced by modern version control system?

Nils Philippsen nphilipp at redhat.com
Sun Nov 11 18:34:00 UTC 2007


On Sun, 2007-11-11 at 12:05 -0600, Les Mikesell wrote:
> Nils Philippsen wrote:
> >  
> >> This is a different operation than having every developer have his own 
> >> copy - or at least one in every location where development happens. The 
> >> ability to work disconnected was being touted as a feature,  But what 
> >> happens if a release needed to be done at the central build system and 
> >> the work some remote developer thinks is committed has not actually made 
> >> it there because it is still disconnected?
> > 
> > If you're disconnected, "make build" or a not yet existent "make commit"
> > fails. Of course you need a connection to get the build system to build
> > a package. But you can develop things locally (make srpm, make
> > i386, ..., test things) and e.g. easily revert changes that didn't work
> > out because you have a VCS available, even in a plane. The hurdle to
> > experiment with new things is much lower if you can easily get back to a
> > working state.
> > 
> > Being able to work disconnected (to a feasible extent) is just one
> > feature of a distributed VCS:
> 
> Which still doesn't address what happens in practice when the remote 
> repository containing changes that the central repo doing the official 
> build needs is still disconnected - or how anyone knows about it.

That's the same if you don't commit your changes to the CVS repo before
building. For all practical purposes regarding this discussion, you can
equate a CVS commit with a Hg push. Without committing to the build
repository, there is nothing from which to build. Nothing new here.

>  Or how 
> the much larger conflicts that would be likely with the ability to do 
> more work off line would be handled when they do reach the repo where 
> the build is done.

You would be notified when pushing that the push would create new
branches in the upstream repository. Unless you were forcing the push
(not a good idea obviously), you would merge locally, whereby you would
be the one to resolve the conflicts. The automatic invocation of meld
(or another 3way diff tool) helps tremendously.

If anything it would be worse with CVS: when working disconnectedly, you
would have to resolve the conflicts, only that you would have to do so
without the help of the VCS -- only you and your vim (or emacs, or ...)
-- and in one go. With a DVCS, you could merge your individual changes
step by step instead of the whole work at once which should make
resolving conflicts much easier.

Nils
-- 
     Nils Philippsen    /    Red Hat    /    nphilipp at redhat.com
"Those who would give up Essential Liberty to purchase a little Temporary
 Safety, deserve neither Liberty nor Safety."  --  B. Franklin, 1759
 PGP fingerprint:  C4A8 9474 5C4C ADE3 2B8F  656D 47D8 9B65 6951 3011




More information about the devel mailing list