On Fri, 2007-08-17 at 12:44 -0700, Lan Barnes wrote:
> On Fri, August 17, 2007 12:30 pm, Stewart Stremler wrote:
> > begin  quoting Lan Barnes as of Fri, Aug 17, 2007 at 07:34:43AM -0700:
> >>
> >> On Thu, August 16, 2007 9:30 pm, Stewart Stremler wrote:
> >> > begin  quoting Andrew Lentvorski as of Thu, Aug 16, 2007 at 06:25:20PM
> >> >> Stewart Stremler wrote:
> >> >> >Get a good three-way merge program.
> >> >>
> >> >> Or use git, mercurial, darcs, perforce, etc. rather than subversion.
> >> >
> >> > Merging still sucks.
> >>
> >> Merging can be minimised, suck-wise, by having developers understand the
> >> tofu rule, keep branches short, only branch when necessary, etc.
> >
> > Well-trained developers and limited tasks can get rid of a lot of
> > suckages; but even then, circumstances can make any sort of merging
> > painful.
> >
> > If you give me well-trained developers that can be trusted to understand
> > some concept, and the administrative support needed to keep branches
> > short / branch when necessary...
> >
> > I'd probably do away with branches altogether.
> >
> > I'd train the developers in refactoring first. Small changes that don't
> > change observable behavior can be made to the common tree. No need to
> > branch the source to rewrite a module... rewrite it in place, using
> > refactoring techniques.
> >
> > Next I'd use the administrative support to at least acquire or configure
> > a side-by-side two-way merge system (and train the developers on it), or
> > use a version control system that provides a three-way-merge tool.
> >
> >
> 
> I completely agree with you. Philosophically, I advocate developing on the
> trunk and branching ONLY when two code lines MUST be kept separate, at
> least for a time.
> 
> That said, one must branch sometimes. And the lack of true branching is
> part of svn's problem. Copies are not branches (nor are they tags/labels
> -- they are at best snapshots).
> 

Which is one thing I didn't like about being told I had to start using
SVN instead of Perforce. Last week I just finished branching some code
for a pair of test utilities. The two utilities are based upon the same
code base, but I had two different projects and two different depots
(repositories) in Perforce. When I found a bug in one, I had to checkout
the other, copy the code over, and then check it in. Not to mention go
through another set of testing. I was doing everything twice.

So, I took the most up-to-date code from ProjA and branched it to ProjB.
I then checked out ProjB, and replaced it with the real ProjB code. I
made my changes to ProjB, fixing bugs and adding the required features,
all of which will also apply to ProjA. Now, I can use the Integrate
command to integrate ProjB with ProjA, and Perforce will help me apply
the changes to the original code.

With SVN, I can't do that. I was also using labels and jobs in Perforce,
which I will no longer be able to do.

PGA


-- 
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to