[RFC] Workingstyle of different VCS systems

Andreas Pakulat apaku at gmx.de
Mon Apr 9 23:08:42 UTC 2007


On 09.04.07 17:42:46, Matthew Woehlke wrote:
> (I wish gmane would keep up. Sigh. I see your reply, but not my message.)
> 
> Andreas Pakulat wrote:
> > On 09.04.07 14:34:06, Matthew Woehlke wrote:
> Maybe it would be better to call this "resolve" and call "integrate" 
> "merge".

Agreed.

> I was using "merge" because 'svn resolved' does not do this, it 
> would be the equivalent to the 'use working copy' action of this.

Yeap, I think we can use KDiff3 for our GUI for those merge-stuff. Or
write our own version of it, because we need stuff like "working copy",
"repository" and "target" instead of temporary file names.

> > 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.
> 
> Isn't that what I said? If I understand correctly, 'svn merge' generates 
> a diff between S1 and S2 (whatever those are) and then applies that diff 
> to "a url into the working copy". This seems to be *exactly* what 
> perforce does... except that perforce does not do the merge step 
> implicitly as svn apparently does. So whereas svn /might/ leave /some/ 
> files in a conflict state (or does it force you to resolve on the 
> spot?), perforce /always/ leaves /all/ files in a conflict state.

svn only has conflicts where the same files were edited in the working
copy and the diff. There are no other types of conflicts that need to be
solved. So yes, svn does the merging automatically.

> The good news is that client specs aren't used here, so the prototype 
> would be (omitting 'const' and '&'):
> 
> integrate(KVcsUrl src, KVcsUrl dest, KVcsGlobalRevision from_ver,
>            KVcsGlobalRevision to_ver = KVcsGlobalRevision::latest);
> 
> The question here might be if doing an integrate() with perforce has to 
> force an interactive merge(), so that the VCS interface functions 
> consistently?

I think that makes sense, yes. Or are there cases where you do the
integrate but not do a p4merge right afterwards?

Andreas

-- 
It is so very hard to be an
on-your-own-take-care-of-yourself-because-there-is-no-one-else-to-do-it-for-you
grown-up.




More information about the KDevelop-devel mailing list