|
From: | Christian Ohler |
Subject: | Re: [Monotone-devel] Error running `mtn list ignored` in monotone 0.32 on windows XP |
Date: | Fri, 02 Feb 2007 21:53:44 +0100 |
Thomas Keller, 2007-02-02:
Daniel Atallah schrieb:$ mtn list ignored mtn: fatal: std::logic_error: paths.cc:308: invariant 'I(is_valid_internal(data()))' violatedHas this already been fixed for 0.33?
It's still there. I looked into it briefly about a week ago; fixing it turned out to require more familiarity with the code than I have. Here's what I recall.
It's the same issue as the xfail test in ls_unknown_in_subdir.It can be worked around by calling ls unknown/ls missing from the workspace root with a restriction argument instead of calling it from a subdirectory.
The bug was introduced by the addition of a call to normalize_external_path in bookkeeping_path::is_bookkeeping_path in 460c36c1128986f68bcf5e9402d2b5abbff19fd5. However, removing that call breaks other tests.
When walk_tree_recursive calls bookkeeping_path::is_bookkeeping_path to avoid descending into _MTN, the normalization in bookkeeping_path::is_bookkeeping_path prepends the current working directory to the path; the resulting (bogus) path no longer starts with _MTN and is therefore not detected as a bookkeeping path.
After failing to detect that it's in fact looking at _MTN, the code ultimately aborts with the above assertion.
I hope this helps. Christian Ohler.
[Prev in Thread] | Current Thread | [Next in Thread] |