Git'ten telif hakkı tarih aralığını otomatik olarak güncelle?


10

Yazarken, 2012'ye 10 gün kalacağız. Bahse girerim, birçok programcı kaynak dosyalarının üstündeki telif hakkı dizesini aşağıdaki gibi düzenler:

// Copyright 2008, 2010-2012 Some Company Unlimited

Sürüm kontrol sisteminiz dosyaların ne zaman değiştirildiğini bilir, bu nedenle bu dizeleri yazmanıza veya yeniden yazmanıza yardımcı olabilir. Yani sorum: her dosya için git günlüklerini inceleyebilecek ve böyle bir dize çıktısı (veya daha iyi ekleme) yapabilen bir komut dosyası var mı?

Git'i birincil ilgi alanı olarak kullanıyorum, ancak bu tür komut dosyalarının diğer sistemler için var olup olmadığını bana bildirin.

Güncelleme:

Bunu yapan bir komut dosyasına ihtiyacımız var:

  • Tüm kaynak dosyaları çalışma kopyamızda yürür
  • Mevcut telif hakkı dizesini bulur ve yılları tanımlar, örneğin 2007,2009-2011 {2007, 2009, 2010, 2011}
  • Bahsedilmeyen her yıl için 1 Ocak ile 31 Aralık (veya bugünkü yıl ise bugün) arasında farklılık gösterir. Farkı inceleyin ve telif hakkı dizesinde söz etmeye değer olup olmadığına karar verin
  • Yeni telif hakkı dizesi ekle.

1
Doğru anlarsam, tarih yine de isteğe bağlıdır. Yine de iyi bir soru. +1.
Makspm

Tarih yasal olarak önemli değil ama dosyalara ne zaman dokunduğunu görmek ilginç. Bu satırı tüm kaynak dosyalarda doğru ve otomatik olarak ayarlamak için çalıştırabileceğim bir komut dosyası varsa, bu konuda daha fazla düşünmeye gerek yoktur!
Paperjam

2
Otomatik olarak oluşturulan bir telif hakkı bildiriminin yasal önemini merak ediyorum. Güncellenen bildirimin kendisi telif hakkıyla korunmaz, bu nedenle yeni yaratıcı çalışma eklenmeden telif hakkı üzerinde 1 yıllık bir uzantı talep edersiniz.
David Thornley

İyi nokta @David. Sanırım böyle bir araç kendi taahhütlerini göz ardı etmek zorunda kalacaktı. Belki de yeni içerik (örneğin, metin silme, küçük değişiklikler, yeniden adlandırmalar, yeniden biçimlendirme, vb.)
Yazmayan

Asıl soru şu an 70/95/120 yıl kodunuzu önemseyen var mı?
Nick T

Yanıtlar:


3

TL; DR

Endişelenme! Yılı zamanında güncellemediyseniz proje üzerindeki telif hakkınızın süresi dolmaz! Güvendesiniz - bu şekilde çalışmıyor.

Uzun versiyon:

Telif hakkı uyarısındaki tüm yıl sayılarının, aralığı değil, telif hakkının başladığını gösterdiğinden eminim. Bir yıl eklerseniz, başlangıç ​​değil, bitiş devam eder. Yalnızca yeni içeriğin başlangıç ​​yılını belirtmek için yeni içerik (yeni modüller gibi) eklerseniz kullanırsınız. Opsiyoneldir, ancak tamamen yeni modüller veya eksiksiz bir tasarım değişikliği gibi büyük değişiklikler için kullanılmalıdır.

Telif hakkının süresi, bildiriminizde geçen yıldan sonra sabit sayıda yıldan (ülkenizdeki yasalara bağlı olarak) geçmelidir.

Bu nedenle, kaynak başlıklarını dikkatlice güncellemek için bir neden göremiyorum.

DÜZENLE:

