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#00001

version-control.codeville.devel

Subject: Re: [cdv-devel] tree merging

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...
>
> What does codeville do in this case? Or perhaps I should ask what
> codeville _should_ do in this case? :-)

I'm not sure off the top of my head. I *think* that one comes up as an
ambiguous clean merge, which is presented to the user the same as any
other conflict. We've waffled a bit on this one, and the way it currently
works is more based on a desire to not add new bugs than ideal behavior.
The really interesting case is the following one:

A
/ \
/ \
/ \
P W
|\ /|
| \ / |
| \ / |
Q X Y
| / \ |
| / \ |
|/ \|
R Z
\ /
\ /
\ /
?

A is foo, P and W are bar, and Q and Y are foo. R and Z should both clean
merge to bar, because there's a do/undo on one side and a do on the other,
but currently they don't. Further, if R and Z are both bar then merging
them together should result in foo but with an ancestor conflict, which is
basically a 'this might be garbled' warning with no alternate version.

-Bram


<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