регистрация ртутных транзакций - PullRequest
0 голосов
/ 11 мая 2009

это небольшое дополнение к предыдущему скрипту, и на этот раз я хотел бы записать детали для резервного копирования.

script /tmp/commit-push-log

# add all files to the repository
for REPOSITORY in $@ 
do

    cd $REPOSITORY

    # commit the changes
    hg commit -A -m "Commit changes `date`"

    # push the changes to the remote repository
    if hg push 
    then
        logger hg push completed without failure
    else
        logger hg push fails
    fi

done

exit

cat /tmp/commit-push-log | logger

rm /tmp/commit-push-log

проблема в том, что я не вижу никаких ртутных сообщений в журнале. Что может пойти не так в моем сценарии?

Ответы [ 2 ]

1 голос
/ 11 мая 2009
  1. Вы не должны использовать статические имена файлов tmp. Используйте mktemp, это намного безопаснее.
  2. Вы должны cd "$REPOSITORY" вместо "cd $ REPOSITORY", иначе все будет смешно, если в репозитории будут какие-либо пробелы или специальные символы.
  3. Вы не должны писать комментарии для автоматической фиксации. См. Здесь для большой статьи по этой теме.
  4. рт. Ст. , вероятно, выводит ошибки в stderr. Используйте hg commit -A -m "$comment" 2>&1 и hg push 2>&1
1 голос
/ 11 мая 2009

моя текущая версия

for REPOSITORY in $@ 
do

    # new temp file
    OUTPUT_LOG=`tempfile`
    echo -n > $OUTPUT_LOG

    # checks whether $REPO is a repo
    if [ ! -d $REPOSITORY/.hg ]; then
      echo "Not a repository: $REPOSITORY"
      exit 1;
    fi

    # change to that dir
    cd "$REPOSITORY"

    logger "Repository: $REPOSITORY"

    # commit the changes
    hg commit -A -m "Commit changes `date`" 2>&1 >> $OUTPUT_LOG

    # push the changes to the remote repository
    if hg push 2>&1 >> $OUTPUT_LOG
    then
    logger hg push completed without failure
    else
    logger hg push fails
    exit 1;
    fi

    # log the contents and delete the tempfile
    cat $OUTPUT_LOG | logger

    rm -f $OUTLOG_LOG

done

exit 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...