Mercurial Queues — резервное копирование и обмен незафиксированными исправлениями

Я пытаюсь понять, как отправить свои ртутные исправления в удаленное хранилище (скажем, на bitbucket.org), не применяя их сначала (фактически фиксируя их). Моя мотивация состоит в том, чтобы сначала сделать удаленную резервную копию моей работы, прежде чем она станет окончательной, а также иметь возможность делиться этими исправлениями с другими людьми или работать над ними с другого компьютера.

Мой обычный рабочий процесс таков:

$ hg qnew some-feature -m "work on some feature"

... work on some files

$ hg qref

--> bug or other feature request comes along

$ hg qpop some-feature
$ hg qnew new-feature -m "work on different feature"
... work on new stuff
$ hg qref

На данный момент я хотел бы отправить свои незавершенные, незафиксированные патчи в репозиторий. Я читал о том, что очереди Mercurial на самом деле являются их собственными репозиториями, и поэтому ими можно манипулировать так же, как обычным репозиторием hg, но я не совсем понимаю рабочий процесс в отношении того, что я пытаюсь сделать. Я назвал команду mq в своей оболочке hg -R $(hg root)/.hg/patches, но я был бы признателен за отзывы о том, как люди управляют удаленным резервным копированием и обменом незафиксированными исправлениями. благодаря.


person sa125    schedule 10.12.2012    source источник


Ответы (3)


В Bitbucket вы можете создавать как репозитории, так и очереди исправлений. Похоже, что Bitbucket не предоставил подробную официальную документацию. для очередей исправлений, но есть сообщение в блоге, который описывает, как их использовать.

Основные команды рабочего процесса для резервного копирования/распространения незафиксированных исправлений:

hg init --mq # initialize .hg/patches as a versioned repository (hereafter referred to as the MQ repository)
# manually configure .hg/patches/.hg/hgrc to contain a [paths] section if desired
hg commit --mq # commit in the MQ repository
hg push --mq # push the MQ repository to default remote
hg pull --mq # pull the MQ repository from default remote
hg update --mq/hg merge --mq # same as normal for hg, but operating on the MQ repository

В более старых версиях Mercurial команды hg init --mq и hg commit --mq предоставлялись как hg qinit и hg qcommit (которые теперь устарели).

person davidmc24    schedule 11.12.2012

  • hg push --mq отправляет наборы изменений и исправления в MQ
  • mqcollab — простой обмен исправлениями MQ и совместная работа над ними
person Lazy Badger    schedule 10.12.2012

Вы можете создать репозиторий в своем .hg/patches и отправить его как отдельный репозиторий. В более поздних версиях mercurial вы просто делаете hg ci --mq, и он зафиксирует последнюю версию вашего репозитория патчей. Как только он будет зафиксирован, вы можете клонировать его в битбакет.

person Stephen Rasku    schedule 11.12.2012