Найти все проекты Mercurial с исходящими изменениями - PullRequest
3 голосов
/ 14 ноября 2011

У меня есть несколько проектов Mercurial, проверенных в общем каталоге "Development". Какой самый простой способ для меня перечислить все проекты в этом каталоге, у которых есть исходящие наборы изменений, которые не были отправлены в родительский репозиторий? Переход в каталог каждого проекта и запуск hg outgoing не идеален.

1 Ответ

3 голосов
/ 14 ноября 2011

Самый простой подход, который я нашел, это следующий скрипт:

#!/bin/bash
IFS=$(printf "\n\b")
for project in `find . -type d -name .hg`
do
    pushd -- "$project" > /dev/null || exit 1
    cd .. > /dev/null
    if hg outgoing | grep changeset: > /dev/null
    then
       echo `pwd`
    fi
    popd > /dev/null
done

ПРИМЕЧАНИЯ

  1. Если вы используете MQ но не версионирует хранилище исправлений , вам нужно изменить указанную выше команду поиска на find . -type d -name .hg | grep -v .hg/patches/.hg
  2. Если вы хотите перечислить все проекты с незафиксированной работой, измените оператор if наif [ `hg status | wc -l` -gt 0 ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...