Для легковесной реализации gear-cronbuild в hasher chroot надо добавить в hasher-priv дополнительные команды chown1, chown2, вызывающие в chroot-е chown user1 и chown user2 соответственно, а также понимающие опцию -R (для chown). Метод, о котором мы говорили на конференции с git clone -s не работает, так как он просто пишет ссылку за пределы chroot: git clone -s ../repocop-report-prometeus.git re.git cat .git/objects/info/alternates /home/igor/src/repo/test/../repocop-report-prometeus.git/.git/objects
Обычный chown -R от рута -- это неустранимо небезопасная операция, давайте лучше обойдёмся без неё и попробуем использовать git init --shared.
ок, попробую.
заодно спрошу вопрос по hasher. допустим, я запускаю hasher командой hsh --initroot-only "$@" есть ли простой способ узнать, где будет workdir? чтобы не парсить "$@" и ~/.hasher/config ?
(In reply to comment #3) > заодно спрошу вопрос по hasher. > допустим, я запускаю hasher командой > hsh --initroot-only "$@" > есть ли простой способ узнать, где будет workdir? > чтобы не парсить "$@" и ~/.hasher/config ? Разве что распарсить verbose output. А зачем это может быть нужно?
(In reply to comment #0) > Метод, о котором мы говорили на конференции с git clone -s не работает, Для достижения той цели, о которой шла речь, должно быть достаточно git init --shared с последующим git fetch.
(В ответ на комментарий №4) > > есть ли простой способ узнать, где будет workdir? > > чтобы не парсить "$@" и ~/.hasher/config ? > Разве что распарсить verbose output. А зачем это может быть нужно? Скрипт хочет скопировать .git (или зайти чтобы сделать git init/git fetch) в $workdir/chroot/.in. но $workdir не известно. Его нужно сначала как-то вычислить. Если я к hasher хак прикручу, --print-env, например, нормально будет?