logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: prohibited path component '.': msg#00052

Subject: Re: prohibited path component '.'
Robert Bihlmeyer wrote:
After listing unknowns "montone ls unknown" always does this for me:

monotone: vocab.cc:151: usage constraint 'N(!(*i == "." || *i == ".."))' 
violated
monotone: misuse: prohibited path component '.' in './mtg.sql'

Hmm, the cause seems to be that walk_tree_recursive() doesn't ignore
"." (nor "..")!

that's curious. I can't reproduce this. I am guessing that perhaps you have previously specified --db=./mtg.sql on the command line, that this option has been written to MT/options for reuse, and that monotone is complaining about "./" in the pathname, not in the directory walker.

that's probably a valid UI nit, though; when the (paranoid) local path object gets constructed with "./" in it, it throws. afaik this is fixed when building against boost 1.31.0, where I call the new "normalize()" function on the path before checking it. I'll file a bug to try to fix that on 1.30.2 as well. in the meantime, try with --db=mtg.sql. if that doesn't fix it, perhaps you can send me a --verbose log showing the problem?

in any case, the reason walk_tree_recustive() doesn't ignore "." or ".." is that they are not returned from a boost directory iterator. see:

http://www.boost.org/libs/filesystem/doc/operations.htm#directory_iterator

for the specification.

-graydon



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>