Можно ли запустить код из другого тега git в gitpython? - PullRequest
0 голосов
/ 09 апреля 2020

Вот проблема, которую я пытаюсь решить: для списка тегов git (например, tagA, tagB, tagC) я хочу систематически измерять производительность некоторых функций в Python (то есть foo()) против каждого тега, где реализовано foo(). В этом примере имя файла кода, который перебирает теги git, называется benchmark.py.

. Я быстро понимаю, что, если я пытаюсь переключать ветви Git, я теряю контекст внешней программы. который запускает бенчмаркинг (benchmark.py).

По сути, псевдокод того, что я пытаюсь сделать, это:

# this is within benchmark.py

for each git tag 'tagA', 'tagB', 'tagC':
  checkout out the commit corresponding to the tag
  run the method foo() which is contained within the branch
  capture the runtime performance of foo() and record it in benchmark.py

Моя цель - не изменять git контекст где benchmark.py работает. Возможно, есть другой способ сделать это?

[Редактировать]: я встречал GitPython: Как я могу получить доступ к содержимому файла в коммите в Git Python, который, кажется, обеспечивает решение для создания временного местоположения файла из другого коммита. Тем не менее, в моем случае foo() зависит от многих файлов в репо git, поэтому в идеале я хотел бы сделать совершенно отдельную копию репо.

...