Biorąc pod uwagę repozytorium git, muszę wygenerować słownik daty ostatniej modyfikacji kontrolowanej przez każdą z wersji jako unikalny znacznik czasu odwzorowany na ścieżkę do pliku. Potrzebuję daty ostatniej modyfikacji, jeśli chodzi o git - nie systemu plików.Git: jak wyświetlić listę wszystkich plików objętych kontrolą wersji wraz z datą ich autora?
Aby to zrobić, chciałbym uzyskać polecenie git wyświetlające listę wszystkich plików objętych kontrolą wersji wraz z datą autora każdego pliku. Dane wyjściowe z git ls-files
lub git ls-tree -r master
byłyby idealne, gdyby ich dane wyjściowe zawierały sygnatury czasowe w każdym wierszu.
Czy istnieje sposób na uzyskanie tego wyniku z git?
Aktualizacja więcej kontekstu: mam aktualną implementację, która składa się z skrypt Pythona, który dokonuje iteracji każdego pliku źródłowego i pod kontrolą robi git log
na każdej z nich, ale mam znalezieniem że nie skaluje się dobrze . Im więcej plików w repozytorium, tym więcej wywoła git log
połączeń. Więc to doprowadziło mnie do poszukiwania sposobu na zebranie informacji z git przy mniejszej liczbie połączeń (najlepiej 1).
@derekvanvivliet Co masz na myśli przez autora pliku? Może być wielu ludzi, którzy dokonali zatwierdzeń do pliku. –
Niestety git nie ma "winy na drzewie", tj. "' Git winnie '" aby uzyskać dane wyjściowe jak w np. Widok drzewa GitHub. Możesz uzyskać dane dla każdego pojedynczego pliku za pomocą 'git log -1 --tformat = ... --follow = ' z niestandardowym formatem, iterując po 'git ls-tree --names-only -r HEAD', ale to nie będzie szybki. –
@ ansh0l nie plik autor, data autora. Mam na myśli datę ostatniej modyfikacji pliku w kontroli źródła – derekvanvliet