Базовая работа с репозиторием
Получение исходных кодов:
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