Как создать/отправить/вытащить удаленное репо hg на bitbucket.org

У меня есть локальный проект с hg init. Я создал пустой удаленный репозиторий на bitbucket.org. URL-адрес, например, https://bitbucket.org/myusername/helloworld. Я хочу, чтобы это было голое удаленное репо без рабочего каталога.

Согласно инструкции в Bitbucket, при создании нового репозитория я мог загрузить свое локальное репо в удаленное репо, используя hg push, но оно содержит рабочий каталог.

cd \path\to\myproject
hg push https://[email protected]/myusername/helloworld

Как я могу создать голое удаленное репо, которое является клоном моего локального проекта (репозитория)?
И могу ли я выполнять синхронизацию/push/pull с голым удаленным репо без рабочего каталога?


person Sithu    schedule 21.10.2013    source источник


Ответы (1)


Я думаю, что здесь есть некоторая путаница. Все репозитории на битбакете «голые» (на самом деле это не ртутный термин). Вы не можете видеть рабочий каталог на битбакете (он находится на их серверах), поэтому, если вы делаете вывод, что ваш репозиторий на битбакете «голый», вы смотрите не на то или неправильно понимаете, что означает этот термин.

Ваше локальное репо можно назвать «голым», если в локальном рабочем каталоге нет файлов. Вы можете увидеть, как это выглядит, выполнив hg update null. Вы можете вернуть файлы в свой рабочий каталог, выполнив hg update. Но bare/non-bear имеет смысл только тогда, когда вы говорите о клоне, к которому у вас есть доступ к диску. Когда вы выполняете описанные выше шаги с битбакетом, вы создаете «пустой» репозиторий на BB без наборов изменений в нем, а затем hg push перемещает эти наборы изменений (также известные как коммиты) туда. После этого он уже не пустой, но все еще «голый».

person Ry4an Brase    schedule 21.10.2013
comment
Я новичок в mercurial/git. Итак, я довольно запутался в терминах и логике. Я мог бы использовать термин «голый» для своего локального репо, если в нем есть только папка .hg. Если все репозитории на битбакете пусты, они представляют рабочий каталог из .hg/store/data? Тогда push/pull взаимодействует только с .hg/store/data? Не загружать/загружать рабочие файлы? - person Sithu; 22.10.2013
comment
Вы правы во всех этих утверждениях. Bitbucket имеет очень тесную интеграцию на уровне репозитория, и они обслуживают файлы и строят свои веб-дисплеи полностью из того, что находится в пространстве .hg/.... В любом репо push и pull влияют только на пространство .hg/..., а не на рабочий каталог. Вы обнаружите, что даже hgweb, поставляемый с Mercurial, такой же. Попробуйте это: hg update null ; hg share. Локально у вас не будет файлов в вашем рабочем каталоге, но посетите URL-адрес с помощью веб-браузера, где они есть. Итог: голый или не голый - это деталь реализации, если репо не находится на вашем компьютере. - person Ry4an Brase; 22.10.2013