Prev: Hilbert Transformer Designed Using the Frequency-Response Masking Technique
Next: Question about Gaussian smoothing
From: steveu on 18 Mar 2010 23:24 >steveu <steveu(a)n_o_s_p_a_m.coppice.org> wrote: > >>While endless branching is hard to see as a good thing, the "few branches >>as possible" mentality mostly comes about *because* you have used CVS. It >>has moulded your way of thinking, because it makes merging such a PITA. > >If you're going to merge a branch, why branch off in the first >place? > >I have a little trouble conceiving of cases where branching >ever makes sense, other than political/legal situations >(i.e. you need to form a code base that is clean of certain IP, >for example). And then you're probably not going to merge >later on, other than again from some political event (i.e. >a command decision by a project manager). > >Polymorphism is there; use it. So you never encounter people who want to go off and experiment? Maybe you don't work on big projects. People are actually afraid to experiment to any significant extent in a project controlled by CVS. They know if the experiment works out, they will have to practically re-implement the idea from scratch to ever be able to merge it with the main line code - unless development of that code has been very stagnant during the experimental period. Compare that to something like the development of the Linux kernel with GIT. Lots of people, many of whom hardly ever communicate, go off and experiment all the time. If their experiment works out well they need to get others interested. It usually proves straightforward to integrate their stuff, so some people may try it with their own current code. If a consensus builds that the experimental code is good stuff, final integration is also easy. Easy integration has a profound and beneficial effect on working practices in large diverse projects. Steve
From: Steve Pope on 18 Mar 2010 23:45 steveu <steveu(a)n_o_s_p_a_m.coppice.org> wrote: > Attribution Lost wrote >>steveu <steveu(a)n_o_s_p_a_m.coppice.org> wrote: >>>While endless branching is hard to see as a good thing, the "few >branches >>>as possible" mentality mostly comes about *because* you have used CVS. >It >>>has moulded your way of thinking, because it makes merging such a PITA. >> >>If you're going to merge a branch, why branch off in the first >>place? >> >>I have a little trouble conceiving of cases where branching >>ever makes sense, other than political/legal situations >>(i.e. you need to form a code base that is clean of certain IP, >>for example). And then you're probably not going to merge >>later on, other than again from some political event (i.e. >>a command decision by a project manager). >> >>Polymorphism is there; use it. > >So you never encounter people who want to go off and experiment? Maybe you >don't work on big projects. >People are actually afraid to experiment to any significant extent in a >project controlled by CVS. They know if the experiment works out, they will >have to practically re-implement the idea from scratch to ever be able to >merge it with the main line code - unless development of that code has been >very stagnant during the experimental period. If the experiment is larger than can be conducted in a sandbox, then you start checking it in. Using polymorphism, without breaking anything, making sure the regressions still pass. It's not a matter of not working on large projects. Very large projects use lots of polymorphism and are targeted at multiple applications, including experiments, without branching. Where you are tempted to form a branch is when the main project is broken, it does not have its own tests, so you can't know you've broken it further when you do a checkin. That is when you want to just take the code you need and form a new branch. Basically if starting from a failed situation, you'd like your own branch to distances yourself from the failure. But to say you need branches just to do large projects, I'm pretty unconvinced. > Compare that to something >like the development of the Linux kernel with GIT. Lots of people, many of >whom hardly ever communicate, go off and experiment all the time. If their >experiment works out well they need to get others interested. It usually >proves straightforward to integrate their stuff, so some people may try it >with their own current code. If a consensus builds that the experimental >code is good stuff, final integration is also easy. >Easy integration has a profound and beneficial effect on working practices >in large diverse projects. Still doesn't say why these experiments could not have been checked into a main branch. Do people not know how to write code that doesn't break everything? Do they not know how to clean up the truly dead code? I'm just not convinced there's a problem here. Steve
From: Steve Pope on 18 Mar 2010 23:47 steveu <steveu(a)n_o_s_p_a_m.coppice.org> wrote: >People are actually afraid to experiment to any significant extent in a >project controlled by CVS. They know if the experiment works out, they will >have to practically re-implement the idea from scratch to ever be able to >merge it with the main line code - unless development of that code has been >very stagnant during the experimental period. Compare that to something >like the development of the Linux kernel with GIT. My recollection is they were gushing over how good SVN was until it required a license fee, then all of a sudden GIT was so much better. But I'm being cynical perhaps. Steve
From: steveu on 19 Mar 2010 01:43 >steveu <steveu(a)n_o_s_p_a_m.coppice.org> wrote: > >>People are actually afraid to experiment to any significant extent in a >>project controlled by CVS. They know if the experiment works out, they will >>have to practically re-implement the idea from scratch to ever be able to >>merge it with the main line code - unless development of that code has been >>very stagnant during the experimental period. Compare that to something >>like the development of the Linux kernel with GIT. > >My recollection is they were gushing over how good SVN was >until it required a license fee, then all of a sudden GIT >was so much better. > >But I'm being cynical perhaps. SVN has always been free and the The Linux kernel people never used it. They always said it was a waste of time. They did use and love BitKeeper, which is commercial. When the relationship for using that went sour, Linus Torvalds implemented GIT, which is closely modeled on BitKeeper's functionality. Steve
From: Michael Plante on 19 Mar 2010 04:46
Steveu wrote: >>steveu <steveu(a)n_o_s_p_a_m.coppice.org> wrote: >> >>>People are actually afraid to experiment to any significant extent in a >>>project controlled by CVS. They know if the experiment works out, they >will >>>have to practically re-implement the idea from scratch to ever be able >to >>>merge it with the main line code - unless development of that code has >been >>>very stagnant during the experimental period. Compare that to something >>>like the development of the Linux kernel with GIT. >> >>My recollection is they were gushing over how good SVN was >>until it required a license fee, then all of a sudden GIT >>was so much better. >> >>But I'm being cynical perhaps. > >SVN has always been free Yes. >and the The Linux kernel people never used it. Not from what I'm reading. The people who were willing to used bitkeeper under an agreement with the company, and others had some ability to interoperate using svn and cvs. Not to say they liked svn/cvs necessarily, but some apparently used it. >They always said it was a waste of time. Didn't see that, but not surprised. Bitkeeper and Git are distributed, svn/cvs are not. And Linus claimed to have been forced to use CVS for 7 (?) years on another project and "hates it with a passion," claiming emailing tarballs and patches are better than CVS. >They did use and love BitKeeper, >which is commercial. And some complained about the license, but even RMS didn't deny the technical superiority of BitKeeper here: http://www.linux.com/archive/articles/44465 "[...]but those in our community who value technical advantage above freedom and community were susceptible to it." >When the relationship for using that went sour, Linus >Torvalds implemented GIT, which is closely modeled on BitKeeper's >functionality. |