Составьте команды Mercurial из Toroise-Hg и отправьте на удаленный linux с помощью ssh

678
steampowered

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

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

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

0
Обычный способ работы с репозиториями DVCS - это «hg clone» репо на ваш компьютер, а затем «hg push» new передает обратно на сервер. grawity 11 лет назад 0
Я использую bitbucket для хранения репозиториев и хочу перенести последние коммиты из bitbucket на веб-сервер. Нужно ли выполнять извлечение данных с помощью командной строки веб-сервера или есть способ отправить команды на мой веб-сервер из Windows-клиента TortoiseHg? Filezilla отправляет команды для выполнения на сервер. steampowered 11 лет назад 0

1 ответ на вопрос

2
Martin Geisler

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

Хорошо спасибо. Похоже, мне нужно будет сценарий в командной строке, чтобы вытащить и обновления на сервере. Сценарий не сложный, просто хотел убедиться, что TortoiseHg не может быть. steampowered 11 лет назад 0
Это может быть немного поздно, но если вы видите каталог .hg и его содержимое из внешнего веб-браузера, кто-то может сделать `hg clone` вашего сайта, если я не ошибаюсь. BrainStorm.exe 8 лет назад 0

Похожие вопросы