2013-04-01 3 views
1

Может кто-нибудь объяснить, как что-то вроде следующей системы может быть привлечено за пределами мерзавца, то есть с использованием номера версии вместо контекста Git и через ветвь и подмодуль:Может ли рабочий процесс подсистемы git сосуществовать с версиями пакетов?

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

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

Есть ли что-либо, приближающееся к этому уровню сложности и гибкости с использованием пакетов и номеров версий? Я никогда не использовал их, но я чувствую, что мне нужно, если я захочу разбить инструменты из git для распространения в других местах, сохраняя при этом взаимозависимости. Как люди разрешают номера версий git и пакетов? Я изучаю это некоторое время, и я все еще очень смущен всем этим.

ответ

0

Понятие номера пакета и версии полностью ортогонально git:
Git версии текстовых файлов.
Если эти текстовые файлы представляют собой пакеты и имеют где-то элемент, который объявляет версией, которая полностью зависит от пользователя git repo. Гит понятия не имеет об этих понятиях.

Самый близкий номер версии, выведенный исключительно из git, - git describe (как в «Deriving application build version from git describe - how to get a relatively straightforward string?»).
Но это не будет работать намного больше, и любой механизм зависимости от версии, который вам может понадобиться, должен будет управляться вами.
Все, что git submodules делают, записывает фиксированный SHA1 для каждого подмодуля.

+0

Право. Я знаю, как гит работает под капотом. Я просто не совсем понимаю, как зависимости и номера версий поддерживают согласованность в других системах. Мои вопросы, вероятно, больше о Python, чем git. Хеши Git позволяют мне прыгать и все последовать этому примеру. Python делает это? Если я устанавливаю инструмент, который имеет зависимости, он устанавливает их? Если я каким-то образом откажусь от инструмента, отмените зависания зависимостей? Как вещи не могут столкнуться? Это беспорядок, которого я еще не получил. –

+0

@GaryFixler хорошие вопросы. Моя точка зрения: это не имеет ничего общего с git. – VonC

+0

Точка взята. Я предполагаю, что я на самом деле имел в виду «Посмотрите на эту хорошую настройку, которую я имею в git, это существует вне git, используя схемы номеров версий»? –

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