In Subversion gibt es zwei Arten von Eigenschaften:
- Datei-Eigenschaften : Dies sind Eigenschaften, die mit einer Datei verbunden sind. Sie werden überarbeitet, als ob sie Teil der Datei selbst wären.
- Revisionseigenschaften : Dies sind Eigenschaften, die mit einzelnen Revisionen verbunden sind. Von jeder Art von Eigenschaft kann es nur eine pro Revision geben. Sie sind nicht versioniert, so dass beim Ändern einer Revisionseigenschaft die historischen Informationen über die alten Informationen verloren gehen. Aus Sicherheitsgründen können Sie eine Revisionseigenschaft nicht ändern, ohne vorher einen pre-revprop-change-Hook zu erstellen, der dies ermöglicht.
Darüber hinaus gibt es drei spezielle Revisionseigenschaften, die mit jeder Revision verbunden sind und ziemlich wichtig sind:
svn:log
: Dies ist die Übergabemeldung
svn:date
: Dies ist das Datum und die Uhrzeit, zu der die Übertragung durchgeführt wurde.
svn:author
: Dies ist der Benutzer, der die Übertragung vorgenommen hat.
Die Frage ist also, was Sie zu tun versuchen. Wenn Sie einen Kommentar zu einer Datei hinzufügen möchten, können Sie eine Dateieigenschaft zu dieser Datei hinzufügen. Das wird jedoch als Datei-Änderung betrachtet, so dass Sie einen Checkout durchführen müssen, svn pset
und dann eine Übergabe, die eine neue Revision dieser Datei erzeugt.
Wenn Sie einen neuen Kommentar zu einer bestimmten Revision in Ihrem Repository hinzufügen möchten, müssen Sie dafür keine neue Revision erstellen. Allerdings müssen Sie eine pre-revprop-commit
Hook-Datei, mit der Sie diese Änderungen vornehmen können. Sie haben zwei Möglichkeiten, dies zu tun:
- Ändern Sie
svn:log
mit Ihrem Kommentar Dies ist wahrscheinlich der einfachste Weg. Allerdings werden die Änderungen in den Commit-Nachrichten nicht protokolliert, so dass Sie die ursprüngliche Commit-Nachricht dabei verlieren. Der Vorteil ist, dass dieser Kommentar automatisch mit dem svn:log
Befehl.
Zum Beispiel:
$ old_comment=$(svn pget -r 100 -revprop svn:log http://myhost/svn/repos)
$ new_comment="$old_comment
> ================ COMMENT ON REVISION ================
> This was a change needed for a particular customer"
$ svn pset -r 100 --revprop svn:log "$new_comment"
- Sie können auch eine neue Revisionseigenschaft erstellen, die Ihre Kommentare enthält. Zum Beispiel
corp:comment
(Ich verwende corp
zur Kennzeichnung besonderer Eigenschaften meines Unternehmens). Sie können diese Kommentare in der svn log
Nachricht, aber nur im xml-Format.
Zum Beispiel:
$ svn pset --revprop -r 100 foo:comment "This was a change needed for a particular customer" http://host/svn/repos
Wenn Sie nun Ihr Protokoll erstellen, können Sie diesen Kommentar sehen:
$ svn log --with-revprop foo:comment --xml -r 100 http://host/svn/repos
<?xml version="1.0"?>
<log>
<logentry
revision="100">
<revprops>
<property
name="foo:comment">This was a change needed for a particular customer</property>
</revprops>
</logentry>
</log>