2015-02-14 8 views
0

Я хочу вытащить репозиторий с моего компьютера в репозиторий на удаленном сайте с целью синхронизации файлов. TortoiseHg, кажется, правильно идентифицирует исходящие изменения, но когда я пытаюсь подтолкнуть изменения, TortoiseHg отвечает «abort: destination не поддерживает push» с «Push to https://myid:[email protected] aborted, ret 255» в строке состояния внизу. Файл журнала включает в себя «(возврат к static-http)»Mercurial/TortoiseHg отвечает «abort: destination не поддерживает push»

Я искал googled, но я никуда не уходил. Что означает «прерывание: назначение не поддерживает push» означает на английском языке? Что не поддерживает толчок? Что такое «пункт назначения»? Являются ли это настройками в файлах конфигурации в репо, которые делают так, чтобы адресат не поддерживал push? Так настроен сервер?

Один из ответов на вопрос 27967022 «Ваше назначение не поддерживает push, или нажатие отключено». Как можно включить push?

ответ

1

Если вы используете hgweb на стороне сервера, чтобы толкая в хранилище, добавьте

[web] 
    allow_push = * 

к его .hg/hgrc на сервере или в hgweb.config. Вы также можете разрешить pushing только для определенных пользователей, указав их вместо *. Это задокументировано here.

Если это не так, и вы просто используете сервер https для обслуживания репо в качестве файлов, вы не сможете нажать через https. В этом случае, ваш наиболее вероятный вариант это нажать через SSH, как и в

hg push ssh://[email protected]/path/to/repo 

Это требует, чтобы у вас есть доступ SSH к серверу и что репозиторий находится в $HOME/path/to/repo. Для абсолютного пути (если хранилище находится в /path/to/repo, а не ниже $HOME), нажмите на ssh://[email protected]//path/to/repo (обратите внимание на двойную косую черту).

Если вы всегда нажать на тот же пункт назначения, вы можете добавить этот путь к локальной .hg/hgrc:

[paths] 
default-push = ssh://[email protected]/path/to/repo 

, так что вы можете просто использовать hg push.

+0

Я добавил [web] allow_push = * в .hg/hgrc в репо, как указано. Я получаю то же сообщение. – Gary

+0

Я беру из вашего комментария ответ @ Ry4an, что у вас нет hgweb на стороне сервера, который вам понадобится для 'allow_push' (простой https-сервер не знает, чтобы разобрать эти файлы конфигурации или что-либо из вещи в них означают). Вы не сможете проталкивать через https без поддержки на стороне сервера, поэтому, скорее всего, вам придется делать это через ssh (надеюсь, у вас есть ssh-доступ к вашему серверу). Я добавил инструкции, как это сделать для ответа. – Wintermute

0

Что вы используете для вашего меркуриального сервера на mydomain.com? Если это hgweb, то @wintermute имеет ваш ответ. Если вы обслуживаете статический HTTP (используя Apache, nginx и т. Д.), То ваш сервер настроен для клонирования или вытягивания, но не нажимает. Скорее всего, вам просто нужно включить push, например, @wintermute.

+0

Я не управляю сервером mercurial на mydomain.com. Я не понимаю, зачем мне это нужно. Разве это не меркурийное сравнение одного репо с другим? Я должен добавить, что я не контролирую сервер - это принадлежит веб-хостингу. – Gary

+0

Вы говорите, что просто хотите сравнить два репозитория, но вы используете команду «push», которая толкает новые данные в репо. Если вы хотите их сравнить, мы можем помочь вам в этом, но если вы хотите нажать, вам нужно запустить там сервер. –

+0

«Если вы хотите нажать, вам нужно запустить там сервер». Это объясняет мою проблему.Я предположил, что mercurial работает над http. Это не так. Благодаря и зимним мадам, и Ry4an за их ответы. – Gary

 Смежные вопросы

  • Нет связанных вопросов^_^