Mientras escribo, estamos a 10 días de 2012. Apuesto a que muchos programadores están editando la cadena de derechos de autor en la parte superior de sus archivos de origen para algo como:
// Copyright 2008, 2010-2012 Some Company Unlimited
Su sistema de control de versiones sabe cuándo se modificaron los archivos, por lo que seguramente puede ayudar a escribir o reescribir estas cadenas. Entonces mi pregunta: ¿hay un script que pueda examinar los registros de git para cada archivo y generar (o mejor insertar) una cadena como esa?
Estoy usando git, por lo que es de interés principal, pero avíseme si tales scripts existen para otros sistemas.
Actualizar:
Necesitamos un script que haga esto:
- Recorre todos los archivos de origen en nuestra copia de trabajo
- Localiza la cadena de copyright existente e identifica años, por ejemplo, 2007,2009-2011 sería {2007, 2009, 2010, 2011}
- Para cada año que no se menciona, diferir entre el 1 de enero y el 31 de diciembre (o hoy si es el año actual). Examine diff y decida si vale la pena mencionarlo en la cadena de copyright
- Insertar nueva cadena de copyright.
Respuestas:
TL; DR
No te preocupes ¡Sus derechos de autor sobre el proyecto no caducarán si no actualiza el año a tiempo! Estás a salvo, no funciona de esa manera.
Versión larga:
Estoy bastante seguro de que los números de todos los años en el aviso de copyright indican el inicio del copyright, no el rango. Si agrega un año, significa la continuación del inicio, no el final. Lo usa si agrega nuevo contenido (como nuevos módulos) para indicar el año de inicio solo para ese nuevo contenido. Es opcional, pero debe usarse para grandes cambios, como módulos completamente nuevos o un cambio de diseño completo.
Los derechos de autor deben caducar después de un número fijo de años (que depende de las leyes de su país) después del último año en su notificación.
Por lo tanto, no veo una razón para actualizar los encabezados fuente en absoluto.
EDITAR:
La cuestión es que, por lo general, los cambios que son lo suficientemente importantes implican archivos fuente completamente nuevos o una reimplementación de los antiguos. Entonces, siempre que use el año actual en los encabezados de los nuevos archivos fuente, estará bien. No es necesario pasar por cada archivo para realizar la actualización. En realidad, lo único que requiere un cambio manual es si tiene un rango de fechas en el texto de la licencia o en el archivo Léame.
Descargo de responsabilidad: soy programador, no abogado.
fuente
No es un script per se, sino la función Git , que puede usar para esta tarea: par de filtro borroso / limpio
fuente
No, git no sabe cuándo se modificaron los archivos.
El objeto de confirmación de Git simplemente define el contenido de todos los archivos en un punto específico. El mismo contenido puede aparecer fácilmente en otro commit, incluso uno no relacionado. No hay nada que haga que uno de ellos sea más importante. Por lo tanto, la respuesta puede ser ambigua, aunque a menudo no lo será.
fuente
git log
?git log
, recorre los commits, por lo que, por supuesto, conoce su fecha. Pero puede no saber qué commit introdujo una versión particular del archivo, porque puede haber más de uno.git log --follow [filename] | grep -m 1 Date
sería suficiente para obtener la última fecha.