Есть ли способ заархивировать хранилище Mercurial в удаленный каталог через SSH? Например, было бы хорошо, если бы можно было сделать следующее:
hg archive ssh://user@example.com/path/to/archive
Однако это не похоже на работу. Вместо этого он создает каталог с именем ssh:
в текущем каталоге.
Я создал следующий быстрый и грязный скрипт, который имитирует желаемое поведение, создав временный ZIP-архив, скопировав его по SSH и разархивировав каталог назначения. Тем не менее, я хотел бы знать, если есть лучший способ.
if [[ $# != 1 ]]; then
echo "Usage: $0 [user@]hostname:remote_dir"
exit
fi
arg=$1
arg=${arg%/} # remove trailing slash
host=${arg%%:*}
remote_dir=${arg##*:}
# zip named to match lowest directory in $remote_dir
zip=${remote_dir##*/}.zip
# root of archive will match zip name
hg archive -t zip $zip
# make $remote_dir if it doesn't exist
ssh $host mkdir --parents $remote_dir
# copy zip over ssh into destination
scp $zip $host:$remote_dir
# unzip into containing directory (will prompt for overwrite)
ssh $host unzip $remote_dir/$zip -d $remote_dir/..
# clean up zips
ssh $host rm $remote_dir/$zip
rm $zip
Edit : clone
-and- push
было бы идеально, но, к сожалению, на удаленном сервере не установлена Mercurial.