Памятка: Несколько слов о том как пользоваться Mercurial

Базовая работа с репозиторием

Получение исходных кодов:

hg clone http://<user>:<pass>@<host>:<port>/<repo>

Обновление исходников:

cd <repo>
hg pull
hg update --check

Создание изменений

Добавление нового файла:

hg add <filename>

Или автоматический поиск новых файлов в текущей директории:

hg add .

Удаление файлов (внимание, файлы удаляются и из индекса и физически с диска)

hg remove <filename>

Так же, только рекурсивно текущую директорию:

hg remove .

Но есть намного более удобная команда, которая сразу выполняет и удаление из индекса и добавление новых файлов:

hg addremove

Запись сделанных изменений (если не указать сообщение ключом -m то откроется редактор):

hg commit -m 'сообщение об изменениях'
hg push

Если есть ветка, которую надо принудительно заменить:

hg push -f 

Слияние текущих изменений с веткой репозитория:

hg merge

Пример BASH-скрипта 

Вот таким образом я обновляю несколько репозиториев:

#!/bin/bash
# Директории с исходниками
dirs="repo1 repo2 trunc"
# Правка для cron
my_path="$(dirname $0)"
cd "$my_path"
# Выполним цикл
for dir in $dirs
    do
        if [ -e "$dir" ]
            then
                cd "$dir"
                hg pull
                hg update --check
                cd ..
            else
                echo "$dir not found"
        fi
done