Monticello: рабочий процесс для совместной совместной разработки / правильной нумерации версий при копировании в удаленный репозиторий

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

  • Я принес пакет Foo утром, так что это версия FamousSmalltalkGuy.14,
  • Я совершаю утром (15), в обед (16) и вечером (17) на месте. Сейчас пакет Foo локально до DanielLyons.17,
  • Похоже, известный парень Smalltalk подтолкнул версию 15 к Smalltalkhub.
  • Я сливаю FamousSmalltalkGuy.15 с тем, что я имею в своем изображении, производя DanielLyons.18,

Теперь я хочу подтолкнуть DanielLyons.18 до Смолтальхуба. Что правильно сделать?

  1. Скопируйте версию (нажав кнопку "Копировать" в пользовательском интерфейсе Монтичелло).

    Это кажется неправильным, потому что будет разрыв с FamousSmalltalkGuy.15 а также DanielLyons.18,

  2. Зафиксируйте новую версию в репозитории Smalltalkhub, написав вручную DanielLyons.15 в коробке.

    Это кажется неправильным, потому что, кажется, смущает мой местный имидж. В конце концов, это видел DanielLyons.15 раньше, и это не так.

Я уверен, что здесь можно поступить правильно, но я не знаю, что это. Если кто-то может пролить свет на правильный рабочий процесс Монтичелло для одновременной совместной разработки, я был бы очень признателен. Спасибо!

2 ответа

Решение

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

Backport

Monticello имеет так называемую функцию изменений в бэкпорте, которая позволяет применять изменения, накопленные за несколько коммитов, к более старой версии. Это редко используется, хотя.

Ветка

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

Ветвь Монтичелло делается путем добавления -branchname на имя пакета:Foo-DanielLyons.18 становится Foo-mybranch-DanielLyons.18

Если Монтичелло отказывается от слияния, вы можете сказать "принять в качестве предка" и указать, что ваша новая версия имеет как вашу ветку, так и исходный коммит в качестве предков.

Процесс тогда идет так:

  1. Получить текущую версию, скажем Foo-FamousSmalltalkGuy.14
  2. Делай свои вещи и делай это как:
    1. Зафиксируйте свою версию Foo-myImportantTopic-DanielLyons.15
    2. Зафиксируйте свою версию Foo-myImportantTopic-DanielLyons.16
    3. Зафиксируйте свою версию Foo-myImportantTopic-DanielLyons.17
  3. Принять в качестве предка версию Foo-FamousSmalltalkGuy.14
  4. Передать на удаленный как Foo-DanielLyons.15
Другие вопросы по тегам