2010-09-25 2 views
1

Скажем, один клонированный репозиторий, и его основная задача - отредактировать его локально. Какая правильная операция должна следовать, чтобы он мог просто слиться с первоначальным восходящим потоком, сохраняя его изменения? например, «Обновить» в TortoiseSVN.Простой вопрос о TortoiseHg

ответ

2

Короткий ответ - «тянуть». Оттуда у вас есть два варианта:

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

1

Два метода в @Axelle Ziegler's answer - это вековая дуэль «rebase vs. merge».

Первый способ требует большего объяснения.

Для начала, все DVCS поощряют частые фиксации, что является одним из основных преимуществ по сравнению с CVCS, например svn, поэтому ваши локальные изменения (вероятно) должны быть уже выполнены, когда вы хотите синхронизировать с восходящим потоком. Если вы не совершаете, то hg update по умолчанию попытается объединить ваши изменения с обновленной версией. См. hg help update для получения дополнительной информации (примечание: будьте ОЧЕНЬ осторожны с -C).

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

hg предпочитает и поощряет слияние, поэтому rebase предоставляется не в основном, а с добавленным расширением, которое вы должны включить, чтобы получить команду.

Здесь было много хорошего questions and answers здесь по теме. Если вам нравится перерезать погоню, прочитайте ссылки в this blog, чтобы узнать, что сказали Создатели.

Там вряд ли какой-либо «простой» вопрос, когда дело доходит до DVCS :)

0

я вижу третье решение с «MQ» расширение («Mercurial Patch Queue»).

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

Таким образом вы будете полностью управлять своими собственными изменениями в Очереди исправлений, сохраняя прикосновение к изменениям в мире.

Смежные вопросы