Очередь употребления очереди рассылки Mercurial Patch

StackOverflow https://stackoverflow.com/questions/4103733

Вопрос

Я использую ракурные патчи в следующих случаях: -

  1. Когда мне нужно вытащить из удаленного репозитория и иметь выдающиеся незаменимые изменения. Отказ Тогда я просто создаю патч, QPOP, потяните из удаленного репозитория, а затем снова импортируйте патч.
  2. Когда мне нужно загрузки патчей на рецензионные щиты. Отказ Я просто делаю патч и загрузите ее.

Как еще вы используете очереди Mercurial Patch? Я чувствую, что это очень мощное ракурское расширение и что я не использую его в полной мере.

Это было полезно?

Решение

У Mercurial Wiki есть Хороший раздел В случае использования случаев:

В итоге:

  1. Сохранение текущего состояния рабочей копии, чтобы вы могли легко вернуться к нему позже
  2. Предотвращение «запутанной рабочей копии» - если вы на полпути через изменение и хотите изменить что-то еще
  3. Обеспечьте мультипликационные, противоречимые коммиты, чтобы вы могли получить «историю», выглядящую прямо, прежде чем нажать.

Другие советы

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

Пример:

C:\>hg init db
C:\>cd db
C:\db>echo >file1
C:\db>echo >file2
C:\db>echo >file3
C:\db>hg ci -Am codebase          # Create a code base with 3 files.
adding file1
adding file2
adding file3
C:\db>echo a change >>file2       # Outstanding change to file2.
C:\db>hg st
M file2

На данный момент мы будем клонировать базу данных и зафиксировать изменение, которое мы можем потянуть.

C:\db>hg clone . \db2
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
C:\db>cd \db2
C:\db2>echo a change >>file3
C:\db2>hg ci -m "file3 change"    # Commit a change to file3.

Вернуться в оригинальную базу данных ...

C:\db2>cd \db
C:\db>hg st                       # Still have uncommitted change
M file2
C:\db>hg pull \db2
pulling from \db2
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
C:\db>hg st                       # We have the new history, but haven't updated.
M file2                           # file2 has uncommitted change.
C:\db>type file3                  # file3 is unchanged. 
ECHO is on.
C:\db>hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
C:\db>hg st                       # We've updated, and file2 *still* has
M file2                           #    uncommitted change.
C:\db>type file2
ECHO is on.
a change
C:\db>type file3                  # But file3 now has committed change
ECHO is on.                       #    that was pulled.
a change

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

Для выброса палата hg export <rev> будет экспортировать исправления для обзора.

Когда вы создаете очередь патча на BitBucket, он перечисляет некоторые общие применения для очередей патч в правой панели. Их объяснение очень хорошее и отвечает на ваш вопрос напрямую. Цитаты из него ниже.

Очередь патч хороши для:

  • Разработка функций, которые вы намерены представить для Repstream Review

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

  • Экспериментируя с добавлением новой функции

    Очески патч не загромождают историю вашего проекта, чтобы вы могли безопасно использовать их как способ быстро попробовать идею, и сохраняя ее в управлении версиями, не загромождая историю вашего проекта с помощью неудачных экскурсий. Если вы решите сохранить эксперимент, вы можете легко превратить очередь патч в набор традиционных мишечных коммитов

  • Поддержание частных настроек для другого проекта

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

Очереди патча есть нет хорош для

  • Длительные ветви

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

  • Групповое развитие

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

MQ - отличный инструмент для управления одновременной разработкой. Вопиющий самополадизм и самооценка самостоятельно отвечать:

3 Используйте MQ с одним патч (или несколько последовательных патчей) на проект.

  • Плюсы: простые и легко.
  • Минусы: должен qrefresh перед переключением и восстановлением после; хитрый и рискованный, если проекты не являются ортогональными.

4 Используйте одну ветку MQ на проект.

  • Плюсы: ультра гибкий и масштабируемый (для количества одновременных проектов)
  • Минусы: должны qrefresh и qcommit перед переключением и восстановлением после; чувствует себя сложным.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top