Monticello: рабочий процесс для совместной совместной разработки / правильной нумерации версий при копировании в удаленный репозиторий
Работая, я делаю много ревизий. Всякий раз, когда код находится в разумной форме, я люблю совершать. Но не все эти коммиты интересны. Поэтому я делаю эти коммиты на локальный диск или частный сервер. Это выглядит примерно так:
- Я принес пакет
Foo
утром, так что это версияFamousSmalltalkGuy.14
, - Я совершаю утром (15), в обед (16) и вечером (17) на месте. Сейчас пакет
Foo
локально доDanielLyons.17
, - Похоже, известный парень Smalltalk подтолкнул версию 15 к Smalltalkhub.
- Я сливаю
FamousSmalltalkGuy.15
с тем, что я имею в своем изображении, производяDanielLyons.18
,
Теперь я хочу подтолкнуть DanielLyons.18
до Смолтальхуба. Что правильно сделать?
Скопируйте версию (нажав кнопку "Копировать" в пользовательском интерфейсе Монтичелло).
Это кажется неправильным, потому что будет разрыв с
FamousSmalltalkGuy.15
а такжеDanielLyons.18
,Зафиксируйте новую версию в репозитории Smalltalkhub, написав вручную
DanielLyons.15
в коробке.Это кажется неправильным, потому что, кажется, смущает мой местный имидж. В конце концов, это видел
DanielLyons.15
раньше, и это не так.
Я уверен, что здесь можно поступить правильно, но я не знаю, что это. Если кто-то может пролить свет на правильный рабочий процесс Монтичелло для одновременной совместной разработки, я был бы очень признателен. Спасибо!
2 ответа
Вы должны скопировать все свои версии в удаленный репозиторий, иначе вы потеряете ценную историю. Конечно, из-за того, как реализован Monticello, он создает много неработающих ссылок на предков, поскольку люди забывают скопировать промежуточные версии из своего локального хранилища. И да, номера версий глупы. Вы не можете иметь последовательные номера версий в распределенных версиях, поэтому я предпочитаю оставлять имена коммитов такими, какие они есть, и просто копировать все в удаленный репозиторий.
Backport
Monticello имеет так называемую функцию изменений в бэкпорте, которая позволяет применять изменения, накопленные за несколько коммитов, к более старой версии. Это редко используется, хотя.
Ветка
Другим процессом будет локальное создание ветки и только в конце слияние с версией, которую вы хотите зафиксировать.
Ветвь Монтичелло делается путем добавления -branchname
на имя пакета:Foo-DanielLyons.18
становится Foo-mybranch-DanielLyons.18
Если Монтичелло отказывается от слияния, вы можете сказать "принять в качестве предка" и указать, что ваша новая версия имеет как вашу ветку, так и исходный коммит в качестве предков.
Процесс тогда идет так:
- Получить текущую версию, скажем
Foo-FamousSmalltalkGuy.14
- Делай свои вещи и делай это как:
- Зафиксируйте свою версию
Foo-myImportantTopic-DanielLyons.15
- Зафиксируйте свою версию
Foo-myImportantTopic-DanielLyons.16
- Зафиксируйте свою версию
Foo-myImportantTopic-DanielLyons.17
- Зафиксируйте свою версию
- Принять в качестве предка версию
Foo-FamousSmalltalkGuy.14
- Передать на удаленный как
Foo-DanielLyons.15