Я пытаюсь использовать nodegit для обработки git как db для контента. Таким образом, я пишу функции для доступа к контенту в репо. Я могу получить файл blob и другую информацию об определенном файле, но я изо всех сил пытаюсь получить информацию о временной отметке.Используя nodegit, как я могу найти дату, когда данный файл был последним обновлен в git repo?
Я хотел бы получить 1) дату создания файла и 2) дату последнего обновления. Но пока я не понял, как это возможно.
Для того, чтобы получить файл, мне нужно выполнить следующие шаги:
1) Получить последнюю Commit
с помощью getMasterCommit
.
2) Из Commit
получить файл TreeEntry
используя getEntry
.
3) С TreeEntry
получите различные метаданные, а затем получите Blob
с getBlob
.
4) Из Blob
выберите другие метаданные и исходный текст файла.
Беда в том, что единственное место, где я могу найти дату, которую я нашел, - это номер Commit
, который имеет функцию date
. Это может помочь получить последнюю обновленную дату, но на самом деле это не полезно, потому что она просто возвращает дату Commmit
(очевидно!), И все же неясно, что файл был обновлен для этого фиксации.
Я также хотел бы иметь возможность создать дату для данного файла. Я могу представить, что это можно было бы получить, выполнив поиск в истории фиксации данных TreeEntry, но мне пока не ясно, как это можно сделать. Фактически, возможность поиска по истории фиксации данного файла может быть тем, что здесь необходимо. Но я не мог понять, возможно ли это.
Может ли кто-нибудь дать руководство здесь?
Я просмотрел этот код. Сбивать с толку. Почему 'fileHistoryWalk' вызывается в файл несколько раз, сначала в строке 49, а затем снова в строке 34? Почему этого недостаточно, чтобы рассматривать исходные результаты вызова 'fileHistoryWalk' как историю файла? – fraxture
Я считаю, что это делается в партиях 500, похоже, что API требует максимального количества. Я бы немного экспериментировал с этим, чтобы узнать, достает ли он то, что вы хотите. – yelsayed