7 Stimmen

Hinzufügen von Git-Notizen zu einem Blob

Ich versuche, einen Anwendungsfall mit Git zu realisieren.

Use Case: Es sollte möglich sein, Metadaten (wie Attribute) zu Git-Artefakten hinzuzufügen.

Wir planen, für jeden Bestandteil ein Git-Repo zu haben, sodass das Anbringen einer Notiz an jedes Commit-Objekt diese Anforderung erfüllen könnte.

Jetzt ist es auch erforderlich, dass wir Metadaten für Dateien innerhalb eines Bestandteils haben (in diesem Fall Git-Repo). Hierzu habe ich versucht, eine Notiz an einen Blob anzufügen, der Teil eines Commits war.

Es akzeptiert die Notiz und sogar das Hochladen der Notizen zum zentralen Repository.

Ist dies eine sichere und zuverlässige Verwendung von Git-Notizen für diesen Anwendungsfall?

9voto

VonC Punkte 1117238

2012: Ja, du kannst git notes auf diese Weise verwenden.

Der Blog-Beitrag "Git-Tipp der Woche: Git Notes" von Alex Blewitt erinnert uns an einige Vorteile und Fallstricke von git notes:

Die Notizen müssen nicht textuell sein, noch müssen sie etwas sein, was sich zusammenführen lässt.
Sie müssen nicht einmal auf dem notes/commits Verweis liegen; du kannst Notizen basierend auf einem beliebigen Verweis erstellen.

Tatsächlich funktioniert so auch Gerrit (über das ich bereits geschrieben habe).
Gerrit speichert seine Überprüfungsinformationen im Git-Repository unter notes/review. Normalerweise wird dies nicht angezeigt (das Git-Log zeigt nur Notizen im notes/commits Refspace an)

  • Git Notes sind im Grunde ein separates 'Branch' des Repository (gespeichert unter .git/refs/notes)

  • Zusammenführungen: Da die Notizdatei im Wesentlichen auf ihrem eigenen Branch ist, wird der Inhalt nicht mit Zusammenführungen zwischen Branches zusammengeführt. Wenn du Git-Notizen zusammenführen möchtest, ist das Befolgen von Schlüssel: Wert auf separaten Zeilen der Weg, um den Git-Notizen-Zusammenführungs-Nirvana zu erreichen.

Der Artikel ""note to self" weist auch darauf hin, dass das Pushen/Pullen von Notizen nicht gerade einfach ist.

Abgesehen von diesen beiden Problemen (Zusammenführen und Pushen) solltest du mit deinem 'git notes' Anwendungsfall in Ordnung sein.


Hinweis: Ab Git 2.39 (Q4 2022) vermeide eine leerzeilige Zeile im Template beim Erstellen neuer Notizen.

Siehe Commit 3c9b01f (16. Nov 2022) von Michael J Gruber (mjg).
(Eingefügt von Junio C Hamano -- gitster -- in Commit 2fe427e, 23. Nov 2022)

notes: leere Zeile im Template vermeiden

Unterzeichnet von: Michael J Gruber
Unterzeichnet von: Taylor Blau

Wenn git notes(man) das Template vorbereitet, fügt es zwischen dem Kommentar-Header und dem Inhalt eine leere Zeile ein:

#
# Schreibe/bearbeite die Notizen für das folgende Objekt:

# commit 0f3c55d
# usw.

Dies ist strukturell falsch, da diese Zeile auch zum Kommentar gehört und entsprechend auskommentiert sein sollte.
Außerdem wirft es einige Positionierungsstrategien von Editoren und Plugins durcheinander und unterscheidet sich von der Art und Weise, wie wir Commit-Templates erstellen.

Ändere dies, um dem Standard von git commit(man) zu folgen:

#
# Schreibe/bearbeite die Notizen für das folgende Objekt:

# commit 0f3c55d

Die Tests bestehen unverändert nach dieser Code-Änderung.

0 Stimmen

Alle progit.org Links sind tot.

1 Stimmen

@AntonStrogonoff Vielen Dank für das Feedback. Ich habe alle defekten Links für diese 10 Jahre alte Antwort wiederhergestellt.

0 Stimmen

Danke! Ich frage mich, ob es sich lohnt, auf Meta ein Problem bezüglich der automatischen Verwendung von Archivlinks anzusprechen...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X