Нет, это невозможно: единственными "командами", которые вы можете отправлять через 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
после каждого добавления в этот репозиторий. Это означает, что рабочая копия будет обновлена последними файлами, и ваш веб-сервер сможет предоставить их всему миру.