Mercurial: не тянет до совершения локальных изменений и пуш.Создано 8+ голов - PullRequest
1 голос
/ 16 ноября 2010

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

Q1.Перезаписал ли мой push-репозиторий репозиторий, то есть в репозитории больше не было изменений, которые были переданы до меня?

Q2.Что мне делать в таких случаях?Мне нужно внести изменения, которые я сделал, а также другие изменения, без необходимости заставлять другого парня извлекать мой код, повторно фиксировать, повторно выдвигать, и я снова вытягиваю, только чтобы получить ту же рабочую копию.

Q3.Есть ли в любом случае, что код может быть неявно обновлен / извлечен, прежде чем я фиксирую / нажимаю?

Q4.Что такое опция rebase?Я читал об этом в документации, но изменения, которые я выполняю в коде, не являются частными.

Допущения:

  1. Не создано ни одной ветви.(Ну, они созданы, но это разные модули, и я их не интересую).
  2. Я использую Eclipse и MercurialEclipse.

РЕДАКТИРОВАТЬ: Извините, если вопрос(возможно) дубликат существующего вопроса.

Ответы [ 4 ]

4 голосов
/ 16 ноября 2010

Вы не можете уничтожить удаленные изменения нажатием.Вы можете создать несколько голов с помощью -f, но вы не можете создать историю уничтожения, просто нажав.

Чтобы получить представление о состоянии хранилища и увидеть, что произошло, используйте hg serve ина это в браузере (вероятно, http://localhost:8000/graph). Тогда вы можете визуально увидеть, каково состояние головок и слияний.

1 голос
/ 16 ноября 2010

Когда мне удается создать медузу-репо в hg, я определяю, какая ветвь будет "основной линией".Затем я перехожу к каждой дочерней ветви и выполняю этот процесс:

hg up -r subbranch
hg merge -r mainline-branch
hg commit -m "merged from main"
hg up -r mainline-branch
hg merge -r subranch
hg commit -m "brought in the subchanges from subbranch"

Путем первого слияния с дочерней веткой я проверяю, что магистральная линия не повреждена, а затем я могу тривиально слиться с основной.1004 *

Это не серьезный кризис;это просто требует работы с другими разработчиками, так что вы все начнете снова попадать в ту же ветку на следующий день или около того.

1 голос
/ 16 ноября 2010

Насколько я понимаю, Mercurial по умолчанию невозможно нажать, когда этот толчок создаст новую удаленную головку.
Другими словами: если кто-то еще подтолкнул вас, а вы не вмешались и объединили эти изменения. Это поведение можно изменить, используя

push -f

Вы использовали эту опцию?

г. Спольский объясняет это лучше в его уроке .

0 голосов
/ 25 октября 2017

Q3.Есть ли в любом случае, что код может быть неявно обновлен / извлечен до того, как я совершу / отправлю?

В .hg / hgrc добавьте

[hooks]
pre-commit = hg pull -u
...