[darcs-users] Error on systems with case insensitive filesystems

Dan Pascu dan at ag-projects.com
Mon Oct 26 11:29:45 UTC 2009


On 17 Oct 2009, at 05:25, Jason Dagit wrote:
> On Fri, Oct 16, 2009 at 6:31 PM, Dan Pascu <dan at ag-projects.com>  
> wrote:
>
> Is it normal to see this error, when running a darcs 2.2.0 binary on  
> a OSX system (case insensitive filesystem) and with a hashed  
> repository?
>
> $ darcs wh -sl
>
> darcs failed:  Text.Regex.Posix.String died: (ReturnCode 14,"empty  
> (sub)expression")
>
>
> This is speculation that requires investigation, but I bet you're  
> experiencing some sort of problem with regular expressions from  
> either the boring file or the binary file.

After some investigation it turned out to be something from the boring  
file indeed. See below.

>
> Have you set either of those files to reside outside of _darcs?

Yes. The boring file is set to .boring at the project top level and is  
put under version control. The binaries file was not set, so it uses  
_darcs/prefs/binaries.

> If so, is it possible your other steps (such as the svn checkout) is  
> writing over those files with regular expressions that darcs doesn't  
> like?  Really, it would be an expression that regex-posix doesn't  
> like.

No. As I said, the boring file is at top level, while the svn checkout  
is done 2 directory levels below under build/temp.macosx-10.5-i386-2.5  
(.boring and build/ are at the same level as _darcs). So whatever is  
checked out from svn and built, cannot affect any of the toplevel files.

> If you haven't changed the default boring and binaries files to  
> reside outside of _darcs, does anything change them in _darcs

No.

>
> Can you do a diff between a repo where you get the error and an repo  
> where you do not?  I'm thinking of the unix command diff, like:
> diff -u good/_darcs/prefs/binaries bad/_darcs/prefs/binaries

The diff showed that there was a generated file that was present even  
after running clean (a leftover it appears). This file was sipsimple/ 
core.c and as soon as it was removed the problem went away. Now I can  
reproduce the problem by simply getting a fresh repository, then  
running:

touch sisimple/core.c
darcs wh -sl


> Also, it's possible that the regexes to match against .svn  
> directories is bad.  I wonder how often they get tested.  Those  
> regexes would be in the boring file, by the way.

Given that the core.c seem to give me troubles, I do not think it's  
the .svn regexp, but the regexp for corefiles. My .boring file looks  
like this:

# Boring file regexps:
(^|/)_darcs($|/)
(^|/)CVS($|/)
(^|/)\.svn($|/)
(^|/)\.DS_Store$
(^|/)Thumbs\.db$
\#
~$
(^|/)core(\.[0-9]+|)$
\.(pyc|pyo|o|so|orig|bak|BAK|prof|wpu|cvsignore)$
(^|/)build($|/)
(^|/)dist($|/)
^MANIFEST$

Does anyone spot anything wrong with then corefile regexp? As I read  
it it should never match core.c, only core or core.NNNN with NNNN  
being digits.

--
Dan





More information about the darcs-users mailing list