Git log с иерархией Json
Проблема в том, что у меня есть эта команда git
git log --pretty=format:'%n{%n%d%n "CommitHash": "%H",%n "Author":
"%an",%n "AuthorEmail": "%ae",%n "Date": "%ad",%n "Message": "%f"%n}'
`вместе с этим я получаю журнал в формате JSON, но мне нужно получить ветви как отцы, а имена коммитов - как дети, и имена этих коммитов должны быть отцами, им соответствующие информация (автор, дата, электронная почта и т. д.....)
Вывод журнала должен быть примерно таким:
[
"Branch or Merge Name":"The Branch or Merge Name"[
"Commit Name":"The Commit Name"{
The commit info......
}
]
]
1 ответ
Я сомневаюсь, что это было бы легко сделать без сценария, учитывая, что коммит может быть частью нескольких ветвей.
Это означает, что для любого коммита из вашего списка, существует не "один отец", а, возможно, несколько.
Обратное изменение модели и наличие для каждого коммита, как дочернего, списка ветвей, частью которого является коммит, имело бы больше смысла.
Посмотрите на этот инструмент http://bit-booster.com/graph.html, они передают вам журнал в формате git log --pretty = '% h |% p |% d' Я пытаюсь сделать диаграмму apache. --pretty = "% H,% P,% D"
% H раскрывается, чтобы показать commitId.
% P раскрывается, чтобы показать родительские идентификаторы фиксации.
% D расширяется, чтобы показать украшения (теги и ветки).
Но с этим есть несколько тонких проблем:
% P будет расширяться до всех родительских коммитов% H (разделенных пробелом), поэтому вам нужно будет запустить вывод через второй скрипт, чтобы лучше нормализовать его в формате, подходящем для D3.
% P может расширяться до 3 или более коммитов (очень редко). Это называется слиянием осьминога!
% D расширяется до списка украшений, разделенных запятыми (метки веток и тегов), и нет ограничений на количество ветвей и тегов, которые может иметь одна фиксация.