[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