Я использую ToroiseHg Workbench для управления репозиториями на моем локальном компьютере с Windows, и мне нравится, как TortoiseHg составляет команды на основе кликов, которые я делаю с помощью графического интерфейса.

Но я знаю только, как использовать TortoiseHg для управления локальными репозиториями Windows, а не удаленными клиентами Unix Mercurial, расположенными на веб-сервере.

Можно ли туннелировать через SSH и отправлять команды на веб-сервер Unix? Я хотел бы управлять репо удаленно на моем веб-сервере с помощью TortoiseHg.

1 ответ1

2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .