Au moment où j'écris, nous sommes dans 10 jours en 2012. Je parie que de nombreux programmeurs modifient la chaîne de copyright en haut de leurs fichiers source pour quelque chose comme:
// Copyright 2008, 2010-2012 Some Company Unlimited
Votre système de contrôle de version sait quand les fichiers ont été modifiés, il peut donc sûrement aider à écrire ou réécrire ces chaînes. Donc, ma question: existe-t-il un script qui peut examiner les journaux git pour chaque fichier et produire (ou mieux insérer) une chaîne comme celle-ci?
J'utilise git donc c'est d'un intérêt primordial mais faites-moi savoir si de tels scripts existent pour d'autres systèmes.
Mise à jour:
Nous avons besoin d'un script qui fait ceci:
- Parcourt tous les fichiers source dans notre copie de travail
- Localise la chaîne de droits d'auteur existante et identifie les années, par exemple 2007,2009-2011 serait {2007, 2009, 2010, 2011}
- Pour chaque année non mentionnée, diff entre le 1er janvier et le 31 décembre (ou aujourd'hui si l'année en cours). Examinez diff et décidez si cela mérite une mention dans la chaîne du droit d'auteur
- Insérez une nouvelle chaîne de copyright.
Réponses:
TL; DR
Ne t'inquiète pas! Votre droit d'auteur sur le projet n'expirera pas si vous n'avez pas mis à jour l'année à temps! Vous êtes en sécurité - cela ne fonctionne pas de cette façon.
Version longue:
Je suis à peu près sûr que tous les chiffres de l'année dans l'avis de droit d'auteur indiquent le début du droit d'auteur et non la plage. Si vous ajoutez une année, cela signifie la continuation du début et non la fin. Vous l'utilisez si vous ajoutez du nouveau contenu (comme de nouveaux modules) pour indiquer l'année de début pour ce nouveau contenu uniquement. Il est facultatif mais doit être utilisé pour des modifications importantes, comme de nouveaux modules entiers ou une refonte complète de la conception.
Le droit d'auteur doit expirer après un nombre d'années fixe (qui dépend des lois de votre pays) après la dernière année de votre notification.
Donc, je ne vois aucune raison de mettre à jour activement les en-têtes de source.
ÉDITER:
Le fait est que généralement les modifications suffisamment importantes impliquent des fichiers source complètement nouveaux ou une réimplémentation des anciens. Donc, tant que vous utilisez toujours l'année en cours dans les en-têtes des nouveaux fichiers source, tout va bien. Il n'est pas nécessaire de passer par chaque fichier pour effectuer la mise à jour. En fait, la seule chose qui nécessite une modification manuelle est si vous avez une plage de dates dans le texte de la licence lui-même ou dans le fichier Lisez-moi.
Avertissement: je suis un programmeur, pas un avocat.
la source
Ce n'est pas un script en soi, mais la fonctionnalité Git , que vous pouvez utiliser pour cette tâche: tache / filtre propre paire
la source
Non, git ne sait pas quand les fichiers ont été modifiés.
L'objet Git commit définit simplement le contenu de tous les fichiers à un point spécifique. Le même contenu peut facilement apparaître dans un autre commit, même sans rapport. Il n'y a rien pour rendre l'un d'entre eux plus important. La réponse peut donc être ambiguë, mais ce n'est souvent pas le cas.
la source
git log
?git log
, il parcourt les commits, alors bien sûr, il connaît leur date. Mais il peut ne pas savoir quel commit a introduit une version particulière du fichier, car il peut y en avoir plusieurs.git log --follow [filename] | grep -m 1 Date
cela suffirait pour obtenir la dernière date.