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

Другие вопросы по тегам