Während ich schreibe, sind wir 10 Tage im Jahr 2012. Ich wette, viele Programmierer bearbeiten die Copyright-Zeichenfolge oben in ihren Quelldateien wie folgt:
// Copyright 2008, 2010-2012 Some Company Unlimited
Ihr Versionskontrollsystem weiß, wann Dateien so sicher geändert wurden, dass es beim Schreiben oder Umschreiben dieser Zeichenfolgen helfen kann. Meine Frage: Gibt es ein Skript, das Git-Protokolle für jede Datei untersuchen und eine solche Zeichenfolge ausgeben (oder besser einfügen) kann?
Ich verwende git, das ist also von primärem Interesse, aber lassen Sie mich wissen, ob solche Skripte für andere Systeme existieren.
Aktualisieren:
Wir brauchen ein Skript, das dies tut:
- Durchläuft alle Quelldateien in unserer Arbeitskopie
- Findet vorhandene Copyright-Zeichenfolgen und identifiziert Jahre, z. B. 2007, 2009-2011 wäre {2007, 2009, 2010, 2011}
- Unterschiedlich für jedes Jahr, das nicht erwähnt wird, zwischen dem 1. Januar und dem 31. Dezember (oder heute, wenn das aktuelle Jahr). Untersuchen Sie diff und entscheiden Sie, ob es eine Erwähnung in der Copyright-Zeichenfolge verdient
- Fügen Sie eine neue Copyright-Zeichenfolge ein.
Antworten:
TL; DR
Mach dir keine Sorgen! Ihr Urheberrecht an dem Projekt erlischt nicht, wenn Sie das Jahr nicht rechtzeitig aktualisiert haben! Sie sind in Sicherheit - so funktioniert es nicht.
Lange Version:
Ich bin mir ziemlich sicher, dass alle Jahreszahlen im Copyright-Hinweis den Beginn des Copyright angeben und nicht den Bereich. Wenn Sie ein Jahr hinzufügen, bedeutet dies die Fortsetzung des Starts und nicht des Endes. Sie verwenden es, wenn Sie neue Inhalte hinzufügen (wie neue Module), um das Startjahr nur für diese neuen Inhalte anzugeben. Es ist optional, sollte jedoch für große Änderungen verwendet werden, z. B. für ganz neue Module oder eine komplette Überarbeitung des Designs.
Das Urheberrecht sollte nach einer festgelegten Anzahl von Jahren (abhängig von den Gesetzen in Ihrem Land) nach dem letzten Jahr in Ihrer Mitteilung ablaufen.
Daher sehe ich keinen Grund, die Quell-Header überhaupt zu aktualisieren.
BEARBEITEN:
Die Sache ist, dass Änderungen, die wesentlich genug sind, normalerweise völlig neue Quelldateien oder eine Neuimplementierung alter Dateien beinhalten. Solange Sie also immer das aktuelle Jahr in den Headern neuer Quelldateien verwenden, geht es Ihnen gut. Es ist überhaupt nicht erforderlich, jede einzelne Datei zu durchlaufen, um das Update durchzuführen. Das einzige, was eine manuelle Änderung erfordert, ist, wenn Sie einen Datumsbereich im Lizenztext selbst oder in der Readme-Datei haben.
Haftungsausschluss: Ich bin Programmierer und kein Anwalt.
quelle
Es ist an sich kein Skript, sondern eine Git- Funktion, die Sie für diese Aufgabe verwenden können: Smudge / Clean-Filterpaar
quelle
Nein, git weiß nicht, wann Dateien geändert wurden.
Das Git-Commit-Objekt definiert einfach den Inhalt aller Dateien an einem bestimmten Punkt. Der gleiche Inhalt kann leicht in einem anderen Commit angezeigt werden, auch in einem anderen. Es gibt nichts, was einen von ihnen wichtiger machen könnte. Die Antwort könnte also mehrdeutig sein, wird es aber oft nicht.
quelle
git log
?git log
, werden die Commits durchlaufen, sodass das Datum natürlich bekannt ist. Es ist jedoch möglicherweise nicht bekannt, durch welches Commit eine bestimmte Version der Datei eingeführt wurde, da möglicherweise mehrere vorhanden sind.git log --follow [filename] | grep -m 1 Date
es ausreicht, um das neueste Datum zu erhalten?