Улучшенное экранирование строки для hg

Что ты уже испробовал ? Установка / etc / sysconfig / clock и создание символической ссылки localtime должны решить эту проблему, например https://thornelabs.net/2013/04/25/rhel-6-manually-change-time-zone.html

1
06.05.2013, 02:13
2 ответа

Я использую:

hg addremove

для этого после удаления всего мусора из проверенного out каталог (или после того, как я добавил шаблоны в файл .hgignore ).
hg addremove -h сообщает вам:

Add all new files and remove all missing files from the repository.

Mercurial жалуется на * в имени файла. Это зарезервированный символ, который нельзя использовать в именах файлов в Windows. Однако само это сообщение отправляется на stderr и не должно влиять на работу каналов.

Альтернативным вариантом является использование:

hg remove --after

, который отмечает файлы, которые были удалены, но комментирует все файлы (те, которые все еще существуют, а также удаленные) и не реагирует на - quiet вариант.

2
29.04.2021, 00:49

Когда xargs видит \!\(\*-4.pdf на своем входе, он понимает !(*-4.pdf. Если вы используете xargs, вам нужно произвести ввод, соответствующий его синтаксису ввода, который не похож ни на что другое. Простое добавление обратной косой черты перед пробелами справляется только с пробелами.

В Linux, *BSD и OSX, xargs поддерживает опцию -0, которая указывает ему действовать с записями, разделенными нулевыми байтами без кавычек. hg status -0 выдает записи, разделенные нулевыми байтами. Осталось только адаптировать промежуточную обработку, чтобы справиться с нулями вместо новых строк в качестве разделителей.

С помощью GNU awk или любого другого awk, который поддерживает нулевые байты в качестве разделителей записей (я думаю, что BSD/OSX awk поддерживает), вы можете переключить ваше преобразование на awk.

hg status -0 |
awk -v RS='\0' -v ORS='\0' '/^!/ {print substr($0, 3)}' |
xargs -0 hg remove
1
29.04.2021, 00:49

Теги

Похожие вопросы