Составьте команды Mercurial из Toroise-Hg и отправьте на удаленный linux, используя ssh
Я использую ToroiseHg Workbench для управления репозиториями на моей локальной машине с Windows, и мне нравится, как TortoiseHg составляет команды на основе кликов, которые я делаю с помощью графического интерфейса.
Но я знаю только, как использовать TortoiseHg для управления локальными репозиториями Windows, а не удаленными клиентами Unix Mercurial, расположенными на веб-сервере.
Можно ли туннелировать через SSH и отправлять команды на веб-сервер Unix? Я хотел бы управлять репо удаленно на моем веб-сервере с помощью TortoiseHg.
1 ответ
Нет, это невозможно: единственные "команды", которые вы можете отправлять через 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
после каждого входа в этот репозиторий. Это означает, что рабочая копия будет обновлена последними файлами, и ваш веб-сервер сможет предоставить их всему миру.