Mesele şu ki, genellikle yeterince önemli olan değişiklikler tamamen yeni kaynak dosyaları veya eskilerinin yeniden uygulanmasını içerir. Bu nedenle, yeni yılı her zaman yeni kaynak dosyalarının başlıklarında kullandığınız sürece. Güncellemeyi yapmak için her bir dosyadan geçmeye gerek yoktur. Aslında, manuel değişiklik gerektiren tek şey, lisans metninin kendisinde veya benioku dosyasında tarih aralığına sahip olmanızdır.

Feragatname: Ben programcıyım, avukat değilim.


Bir dosyada önemli bir değişiklik yaptığınızda bir yıl / büyütme aralığı eklemelisiniz. Yani raason orada. Sorun şu ki, otomatik olmamalı - git değişikliğin ne zaman önemli olduğunu söyleyemez.
otlak

@ herby: Cevabımda bir açıklama ve yorumunuzun cevabını düzenledim.
Goran Jovic

IANAL, ancak AFAIK, telif hakkının sona erme tarihi, hayatta kalan son yazarın ölüm tarihine dayanmaktadır. Yaratılış tarihi yalnızca bir kişi işinizde önceki teknikle ilgili iddialarda bulunduğunda ilgi çekicidir.
tdammers

@tdammers: IANAL, ancak IIRC'nin tüzel kişilerin telif hakkına sahip olduğu ülkelerde tüzel kişinin sahip olduğu bir telif hakkının oluşturulma tarihine göre süresi dolmaktadır. Yazılımın telif hakkının şirket tarafından mı yoksa onu yazan gerçek çalışanlar tarafından mı tutulduğu belirli bir yargı alanına bağlıdır (IIRC ABD yasası, telif hakkı kendisinin atanmasına izin verirken, çoğu Avrupa kanunu yalnızca telif hakkı fiziksel yazarlar tarafından tutulurken münhasır haklara izin verir) ve iş sözleşmesi (telif hakkı mümkün olduğunda atanmak zorunda değildir).
Jan Hudec

1

her dosya için git günlüklerini inceleyip böyle bir dize çıktısı (veya daha iyi ekleme) yapabilen bir komut dosyası var mı?

Bu bir komut dosyası değil, bu görev için kullanabileceğiniz Git özelliği : bulaşma / temizleme filtresi çifti


-2

Hayır, git dosyaların ne zaman değiştirildiğini bilmiyor.

Git kesinleştirme nesnesi, belirli bir noktadaki tüm dosyaların içeriğini tanımlar. Aynı içerik, ilgisiz olsa bile başka bir işlemde kolayca görünebilir. Bunlardan birini daha önemli kılacak hiçbir şey yok. Bu yüzden cevap belirsiz olabilir, ancak çoğu zaman olmayacaktır.


Hmmm ... git yazdığım tarihi nasıl biliyor git log?
Paperjam

@paperjam: zaman bilir kaydedilmesini yaratıldı. Yazdığınızda git log, taahhütleri yürüyor, bu yüzden elbette tarihlerini biliyor. Ancak, hangi dosyanın belirli bir sürümünü getirdiğini bilemeyebilir, çünkü birden fazla olabilir.
Jan Hudec

Erişim kontrol bitlerini bloba kaydeder, böylece o noktada değiştirme tarihini de kaydedebilir. Ama emin değilim.
Tamás Szelei

@ TamásSzelei: Hayır, damla tam olarak "damla" kelimesi, yeni satır ve içeriktir. Bu kadar. Bir isim bile değil. Bir ağaç, işaret ettiği lekeler ve alt ağaçların adı, türü ve yürütülebilir bitine sahiptir. Ama bu hala tamamen tarih dışı. Bu kasıtlı ve tasarım gereğidir.
Jan Hudec

1
Burada OP'ın cevabı extrapolating olabilir ama yapıldı kesinleştirme ve ne zaman konular, bakış bir salınım noktasından olduğunu tek şey olduğunu düşünüyorum değil dosya son dokundu tam olarak ne zaman. Sadece taahhüt edilmezse ve birleştirilmezse, serbest bırakılmaz. Bu nedenle git log --follow [filename] | grep -m 1 Date, en son tarihi elde etmek için neden basit bir şey yapmak yeterlidir.
Ocak'ta Spoike
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.