[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] fatal: std::logic_error: invar

From: Markus Schiltknecht
Subject: Re: [Monotone-devel] fatal: std::logic_error: invariant 'I(left_name == right_name)' violated
Date: Thu, 27 Mar 2008 22:50:23 +0100
User-agent: Mozilla-Thunderbird (X11/20080109)

Hello Marcin,

Marcin W. DÄ…browski wrote:
Today I was playing with monotone 0.39 a bit, and by a mistake
I've triggered 'something' - maybe a bug, at least monotone says so.

Hm.. (20 KiB)

Wow, thanks a lot! If only all bug reports were so nice...

I've distilled that into a simplified test case for monotone's test
suite, see rev. da31a68b..  The following crapscii-art diagram shows
about the minimal setting to trigger the bug:

           base_rev              o  contains directory "foo"
          /        \
         /          \
    adds file     adds file      o  conflicting file additions
    "foo/x"         "foo/x"         on both sides
    and               |
    renames           |          o  renaming parent directory
    dir "foo"         |             on one side
    to "bar"          |
        \            /
         \          /
          ' !BOOM! '             o  merge should fail due to
                                    duplicate names

(Yes, I've checked all existing tests/*merge* and some existing bug
reports on merge issues, but didn't find any prior art for that bug.)

The question is - why monotone won't say there's a conflict?

Good question. Normally, i.e. with out the renaming of the parent
directory, the left_name would of course equal the right_name, both were
"foo/x". Due to the renaming, it's more like "bar/x" and "foo/x", but
monotone still knows "bar" and "foo" are the same directory, historically.

Maybe, it's just that invariant which is plain wrong. I'll check the
source code and dig into the issue now.

Again, thank you very much for that *perfect* bug report. If monotone
would nominate a user of the month, you'd get that title immediately :-)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]