Prev: Hilbert Transformer Designed Using the Frequency-Response Masking Technique
Next: Question about Gaussian smoothing
From: Fred Marshall on 18 Mar 2010 15:45 Jerry Avins wrote: > http://www.joelonsoftware.com/items/2010/03/17.html is about version > control. If you use VC software, it might be worth reading. > > Jerry Well, I'm no expert in this although I've had to deal with it a bit. What I don't understand is how merging "changes", including skipping "changes", can be easy because there may be interdependencies between them. With versions presumably that can't be a problem unless there are branches. Fred
From: Erik de Castro Lopo on 18 Mar 2010 18:01 Fred Marshall wrote: > What I don't understand is how merging "changes", including skipping > "changes", can be easy because there may be interdependencies between > them. With versions presumably that can't be a problem unless there are > branches. Well I've been doing DVCS since about 2004 (GNU Arch) and I came to it because of the merging and cherry picking possibilities. For me merging a change happens when I have a stable main branch and a development branch where I'm working on something new. Then, during that new development I find something that needs fixing. I fix that problem and commit it as a single commit and then merge it from the the devel branch into the main. Of course this only works if you are in the habit of committing in small chunks and only commiting working code. I've been working this way for some time and at times, when I'm really in the flow, I will do 10 or more commits an hour for 3 hours at a stretch. HTH, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
From: Steve Pope on 18 Mar 2010 19:24 Vladimir Vassilevsky <nospam(a)nowhere.com> wrote: >Steve Pope wrote: [SVN and CVS] >> I have used both, I find both usable, and in basic usage >> they behave nearly identically. >> What do you see as the key problem in the underlying model? >1. They keep track of *files*, not *changes* to the files. >2. They have to keep everything in one dedicated place. > >If the large project is branched out, merging between the branches could >be a royal PITA in this model. As in the article suggested by Jerry, I >have to do the code with zillion of if() and #ifdef instead of branching. I guess I look at it from the other direction... it is good to have as few branches as possible, and so one should use whatever forms of polymorphism are available in one's programming languages (including scripting languages, build languages, etc.) to reduce the number of branches. Better support for branches is of course good, because sometimes you cannot avoid them. Steve
From: steveu on 18 Mar 2010 19:51 >Vladimir Vassilevsky <nospam(a)nowhere.com> wrote: > >>Steve Pope wrote: > >[SVN and CVS] > >>> I have used both, I find both usable, and in basic usage >>> they behave nearly identically. > >>> What do you see as the key problem in the underlying model? > >>1. They keep track of *files*, not *changes* to the files. >>2. They have to keep everything in one dedicated place. >> >>If the large project is branched out, merging between the branches could >>be a royal PITA in this model. As in the article suggested by Jerry, I >>have to do the code with zillion of if() and #ifdef instead of branching. > >I guess I look at it from the other direction... it is >good to have as few branches as possible, and so one should >use whatever forms of polymorphism are available in >one's programming languages (including scripting languages, >build languages, etc.) to reduce the number of branches. > >Better support for branches is of course good, because >sometimes you cannot avoid them. 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. Steve
From: Steve Pope on 18 Mar 2010 22:45
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. Steve |