[darcs-devel] [issue2669] cant add linux kernel sources

Ben Franksen bugs at darcs.net
Sat Dec 12 15:11:41 UTC 2020

Ben Franksen <ben.franksen at online.de> added the comment:

> Skipping './Documentation/features/core/cBPF-JIT' ... couldn't add parent directory './Documentation/features/core' to repository
> No files were added

This is due to the default boring file created for your repo when you
darcs init. You have to remove or comment out the lines containing
"core" and "tags" in _darcs/prefs/boring.

However, you will find that it is not a good idea to use "add, then
record" with so many files. It is far more efficient to use 'darcs
record -l'. But for the linux kernel even that doesn't work, unless you
have huge amounts of memory. On my laptop which has 16G a

  darcs record -lam XXX

runs out of memory pretty soon and then gets oom killed. The only method
I am aware of that works here is to break the initial patch into a
sequence of patches that individually aren't too large. One way to do
that is to first record all directories:

  find . -not -path */_darcs* -type d | xargs darcs add
  darcs record -am "initial add of all directories"

To record the files I created a small shell script; this is only needed
so we can assign each patch another name. The following one-liner does
the trick:

  darcs record -am "add file $1..." "$@" --skip-long-comment

Save as ../record_bunch and chmod+x, then do something like

  find . -type f | grep -vw _darcs | xargs -n 1000 ../record_bunch

Since I did it with a git clone I could use git ls-files instead of find:

  git ls-files | xargs -n 1000 ../record_bunch

This succeeds for me, though it takes some time (72 patches). You can
play with the bunch size, it seems that 2000 works, too, and is overall

Darcs bug tracker <bugs at darcs.net>

More information about the darcs-devel mailing list