Настроить суффикс версии MinVer - PullRequest
1 голос
/ 20 февраля 2020

Я использую MinVer и не могу найти, как получить высоту коммита для создания собственного суффикса версии. В идеале я хотел бы иметь 1.0.0-preview. {Commits} вместо 1.0.0.-preview.0. {Commits}. Что такое ноль между предварительной версией лейбла и высотой коммита, я не знаю. (Да, я установил <MinVerDefaultPreReleasePhase> для предварительного просмотра:))

Во-вторых, используя GitInfo Я замечаю расхождение в количестве коммитов. Ниже приведен вывод некоторых экспериментов на github

$ dotnet Application.dll
========== Git ==========
Commit     a54e9e9
Commit SHA a54e9e96868470ebf13d4a35ce9858c09a534363
Branch     remotes/origin/master
Tag
Commits    39
========== Assembly ==========
Version              1.0.0
Assembly             Not found: AssemblyVersionAttribute
Informational        1.0.0-preview.0.34+a54e9e96868470ebf13d4a35ce9858c09a534363
File                 1.0.0.24 // AzDo BuildId=24

Диагностика MinVer дает мне несколько советов о root коммите, но я немного знаю о git, что определяет root commit.

MinVer: Starting at commit a54e9e9 (height 0)...
  MinVer: History diverges from 3c0633f (height 20) to:
  MinVer: - 56af0a5 (height 21)
  MinVer: - 747ef5a (height 21)
  MinVer: Following path from 3c0633f (height 20) through first parent 56af0a5 (height 21)...
  MinVer: Found root commit { Commit: faa505b, Tag: null, Version: 0.0.0-preview.0, Height: 34 }.
  MinVer: Backtracking to 3c0633f (height 20) and following path through last parent 747ef5a (height 21)...
  MinVer: History converges from 0f35453 (height 24) back to previously seen commit 8dc52dc (height 25). Abandoning path.
  MinVer: 39 commits checked.
  MinVer: No commit found with a valid SemVer 2.0 version prefixed with ''. Using default version 0.0.0-preview.0.
  MinVer: Using { Commit: faa505b, Tag: null, Version: 0.0.0-preview.0, Height: 34 }.

Итак, подведем итог:

  1. Как настроить суффикс версии для MinVer?
  2. Что означает ноль {MinVerDefaultPreReleasePhase}. 0 . {Commits} представляют?
  3. Как рассчитывается / определяется высота фиксации?

Третий вопрос подводит меня к версиям NuGet и разделу о FileVersionAssembly, в частности к Revision-части номера версии. Но я оставляю это для другого вопроса.

Примечание Я пытался добавить тег minver, но не смог из-за низкой репутации:)

Спасибо

Йоаким

1 Ответ

2 голосов
/ 24 февраля 2020
  1. Как настроить суффикс версии для MinVer?

Я предполагаю, что "суффикс версии" относится к предварительным идентификаторам, Вы не можете настроить все из них, только предварительную фазу по умолчанию, которую вы уже делаете с MinVerDefaultPreReleasePhase.


Что представляет собой ноль {MinVerDefaultPreReleasePhase} .0. {Commits}?

Это дозорное значение, представляющее промежуточные версии перед выпуском следующей версии. Имейте в виду, что фундаментальное предположение в MinVer заключается в том, что вы маркируете перед выпуском, поэтому вы никогда не выпустите одну из этих версий. Например, текущая фиксация может быть построена 0.0.0-preview.0.34. Когда вы захотите выпустить свой первый предварительный просмотр, вы пометите коммит с помощью 1.0.0-preview.1, и MinVer внедрит эту версию в ваши сборки и пакеты.


Как рассчитывается / определяется высота коммита?

Это объясняется в "Как это работает" :

Вы заметит, что MinVer добавляет другой номер к идентификаторам предварительной версии, когда текущая фиксация не помечена. Это число коммитов с момента последнего тега или, если тег не найден, с момента root коммита. Это известно как «высота». Например, если последний найденный тег равен 1.0.0-beta.1, на высоте 42 фиксации, рассчитывается версия 1.0.0-beta.1.42.

и из FAQ :

Что если история расходится, а затем снова сходится до того, как будет найден последний тег (или root commit)?

MinVer будет использовать высоту на первом пути, по которому следует история расходится. Пути следуют в том же порядке, в котором родители фиксации хранятся в git. Первый родительский элемент - это фиксация ветви, которая была текущей ветвью при выполнении слияния. Оставшиеся родители хранятся в том порядке, в котором их ветви были указаны в команде слияния.

В мучительных подробностях вы также можете увидеть , как MinVer просматривает историю :

Можно ли получить выходные данные журнала, чтобы увидеть, как MinVer рассчитывает версию?

Да! MinVerVerbosity может быть установлен на тихий, минимальный (по умолчанию), нормальный, подробный или диагностика c.

На уровне диагностики c вы увидите, как MinVer просматривает историю коммитов, в мучительных деталях.

...