История изменений
Исправление gaylord, (текущая версия) :
коммитер просто может забыть его поставить или поставить не тот.
Коммитер в ветку может поставить не то. Все что человек вводит, он может ввести не так.
тег можно снять и, насколько я помню, это не отражается в истории (только в ref log, но он привязан к серверу)
Артефакты, от него нагенеренные, уже лежат в репозитории. Их придется убирать.
подобная схема должна быть утвержденна на уровне проекта, чтобы ее использовали все коммитеры, что само по себе непростая бюрократическая задача.
Это чрезвычайно тривиальная задача, она буквально везде решена. Вот где угодно: BitBucket, GitHub, GitLab, Forgejo, LKML. Все справились.
По умолчанию наследуется от родительского коммита (в предлагаемой мной схеме).
Так проблема не в этом, проблема в том что теперь у тебя вместо одной сущности (имя ветки) их две.
Во многих git-серверах есть встроенные средства ограничения доступа, как и gated checkin (pull request и пр). Вот с этим как раз всё относительно неплохо.
Точно тем же механизмом проверяется валидность коммитов. Это один и тот же механизм hooks.
Но git-describe не генерирует версию.
Генерирует. Куча проектов этим пользуется.
Разделение логически разных изменений (как и внятное комментирование) - это зона ответственности коммитера. Сохранение информации о слиянии веток (что, куда, когда и кто) - это зона ответственности VCS. И если VCS этого не делает, либо делает ущербным образом, то это явно не в пользу VCS.
При условии, что у тебя стратегия merge PR контролируется на стороне UI для мержа и там ты можешь форсить любую политику, какую тебе захочется. Так что если тебе в проекте нужно, чтобы у тебя были MR, это контролируется галкой в UI.
Это информация для связи с багрепортами и прочими артефактами из bug/task трекера. Я же говорю, про историю коммитов в привязке к конкретным веткам. См. пример конце комментария.
Так бога ради, мы уже установили, что зафорсить правильную историю в Git это один клик в UI.
Последствия затрагивают всех, работающих с этим репо.
Возьмём конкретный пример: есть upstream (trunk, master и т.п.) ветка куда вливаются только стабильные коммиты из условно фиче-веток (коммиты из которых тоже остаются в истории). Merge коммиты присутствуют не всегда. Нужно взять из этой стабильной ветки несколько версий кода месячной давности для экспериментов (не зацепив при этом коммиты из фиче-веток). Как это сделать используя только git log?
Что значит не всегда? Галка в UI стоит, принятие PR всегда вырождается в git merge --no-ff
на стороне сервера. Все работает, господи, ты придумываешь проблемы просто на пустом месте. Если мы говорим про email-based workflow, посмотри, как это Линус делает. У него тоже все прекрасно работает.
Когда мы начинаем уходить в сторону «ну вот разработчики пользуются тулзой неправильно», мы уходим не туда. Если разработчики не пользуются тулзой правильно и процессы у них всратые, то нет никаких веток, есть мастер с кучей коммитов «fix things lol» по пять тыщ строк.
Исправление gaylord, :
коммитер просто может забыть его поставить или поставить не тот.
Коммитер в ветку может поставить не то. Все что человек вводит, он может ввести не так.
тег можно снять и, насколько я помню, это не отражается в истории (только в ref log, но он привязан к серверу)
Артефакты, от него нагенеренные, уже лежат в репозитории. Их придется убирать.
подобная схема должна быть утвержденна на уровне проекта, чтобы ее использовали все коммитеры, что само по себе непростая бюрократическая задача.
Это чрезвычайно тривиальная задача, она буквально везде решена. Вот где угодно: BitBucket, GitHub, GitLab, Forgejo, LKML. Все справились.
По умолчанию наследуется от родительского коммита (в предлагаемой мной схеме).
Так проблема не в этом, проблема в том что теперь у тебя вместо одной сущности (имя ветки) их две.
Во многих git-серверах есть встроенные средства ограничения доступа, как и gated checkin (pull request и пр). Вот с этим как раз всё относительно неплохо.
Точно тем же механизмом проверяется валидность коммитов. Это один и тот же механизм hooks.
Но git-describe не генерирует версию.
Генерирует. Куча проектов этим пользуется.
Разделение логически разных изменений (как и внятное комментирование) - это зона ответственности коммитера. Сохранение информации о слиянии веток (что, куда, когда и кто) - это зона ответственности VCS. И если VCS этого не делает, либо делает ущербным образом, то это явно не в пользу VCS.
При условии, что у тебя стратегия merge PR контролируется на стороне UI для мержа и там ты можешь форсить любую политику, какую тебе захочется. Так что если тебе в проекте нужно, чтобы у тебя были MR, это контролируется галкой в UI.
Это информация для связи с багрепортами и прочими артефактами из bug/task трекера. Я же говорю, про историю коммитов в привязке к конкретным веткам. См. пример конце комментария.
Так бога ради, мы уже установили, что зафорсить правильную историю в Git это один клик в UI.
Последствия затрагивают всех, работающих с этим репо.
Возьмём конкретный пример: есть upstream (trunk, master и т.п.) ветка куда вливаются только стабильные коммиты из условно фиче-веток (коммиты из которых тоже остаются в истории). Merge коммиты присутствуют не всегда. Нужно взять из этой стабильной ветки несколько версий кода месячной давности для экспериментов (не зацепив при этом коммиты из фиче-веток). Как это сделать используя только git log?
Что значит не всегда? Галка в UI стоит, принятие PR всегда вырождается в git merge --no-ff
на стороне сервера. Все работает, господи, ты придумываешь проблемы просто на пустом месте. Если мы говорим про email-based workflow, посмотри, как это Линус делает. У него тоже все прекрасно работает.
Исправление gaylord, :
коммитер просто может забыть его поставить или поставить не тот.
Коммитер в ветку может поставить не то. Все что человек вводит, он может ввести не так.
тег можно снять и, насколько я помню, это не отражается в истории (только в ref log, но он привязан к серверу)
Артефакты, от него нагенеренные, уже лежат в репозитории. Их придется убирать.
подобная схема должна быть утвержденна на уровне проекта, чтобы ее использовали все коммитеры, что само по себе непростая бюрократическая задача.
Это чрезвычайно тривиальная задача, она буквально везде решена. Вот где угодно: BitBucket, GitHub, GitLab, Forgejo, LKML. Все справились.
По умолчанию наследуется от родительского коммита (в предлагаемой мной схеме).
Так проблема не в этом, проблема в том что теперь у тебя вместо одной сущности (имя ветки) их две.
Во многих git-серверах есть встроенные средства ограничения доступа, как и gated checkin (pull request и пр). Вот с этим как раз всё относительно неплохо.
Точно тем же механизмом проверяется валидность коммитов. Это один и тот же механизм hooks.
Но git-describe не генерирует версию.
Генерирует. Куча проектов этим пользуется.
Разделение логически разных изменений (как и внятное комментирование) - это зона ответственности коммитера. Сохранение информации о слиянии веток (что, куда, когда и кто) - это зона ответственности VCS. И если VCS этого не делает, либо делает ущербным образом, то это явно не в пользу VCS.
При условии, что у тебя стратегия merge PR контролируется на стороне UI для мержа и там ты можешь форсить любую политику, какую тебе захочется. Так что если тебе в проекте нужно, чтобы у тебя были MR, это контролируется галкой в UI.
Это информация для связи с багрепортами и прочими артефактами из bug/task трекера. Я же говорю, про историю коммитов в привязке к конкретным веткам. См. пример конце комментария.
Так бога ради, мы уже установили, что зафорсить правильную историю в Git это один клик в UI.
Последствия затрагивают всех, работающих с этим репо.
Возьмём конкретный пример: есть upstream (trunk, master и т.п.) ветка куда вливаются только стабильные коммиты из условно фиче-веток (коммиты из которых тоже остаются в истории). Merge коммиты присутствуют не всегда. Нужно взять из этой стабильной ветки несколько версий кода месячной давности для экспериментов (не зацепив при этом коммиты из фиче-веток). Как это сделать используя только git log?
Что значит не всегда? Галка в UI стоит, принятие PR всегда вырождается через git commit merge --no-ff
на стороне сервера. Все работает, господи, ты придумываешь проблемы просто на пустом месте. Если мы говорим про email-based workflow, посмотри, как это Линус делает. У него тоже все прекрасно работает.
Исправление gaylord, :
коммитер просто может забыть его поставить или поставить не тот.
Коммитер в ветку может поставить не то. Все что человек вводит, он может ввести не так.
тег можно снять и, насколько я помню, это не отражается в истории (только в ref log, но он привязан к серверу)
Артефакты, от него нагенеренные, уже лежат в репозитории. Их придется убирать.
подобная схема должна быть утвержденна на уровне проекта, чтобы ее использовали все коммитеры, что само по себе непростая бюрократическая задача.
Это чрезвычайно тривиальная задача, она буквально везде решена. Вот где угодно: BitBucket, GitHub, GitLab, Forgejo, LKML. Все справились.
По умолчанию наследуется от родительского коммита (в предлагаемой мной схеме).
Так проблема не в этом, проблема в том что теперь у тебя вместо одной сущности (имя ветки) их две.
Во многих git-серверах есть встроенные средства ограничения доступа, как и gated checkin (pull request и пр). Вот с этим как раз всё относительно неплохо.
Точно тем же механизмом проверяется валидность коммитов. Это один и тот же механизм hooks.
Но git-describe не генерирует версию.
Генерирует. Куча проектов этим пользуется.
Разделение логически разных изменений (как и внятное комментирование) - это зона ответственности коммитера. Сохранение информации о слиянии веток (что, куда, когда и кто) - это зона ответственности VCS. И если VCS этого не делает, либо делает ущербным образом, то это явно не в пользу VCS.
При условии, что у тебя стратегия merge PR контролируется на стороне UI для мержа и там ты можешь форсить любую политику, какую тебе захочется. Так что если тебе в проекте нужно, чтобы у тебя были MR, это контролируется галкой в UI.
Это информация для связи с багрепортами и прочими артефактами из bug/task трекера. Я же говорю, про историю коммитов в привязке к конкретным веткам. См. пример конце комментария.
Так бога ради, мы уже установили, что зафорсить правильную историю в Git это один клик в UI.
Последствия затрагивают всех, работающих с этим репо.
Возьмём конкретный пример: есть upstream (trunk, master и т.п.) ветка куда вливаются только стабильные коммиты из условно фиче-веток (коммиты из которых тоже остаются в истории). Merge коммиты присутствуют не всегда. Нужно взять из этой стабильной ветки несколько версий кода месячной давности для экспериментов (не зацепив при этом коммиты из фиче-веток). Как это сделать используя только git log?
Что значит не всегда? Галка в UI стоит, принятия PR всегда вырождается через git commit merge --no-ff
на стороне сервера. Все работает, господи, ты придумываешь проблемы просто на пустом месте. Если мы говорим про email-based workflow, посмотри, как это Линус делает. У него тоже все прекрасно работает.
Исходная версия gaylord, :
коммитер просто может забыть его поставить или поставить не тот.
Коммитер в ветку может поставить не то. Все что человек вводит, он может ввести не так.
тег можно снять и, насколько я помню, это не отражается в истории (только в ref log, но он привязан к серверу)
Артефакты, от него нагенеренные, уже лежат в репозитории. Их придется убирать.
подобная схема должна быть утвержденна на уровне проекта, чтобы ее использовали все коммитеры, что само по себе непростая бюрократическая задача.
Это чрезвычайно тривиальная задача, она буквально везде решена. Вот где угодно: BitBucket, GitHub, GitLab, Forgejo, LKML. Все справились.
По умолчанию наследуется от родительского коммита (в предлагаемой мной схеме).
Так проблема не в этом, проблема в том что теперь у тебя вместо одной сущности (имя ветки) их две.
Во многих git-серверах есть встроенные средства ограничения доступа, как и gated checkin (pull request и пр). Вот с этим как раз всё относительно неплохо.
Точно тем же механизмом проверяется валидность коммитов. Это один и тот же механизм hooks.
Но git-describe не генерирует версию.
Генерирует. Куча проектов этим пользуется.
Разделение логически разных изменений (как и внятное комментирование) - это зона ответственности коммитера. Сохранение информации о слиянии веток (что, куда, когда и кто) - это зона ответственности VCS. И если VCS этого не делает, либо делает ущербным образом, то это явно не в пользу VCS.
При условии, что у тебя стратегия merge PR контролируется на стороне UI для мержа и там ты можешь форсить любую политику, какую тебе захочется. Так что если тебе в проекте нужно, чтобы у тебя были MR, это контролируется галкой в UI.
Это информация для связи с багрепортами и прочими артефактами из bug/task трекера. Я же говорю, про историю коммитов в привязке к конкретным веткам. См. пример конце комментария.
Так бога ради, мы уже установили, что зафорсить правильную историю в Git это один клик в UI.
Последствия затрагивают всех, работающих с этим репо.
Возьмём конкретный пример: есть upstream (trunk, master и т.п.) ветка куда вливаются только стабильные коммиты из условно фиче-веток (коммиты из которых тоже остаются в истории). Merge коммиты присутствуют не всегда. Нужно взять из этой стабильной ветки несколько версий кода месячной давности для экспериментов (не зацепив при этом коммиты из фиче-веток). Как это сделать используя только git log?
Что значит не всегда? Галка в UI стоит, принятия PR всегда вырождается через git commit merge --no-ff
на стороне сервера. Все работает, господи, ты придумываешь проблемы просто на пустом месте. Если мы говорим про email-based workflow, посмотри, как это Линус делает. У него тоже все прекрасно работает.