[darcs-users] "Done removing from pending:" then a VERY long wait.

Owen Stephens darcs at owenstephens.co.uk
Tue Jul 17 09:50:28 UTC 2012


On 17 July 2012 01:41, James Sleeman <darcs at gogo.co.nz> wrote:
> No, mostly a large quantity (4000 odd) of small files, with total combined
> size about 70 meg, most of the files are source code (html, php, css,
> javascript, sql...) with some binaries as well (images, flash...).
>
> In order to not feed darcs with a 70 meg patch with thousands of files,
I'm
> splitting it (just roughly, by sub-directories of the project which
roughly
> equate to "modules" not that it's important) into separate patches which
are
> from say 100k to somewhere under 10m in size.

When you say splitting, are you doing:

  for dir in dirs
  do
      darcs add -r dir/
      darcs rec -am "Add $dir module"
  done

or something more like:

  darcs add -r dirs
  darcs rec *Selectively pick changes, interactively*

?

> Hmm.  Ok.  Lookng in _darcs/patches (of problem repo) there are a couple
of
> pending files
>
> -rw-rw-r-- 1 boffin boffin 12862703 Jul 17 12:10 pending
> -rw-rw-r-- 1 boffin boffin 14707106 Jul 17 12:10 pending.tentative
>
> So I did a raw copy of that repo ( cp -rp repo testrepo) and removed them
(rm
> testrepo/_darcs/patches/pending*), and then tried the record, and... it
was
> fast.
>
> So I guess your theory is on the right track there.

Cool, I'm sure I've seen this before, with the resolution being "nuke
pending
and try again", which clearly sucks. I'm struggling to find where I remember
that from...

> Looking at the contents of pending, I perhaps looks like the result of
doing
> darcs add on a larger set of the files but didn't immediately record,
which I
> may have done at some stage before starting down this road.
>
> So, perhaps I did darcs add on some large number of files, and then
wanted to
> record some subset of those files (and possibly add some more), and that
this
> has forced darcs to do a ton of work to try and commute pending?  If
that's
> the case, some sort of a warning would be nice that if it's taking forever
> how they might be able to "fix" it (by nuking pending and recording
smaller
> patches?).

Can you get darcs to go into the hang from the current repo state (i.e.
without
nuking pending)? If so, how are you recording, interactively or with -a?
Then,
it'd be good to know the differences between what you've added (i.e. in
pending) and what you're recording.

Thought for anyone else following: this looks likely to be a binary patch
being
commuted with pending, but why? handlePendForAdd in
s/D/Repository/Internal.hs
seems to be called, but I can't quite work out what it's supposed to be
doing,
any ideas what it's for?

Cheers,
Owen.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20120717/94852c24/attachment-0001.html>


More information about the darcs-users mailing list