Некоторые неясности СКМ - PullRequest
       3

Некоторые неясности СКМ

3 голосов
/ 20 сентября 2011

Читая статью в википедии о контроле версий, я обнаружил некоторые термины, которые кажутся неоднозначно заданными, и мне было интересно, как они на самом деле используются / применяются в реальном мире. В частности:

  • "Магистраль" против "Базовой линии"
  • "Ветвь" против "Стрима"
  • «Оформить заказ» против «Обновления»
  • Папка "Vendor" против репозитория артефактов (например, Maven или Ivy)

Я изучаю контекст, поэтому любые конкретные примеры, которые вы могли бы привести, помогли бы лампочкам включиться намного лучше.

Что касается последнего, я имею в виду следующее:

По крайней мере, в svn достаточно стандартно иметь структуру проекта VC:

svnrepo/
    someProject/
        trunk/
        branches/
        tags/
        vendor/

Где vendor/ - это место для размещения внешних / сторонних зависимостей, на которые опираются ваши конфигурации. В качестве альтернативы я видел, как разработчики используют такие инструменты, как Maven или Apache Ivy, для извлечения / публикации артефактов (JAR и т. Д.) В / из хранилища, такого как SFTP-сервер. Итак, когда вы помещаете сторонние зависимости в SCM под vendor/, и когда вы помещаете эти зависимости в репозиторий Maven / Ivy?

Заранее благодарим за разъяснения по любому из этих пунктов!

1 Ответ

1 голос
/ 20 сентября 2011
  • "Mainline" против "Baseline":
    Первый термин - это особый тип ветви, который записывает эволюцию кода, обычно ту, которая наблюдается в рабочей среде.См. эту главу .
    Второй термин относится к метке (установленной для всего файла компонента, т. Е. Связного набора файлов)

  • "Ветвь "против" Stream ":
    Ветви не имеют иерархий (у вас есть список ветвей, и вы сливаетесь из любой ветки в любую ветку).Потоки имеют иерархию, которая, помимо прочего, позволяет определять рабочий процесс слияния .

  • «Оформить заказ» против «Обновить»
    Оформить заказ запрашивает определенныйверсия файлов и скопируйте ее на диск.
    Обновление обеспечит актуальность всех элементов на диске для текущих правил выбора.


  • Папка «Поставщик» против «Репозиторий артефактов» (например, Maven или Ivy) Репозиторий артефактов не предлагает функций управления версиями, таких как слияние, различия, ветки.
    Поставщик - это выделенная ветвь в VCS (и должнаИзбегайте, по моему мнению: двоичные файлы не приветствуются в VCS , если только по определенным причинам )

Так, когда вы ставите третье лицозависимости в вашем SCM под vendor /, и когда вы помещаете эти зависимости в репозиторий Maven / Ivy?

Вы должны пытаться держать вендорские библиотеки вне VCS, только с версией pom.xml (например), который записывает конфигурацию (т.е.список меток) нужен для сторонних библиотек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...