Mercurial: вытащить изменения из неверсированной копии - PullRequest
3 голосов
/ 07 июня 2010

В настоящее время я поддерживаю Mercurial-репозиторий проекта, над которым я работаю.

Однако остальная часть команды этого не делает.

Существует "хорошая" (неверсированная) копия базы кода, к которой я могу получить доступ по SSH. То, что я хотел бы сделать, это иметь возможность делать что-то вроде hg pull из этой хорошей копии в мой главный репозиторий всякий раз, когда он обновляется.

Насколько я могу судить, очевидного способа сделать это не существует, поскольку hg pull требует наличия исходного репозитория hg.

Полагаю, я мог бы использовать такую ​​утилиту, как rsync, чтобы обновить мой репозиторий, а затем зафиксировать, но мне было интересно:

Был ли более простой / менее хитрый способ сделать это?

1 Ответ

4 голосов
/ 08 июня 2010

Короче: не то, что я знаю.

Однако, если бы я был на вашем месте, я бы сохранил "центральный" код в одной ветви, сделал бы моего разработчика в другой ветви, а затем имел бы сценарии, которые бы подходили для push / pull.

Например, скрипт pull:

  1. hg co central (проверка отмены, если рабочая копия имела незафиксированные изменения)
  2. rsync ssh://central/repo
  3. hg ci -m "snapshot of central on $(date)"

Тогда скрипт push будет выглядеть примерно так:

  1. ./pull
  2. hg co central
  3. hg merge <your working branch>
  4. ... тестирование, исправление любых конфликтов ...
  5. rsync . ssh://central/repo

Наконец, я бы свободно применял подсказку, пока остальная часть команды не окажется на борту :) (хотя вы, вероятно, уже это знали).

...