Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

Re: [cdv-devel] tree merging: msg#00002

version-control.codeville.devel

Subject: Re: [cdv-devel] tree merging

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>
Google Custom Search

Recently Viewed:
qplus.devel/200...    network.jabber....    debian.qa-packa...    encryption.gpg....    python.dabo.dev...    uclinux.devel/2...    science.mathema...    recreation.pesc...    kernel.ck/2004-...    mozilla.devel.e...    tex.latex.prosp...    ietf.multi6/200...    bbc.cvs/2002-11...    xfree86.newbie/...    jakarta.taglibs...    altlinux.hardwa...    comedi/2002-05/...    horde.bugs/2004...    games.diplomacy...    finance.e-gold....    web.dom.test-su...    lang.ruby.rails...    os.netbsd.devel...    video.gstreamer...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive 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

Navigation