Выдвигать ревизии Mercurial из моего локального клона в «настоящий» клон? - PullRequest
1 голос
/ 28 февраля 2010

Я создал проект в коде Google и использую для него Mercurial.

Я сделал клон проекта: farm-myclone вверх по коду Google.

Я вынимаю копию farm-myclone и начинаю добавлять файлы, изменять файлы и т. Д.

Я использую hg commit, затем hg push, чтобы вернуть изменения в репозиторий моего клона.

Теперь я хочу переместить эти изменения в реальный репозиторий с именем farm.

Должен ли я просто сделать что-то вроде:

hg push [farm-myclone] to [farm]

так что, независимо от того, в каком состоянии находится мой клон, его подталкивают к реальному клону?

Это правильно? Я пользователь SVN, так что меня это немного смущает.

Спасибо

Ответы [ 2 ]

2 голосов
/ 28 февраля 2010

Я думаю, что у вас есть еще один клон, чем вам действительно нужно: вам, вероятно, не нужен "farm-myclone", чтобы вообще существовать в Google Code.

Если этот основной проект просто называется «ферма», то при запуске hg clone для его клонирования вы получаете клон на локальном компьютере . Этот клон является полным хранилищем Mercurial во всех отношениях. Когда вы будете готовы опубликовать свои изменения для просмотра остальным миром, используйте hg push, чтобы отправить их в репозиторий «фермы».

Я думаю, что наличие дополнительного репозитория "farm-myclone" запутывает проблему.

0 голосов
/ 28 февраля 2010

Нет синтаксиса, подобного тому, который вы предлагаете - могу я спросить, откуда вы его взяли? Я хотел бы улучшить документацию, поэтому, пожалуйста, сообщите нам (предпочтительно в Mercurial mailinglist ), как мы можем улучшить вывод hg help push.

Что касается вашего вопроса, то я согласен с Грегом - у вас, похоже, есть ненужный клон. Зачастую у вас есть только один другой клон, из которого вы можете нажать / вытащить. Когда вы делаете

hg clone http://example.org/foo foo-clone

, тогда foo-clone будет иметь http://example.org/foo в качестве пути по умолчанию. Это означает, что простой

hg pull

внутри foo-clone достаточно, чтобы получить последние изменения с http://example.org/foo.

Путь по умолчанию хранится в foo-clone/.hg/hgrc, и вы можете добавить другие пути и / или изменить путь по умолчанию. Поэтому файл hgrc может выглядеть так:

[paths]
default = http://example.org/foo
alice = http://other-domain.org/foo
experiement = /home/me/foo-experiment

Затем вы можете использовать hg pull alice, чтобы получить ее изменения, или hg push experiment, чтобы подтолкнуть к вашему локальному экспериментальному клону.

Это просто ярлыки, вы всегда можете нажать / вытянуть, используя явный URL:

hg pull http://bobs-world.org/foo

также работает, если Боб настроил свой веб-сервер для обслуживания клона репозитория foo.

Надеюсь, это немного поможет: -)

...