How to efficiently generating the diffstat?
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 20/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- git, python
- Domínio
- developer-experience, tooling
Direção de pesquisa
Comece com o loop Python sobre self.__raw_commit.parents e os pontos de entrada tree.diff_to_tree e diff.stats; em seguida, compare seu objetivo com git log --stat. Determine se pygit2 ou libgit2 expõe uma maneira mais eficiente de obter inserções, exclusões e arquivos alterados; considera-se concluído quando a abordagem for identificada e produzir valores de diffstat equivalentes.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Hi,
I need some help to efficiently generating the diffstat. I would like to get the number of lines added and deleted from one commit to another, like the following command does:
git log --stat
I wrote the following code, but it is pretty slow.
for raw_parent in self.__raw_commit.parents:
diff = self.__raw_commit.tree.diff_to_tree(raw_parent.tree)
self._stats.insertions += diff.stats.insertions
self._stats.deletions += diff.stats.deletions
self._stats.files_changed += diff.stats.files_changed
Do you know a better way to capture this information?
Best regards,
- Linguagem predominante
- Python
- Estrelas
- 1.7k
- Forks
- 408
- Merge médio
- 2d 57min
- PRs com merge (30d)
- 7
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de libgit2/pygit2
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
-
merge_bases not wrapped Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
Todas as issues de libgit2/pygit2
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
zostera/django-bootstrap4#894 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
use-agent-os/agent-os#3276 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
zephyrproject-rtos/zephyr#119726 ·
-
area/auth bug comp/agent P3 platform/discord type/security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
NousResearch/hermes-agent#117848 ·