"в вашем хранилище"? в вашем хранилище напрямую ?
Это будет называться " расширение ключевого слова ", и это не рекомендуется (как обсуждалось в этом ТАК вопрос )
Помещение метаданных (номер редакции) в данные, хранящиеся в хранилище, может привести к проблемам слияния .
То, что вы видите на SO-страницах, является результатом процесса развертывания, который берет метаданные из SVN (ревизия) и помещает их в сгенерированные HTML-страницы.
GitFaq также не рекомендует его.
Эквивалент номеру ревизии SVN, интегрированному в файлы, развернутые на сервере, будет использовать git description , чтобы получить какое-то «количество коммитов», отображаемое на этапе развертывания. .
Но запись его непосредственно в хранилище будет означать расширение ключевых слов, и ключевое слово un расширение.
Чтобы проиллюстрировать это, давайте посмотрим, что сказал Линус во время первоначального обсуждения этой темы (апрель 2007 г.):
Добавление расширения не просто "сложнее". Это практически невозможно сделать с любым видом исполнения.
Подумайте "git checkout newbranch
".
И подумайте, что мы делаем с файлами (и целыми подкаталогами!), Которые даже не изменились. И, наконец, подумайте, насколько важна эта оптимизация в SCM, подобном git, который поддерживает ветки.
[фундаментальные проблемы, с которыми связано расширение ключевых слов (т.е. переключение ветвей в принципе невозможно сделать без проверки every_single_file с установленным атрибутом "ключевого слова". Есть и другие).
Теперь, расширение не является тривиальным делом (на самом деле это то же самое, что и перевод "CRLF-> LF": технически это тоже просто "расширение"). И это должно работать.
То, как это делает нерасширенность, также нарушает "git diff", поскольку оно в основном всегда заставляет diff игнорировать ключевые слова. Другими словами, когда вы делаете
git diff A..B
и отправьте diff кому-нибудь еще, они никогда не увидят никаких ключевых слов!
Теперь, это, очевидно, удовлетворяет моему требованию, чтобы различия были пустыми, если A и B одинаковы, так что вы должны ожидать, что я буду счастлив.
Но я не счастлив, потому что, если другой человек также использует git, ОН НЕ МОЖЕТ ПРИМЕНЯТЬСЯ
DIFF!
Даже если он находится в точке «А» и, таким образом, получает разность, которая должна применять точно , он получит отклонения, если будут другие изменения вокруг нерасширенного ключевого слова (которое он будет разросся в своем рабочем дереве, конечно!)
См? Ключевые слова просто не могут работать. Они сломаны. Либо вы можете игнорировать их (и не показывать их в diffs), в этом случае diff не работает, либо вы не можете игнорировать их (и показывать их в diffs), в этом случае diff * также broken, просто по-другому.
Единственный здравомыслящий и работоспособный случай - их вообще нет. Любое расширение ключевого слова всегда приводит к проблемам. Вы просто не можете сделать это правильно.