hg эквивалент git add -p? - PullRequest
       41

hg эквивалент git add -p?

44 голосов
/ 14 октября 2011

Имеется ли ртутный эквивалент git add -p?

Цитируя man, git-add с опцией -p (или --patch) делает следующее:

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

Ответы [ 4 ]

35 голосов
/ 14 октября 2011

Посмотрите на расширение записи (которое поставляется в комплекте с Mercurial).

Обратите внимание, что, поскольку Mercurial не имеет концепции промежуточной области, такой как git, запуск hg record просто позволит вам проанализировать изменения в вашей рабочей копии. Любые изменения, которые вы выберете для записи, будут зафиксированы, и любые изменения, которые вы выберете , а не для записи, просто останутся изменениями в вашей рабочей копии.

19 голосов
/ 14 октября 2011

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

hg record

Расширение CRecord предоставляет вам TUI (текстовый пользовательский интерфейс), который позволяет вам перейти к тем строкам, которые вы хотите включить. Хотя это не стандартно, поэтому его нужно загрузить в каталог, прежде чем вы сможете включить его в hgrc.

hg crecord

Редактировать:

  1. Расширение записи больше не требуется, поскольку ок. V3.4 . Теперь поддержка различных команд флаг -i или --interactive. Например:

    hg commit -i
    

    ... спросит вас, что вы хотите включить.

  2. CRecord сделал это до 3.8 в качестве основной функции. Добавьте следующее к вашему .hgrc

    [ui]
    interface = curses
    

    Теперь команды --interactive вызовут тот же интерфейс, что и старый Расширение CRecord.

12 голосов
/ 22 мая 2016

Начиная с Mercurial 3.8.1, встроено расширение crecord. Убедитесь, что раздел «ui» в вашем .hgrc содержит interface = curses, или вы получаете неудобный интерфейс вопросов и ответов.

[ui]
interface = curses

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

hg commit --interactive
8 голосов
/ 14 октября 2011

Если вы используете TortoiseHg, у него есть функция Shelve, которая позволяет вам сохранять изменения, которые вы не хотите фиксировать, во временной области. Он позволяет выбирать блоки, как git.

В TortoiseHg Workbench доступ к этому инструменту можно получить двумя способами:

  1. Нажмите Repository -> Shelve
  2. В окне Commit выберите значок инструмента полки. Это выглядит так:

enter image description here

...