[RFC] Workingstyle of different VCS systems

Andreas Pakulat apaku at gmx.de
Mon Apr 9 20:20:02 UTC 2007


On 09.04.07 14:34:06, Matthew Woehlke wrote:
> dukju ahn wrote:
> > 2007/4/9, Andreas Pakulat <apaku at gmx.de>:
> >> On 09.04.07 10:53:43, Matthew Woehlke wrote:
> >>> Somehow "integrate" got left off the list, that one is important.
> >> integrate? What was that again?
> > 
> > I guess that the integration he meant was creating new project
> > by importing/checkout to/from remote repository.
> 
> No, "integrate" (at least in perforce terminology) means to take changes 
> made to one file and apply them to another file (usually one with a 
> common ancestor). It is literally 'make a patch, munge the file names, 
> and apply it'. So for instances all those changes I've been making to 
> KATE in branches/3.5 need to be "integrated" and merged into trunk. :-)
> 
> integrate = Tell the VCS what you are doing (in some VCS's this also 
> adds metadata about the integration so you can see that such-and-such 
> version is the previous version plus integrations from somewhere else, 
> possibly with edits on top of that also). If we have branch, we need 
> integrate.
> 
> merge = Resolve conflicts, either from an update of something you were 
> editing, or from an integration (i.e. merge != integrate; merge is a 
> 100% client-side operation). If we have update and diff (of course we 
> do), we need merge.
> 
> Some VCS's may do the "merge" step implicitly during an integrate or update.

In SVN terms your merge is a manual operation which needs to be done
when there are conflicts. It is finalized be either svn resolved or svn
revert. Changes that don't create a conflict (i.e. lines that have not
been modified locally) are automatically integrated upon doing svn up.

As for integrate: There's no exact match in svn, svn merge comes close,
but thats merging 2 versions of a url into the working copy. You can use
the diff between two "branches" of svn (i.e. 2 different urls, like
branches/3.5 and trunk) or you can use 2 revisions of the file in the
same repository url (i.e. merge changes between 121423 and 342232 into
WC) or use differences between 2 other working copies.

> > IMHO the integration would go to basic interface among the
> > separate interfaces.
> 
> It should go wherever 'branch' is IMO, since if you can't branch, you 
> have nothing to integrate.

I agree. With svn I think the most used actions are integrating the diff
between 2 revisions of a repository url or between 2 repository urls. So
it fits perfectly into the planned (by me of course)
ISourceCodeRepository. However I probably call it merge as that fits
better with what it does, IMHO.

Andreas

-- 
Executive ability is prominent in your make-up.




More information about the KDevelop-devel mailing list