Нет, это невозможно: единственными «командами», которые вы можете отправлять через SSH (и HTTPS), являются hg push
и hg pull
.
Они на самом деле не отправляются как «команды», вместо этого Mercurial использует свой собственный протокол, который позволяет клиенту запрашивать на удаленном сервере несколько вещей, таких как «есть ли у вас этот набор изменений?», «Каковы главы филиалов?» И «Пожалуйста, примите этот комплект!».
Когда вы используете SSH, ваш клиент Mercurial создаст SSH-туннель и запустится hg serve --stdio
на удаленном хосте. Именно эта hg serve
команда говорит о протоколе Mercurial Wire, о котором я говорю выше. Хостинговые среды, такие как Bitbucket, заблокированы, так что это единственная команда, которую вы можете выполнить через SSH - они не хотят, чтобы вы выполняли произвольные команды на их серверах!
Что касается управления удаленным репозиторием на вашем собственном веб-сервере: вам необходимо войти в систему с SSH и создать пустой репозиторий на вашем Unix-сервере:
$ hg init my-website
Затем вы можете нажать на сервер с вашего локального компьютера:
$ hg push ssh://your-server.com/path/from/home-dir/to/my-website
Поскольку вы говорите об управлении веб-сайтом, вы можете добавить
[hooks] changegroup = hg update
к .hg/hgrc
файлу в удаленном репозитории: он будет запускать Mercurial hg update
после каждого добавления в этот репозиторий. Это означает, что рабочая копия будет обновлена последними файлами, и ваш веб-сервер сможет предоставить их всему миру.