How to efficiently generating the diffstat?
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 1.7k
- Forks
- 408
- Ø Merge
- 2 T. 57 Min.
- Gemergte PRs (30 T.)
- 7
Beschreibung
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,
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Python-Schleife über self.__raw_commit.parents sowie den Einstiegspunkten tree.diff_to_tree und diff.stats und vergleiche anschließend ihr Ziel mit git log --stat. Ermittle, ob pygit2 oder libgit2 eine effizientere Möglichkeit bietet, Einfügungen, Löschungen und geänderte Dateien abzurufen; abgeschlossen ist die Aufgabe, wenn der Ansatz identifiziert ist und äquivalente diffstat-Werte erzeugt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- git, python
- Bereich
- developer-experience, tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100