При недавнем обновлении возникли проблемы с etckeeper: [sin@base ~]$ sudo apt-get dist-upgrade ... Продолжить? [Y/n] Получено: 1 http://download.etersoft.ru noarch/addon etercifs 4.6.0-alt1 [4261kB] Получено 4261kB за 4s (890kB/s). fatal: pathspec '"tcb/\321\201\320\270\320\275/shadow"' did not match any files error: etckeeper failed to commit changes in /etc using git E: Подпроцесс xargs| (if [ -x /usr/bin/etckeeper ]; then etckeeper pre-install; fi) завершился с ошибкой (1). E: Ошибка выполнения скрипта xargs| (if [ -x /usr/bin/etckeeper ]; then etckeeper pre-install; fi) [sin@base ~]$ sudo etckeeper pre-install fatal: pathspec '"tcb/\321\201\320\270\320\275/shadow"' did not match any files error: etckeeper failed to commit changes in /etc using git [sin@base etc]$ sudo etckeeper commit 'saving uncommitted changes in /etc prior to apt run' fatal: pathspec '"tcb/\321\201\320\270\320\275/shadow"' did not match any files После указания параметра -x для shabang в /etc/etckeeper/commit.d/40git-rm: [sin@base etc]$ sudo etckeeper commit 'saving uncommitted changes in /etc prior to apt run' + set -e + IFS=' ' + '[' git = git ']' + '[' -d .git ']' ++ git ls-files --deleted + for file in '$(git ls-files --deleted)' + '[' '!' -d '"tcb/\321\201\320\270\320\275/shadow"' ']' ++ dirname '"tcb/\321\201\320\270\320\275/shadow"' + dir='"tcb/\321\201\320\270\320\275' + flagfile= + '[' -d '"tcb/\321\201\320\270\320\275' ']' + git rm --quiet '"tcb/\321\201\320\270\320\275/shadow"' fatal: pathspec '"tcb/\321\201\320\270\320\275/shadow"' did not match any files Получаем, что проблема таки в Git'е: $ sudo git ls-files --deleted|grep tcb "tcb/\321\201\320\270\320\275/shadow" "tcb/\321\201\320\270\320\275/shadow-" "tcb/\321\201\320\270\320\275/shadow.lock" Чтобы было понятней: $ echo 'obase=16; ibase=8; 321;201;320;270;320;275' |bc D1 81 D0 B8 D0 BD $ echo -n син |hexdump 0000000 81d1 b8d0 bdd0 Далее, вот такой подход позволяет обойти проблему: [sin@base etc]$ sudo git checkout tcb/син/shadow [sin@base etc]$ sudo git checkout tcb/син/shadow- [sin@base etc]$ sudo git checkout tcb/син/shadow.lock После этого $ sudo etckeeper commit 'saving uncommitted changes in /etc prior to apt run' отрабатывает нормально. Версии git и etckeeper: [sin@base etc]$ rpm -qi git-core Name : git-core Relocations: (not relocatable) Version : 1.7.3.4 Vendor: ALT Linux Team Release : alt1 Build Date: Чтв 16 Дек 2010 14:14:55 Install date: Пнд 27 Дек 2010 21:21:49 Build Host: ldv-sisyphus.hasher.altlinux.org ... [sin@base etc]$ rpm -qi etckeeper Name : etckeeper Relocations: (not relocatable) Version : 0.51 Vendor: ALT Linux Team Release : alt1 Build Date: Пнд 27 Дек 2010 03:14:45 Install date: Чтв 06 Янв 2011 18:18:28 Build Host: evg-sisyphus.hasher.altlinux.org ... [sin@base etc]$ rpm -q git-core git-core-1.7.3.4-alt1 [sin@base etc]$ rpm -q etckeeper etckeeper-0.51-alt1
In git commands output, all unprintable characters in paths are quoted.
Воспроизводится. Может быть просто git config core.quotepath false ? С ним коммит проходит.
etckeeper-0.51-alt2 -> sisyphus: * Fri Jan 14 2011 Terechkov Evgenii <evg@altlinux> 0.51-alt2 - Update from upstream (ALT#24903)