#bash #mercurial #revision #hg-log
#bash #mercurial #ревизия #hg-log
Вопрос:
В bash я использую диапазон дат для ограничения количества ревизий, отображаемых следующим образом:
hg log -d "yyyy-mm-dd to yyyy-mm-dd"
Я хотел бы вывести, чтобы отобразить самую последнюю ревизию внизу. В настоящее время он начинается с самого последнего вверху и работает намного ниже.
Заранее спасибо!
Я пытаюсь внедрить hg log -r "(date("$startdate to $enddate"))"
решение в скрипт bash, как показано ниже:
read -p "Specify start of date range(yyyy-mm-dd): " startdate
read -p "Specify end of date range(yyyy-mm-dd): " enddate
hg log -r '(date("$startdate to $enddate"))'
Однако переменные больше не распознаются. Я пытался использовать двойные кавычки, а также заключать в кавычки сами переменные, но безрезультатно. Любая помощь приветствуется!
Ответ №1:
Вместо этого вы могли бы использовать revsets:
hg log -r 'reverse(date("yyyy-mm-dd to yyyy-mm-dd"))'
Комментарии:
1. Просто последующий вопрос. Я пытаюсь реализовать вышесказанное в сценарии bash, как показано ниже: read -p «Укажите начало диапазона дат (гггг-мм-дд): » начальная дата чтения -p»Укажите конец диапазона дат (гггг-мм-дд): » конечная дата hg log -r ‘(дата(«от $startdate до $ enddate»))» Однако переменные больше не принимаются в этом формате. Я пытался использовать двойные кавычки и заключать переменные в кавычки безрезультатно. Есть идеи? Спасибо!
2. Замените внешние одинарные кавычки двойными и экранируйте внутренние кавычки обратной косой чертой
3. Работает для меня. Пример: журнал hg -r «обратный(дата(с «2020-12-31 по 2021-01-01″))»