[darcs-users] internal error & blank lines

David Roundy droundy at abridgegame.org
Mon Apr 26 11:37:27 UTC 2004


On Sat, Apr 24, 2004 at 08:47:29PM +0200, Tommy Pettersson wrote:
> I have trouble with darcs 0.9.19.
> 
> I have two repos, work and dist.  I work in work (whoo) and at times pull
> to dist to make a new release.  I only change the version number and tag
> in dist, so in work I always have "version" 0.0.  I also deleted some
> debugging code in dist way back, and it has caused some conflicts that I
> have resolved.  I never pull these changes back to work.

In general, it's more efficient to keep repos in sync than not to do so, so
I'd recommend pulling the version numbers at least back into work.  But you
shouldn't be seeing any weird problems... well, I guess you'd see a
conflict every time you modify "work" in or near the debugging code.

> Some days ago I noticed that two hunks in `darcs whatsnew' showed an
> extra blank line at the end of two files.  But the blank line was not in
> the files, and `darcs diff' did not show these lines.  So I recorded
> anyway.

Hmmmm.  Have you tried running darcs check --no-test on the work repo?

> Now, after many new records, when I finally pull to dist I
> get very strange conflicts at the end of these files:
> 
>   [beginning of file]
>   v v v v v v v
>   [50 lines of code]
>   *************
>   [50 identical lines of code]
>   [some new lines (the real change)]
>   ^ ^ ^ ^ ^ ^ ^
>   [extra blank line from nowhere]
>
> This is from pulling just one patch.  Pulling all patches
> (as I use to do) took "forever" so I aborted.
> 
> I then tried to pull from dist to work the patch that removed
> the debugging code, to get rid of the problem once and for all.
> 66 lines in patch, 1200 lines of code, Athlon 2500+, 1024 MB mem;
> terminated after one hour with:
> 
>   darcs: internal error: scavenge_mutable_list: strange object? 36351
>       Please report this as a bug to glasgow-haskell-bugs at haskell.org,
>       or http://www.sourceforge.net/projects/ghc/

Part of the problem here, I suspect, is that darcs is rather inefficient at
dealing with complicated conflicts, that is, when many patches are involved
in the conflict.  This is one of the reasons why I recommend keeping
repositories synchronized when possible--in this case pulling from dist to
work.  This has the effect of "burying" conflicts in the past, and makes it
a bit harder to create a situation where "complicated" conflicts happen.

The rest of the problem (i.e. the pull that succeeded) is a bit harder to
figure out.  Is there any chance that I could take a look at your repos?
I'm guessing that the problem is complicated enough that I won't be able to
diagnose it via email (unless the aforementioned darcs check fails, which
seems unlikely but worth checking).

> Both repos seem to work fine by their own, so I can just drop
> dist and `darcs get' a new since the version history is not
> important to me at this time.  However this should maybe be
> examined, but I need help on how to proceed.

Yeeah, for moving on with your work now, I'd recommend dropping dist,
getting a new "dist" and then in the future doing your best to keep the two
in sync by pulling the version changes etc back from dist into work.

But I'd appreciate it if you keep a copy of both repos in their current
state so we can track down what happened.
-- 
David Roundy
http://www.abridgegame.org




More information about the darcs-users mailing list