2015-04-29 1 views
0

Я хотел бы получить список всех коммитов для файла/пути, но я не знаю, как это сделать.получить все фиксации файла/пути с прочным

Например, я хочу, чтобы все фиксации файла «test», чтобы получить oid каждой фиксации и благодаря этому oid, я получу blob всей ревизии для этого файла.

Возможно ли это?

Спасибо!

+0

журнала GIT покажут вам фиксации для конкретного пути, вы могли бы использовать это. – cbz

+0

Но ваше решение для git, не прочное – fd80132

+0

В этом случае посмотрите ответы на этот более ранний вопрос: http://stackoverflow.com/questions/21302073/access-git-log-data-using-ruby-rugged-gem – cbz

ответ

1

Мы можем получить все коммиты этим способом:

 tab = [] 
     walker = Rugged::Walker.new(repo) 
     walker.sorting(Rugged::SORT_DATE) 
     walker.push(repo.head.target) 
     walker.each do |commit| 
     if commit.diff(paths: ["path_of_file"]).size > 0 
      tab.push(commit) 
     end 
     end 
+0

Имейте в виду, что этот способ будет проходить через все коммиты во всем репозитории и затем фильтровать путь к файлу - таким образом, он будет линейно масштабироваться до количества фиксаций в вашем репо. – cbz

+0

Да, я знаю, но, к несчастью, это единственное решение, которое я нашел. – fd80132

Смежные вопросы