|
|
Choosing A Webhost: |
Re: [cdv-devel] tree merging: msg#00002version-control.codeville.devel
On Tue, Aug 02, 2005 at 06:04:35AM -0700, Nathaniel Smith wrote: > I'm trying to understand how cdv-merge applies to tree rearrangement > merging. > > Say we have a standard criss-cross merge case, where some file's name > is the conflict: > A > / \ > P Y > |\ /| > | X | > |/ \| > Q Z > The file is named "foo" in A, "bar" in P and Q, and "baz" in Y and Z. > We, of course, want to merge Q and Z. > > Q and Z have different values, so we get a first-order conflict, and > look to see if we can resolve it. Q's last-changed rev is P, and P is > an ancestor of Z, so Q wants to lose; likewise, Z's last-changed rev > is Y, and Y is an ancestor of Q, so Z wants to lose -- basically, this > is a classic ambiguous clean merge. Unlike ambig cleans found in text > merging, though, it doesn't seem like we've been sloppy about identity > -- there's a single atomic-valued cell being merged here, no questions > of identity at all... Consider how this maps to precise codeville merge. "foo", "bar" and "baz" are all unique lines. The last changed rev represents when the line was born or revived (it's a list since, unlike normal merging, we support convergence here). Also unlike normal merging, our conflict cases are fundamentally different. Our constraint is one and only line must exist at each point, there are no contextual issues as with contents. Looking at the criss-cross merge case, thinking of it as an ambiguous merge isn't really right. What's going on is that each side is trying to delete the line from the other side, leaving us with no lines, which is a conflict. It's definitely different than the more common conflict case of having 2 lines, but just as valid. > What does codeville do in this case? Or perhaps I should ask what > codeville _should_ do in this case? :-) It generates a conflict, which is correct. > How do you think about these sorts of issues, and are there other > similar ones you know of? A more interesting case is if the file were named "boo" in Z. It would now cleanly win in a merge with Q. I believe this to be reasonable behaviour, but it's an arguable point. Ross
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: [cdv-devel] tree merging, Bram Cohen |
|---|---|
| Next by Date: | Re: [cdv-devel] tree merging, Bram Cohen |
| Previous by Thread: | Re: [cdv-devel] tree merging, Ross Cohen |
| Next by Thread: | Re: [cdv-devel] tree merging, Bram Cohen |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |