Saat saya menulis, kami 10 hari memasuki 2012. Saya yakin banyak programmer mengedit string hak cipta di atas file sumber mereka untuk sesuatu seperti:
// Copyright 2008, 2010-2012 Some Company Unlimited
Sistem kontrol versi Anda tahu kapan file diubah sehingga pasti dapat membantu menulis atau menulis ulang string ini. Jadi pertanyaan saya: apakah ada skrip yang dapat memeriksa log git untuk setiap file dan output (atau lebih baik menyisipkan) sebuah string seperti itu?
Saya menggunakan git jadi itu yang menjadi perhatian utama tetapi jangan biarkan saya tahu jika skrip seperti itu ada untuk sistem lain.
Memperbarui:
Kami membutuhkan skrip yang melakukan ini:
- Berjalan semua file sumber dalam copy pekerjaan kami
- Menemukan string hak cipta yang ada dan mengidentifikasi tahun, mis. 2007,2009-2011 adalah {2007, 2009, 2010, 2011}
- Untuk setiap tahun yang tidak disebutkan, beda antara 1 Januari dan 31 Desember (atau hari ini jika tahun ini). Periksa perbedaan dan putuskan apakah layak disebutkan dalam string hak cipta
- Masukkan string hak cipta baru.
Jawaban:
TL; DR
Jangan khawatir! Hak cipta Anda atas proyek tidak akan kedaluwarsa jika Anda tidak memperbarui tahun pada waktunya! Anda aman - tidak bekerja seperti itu.
Versi panjang:
Saya cukup yakin bahwa semua angka tahun dalam pemberitahuan hak cipta menunjukkan awal dari hak cipta bukan kisaran. Jika Anda menambahkan tahun, itu berarti kelanjutan dari awal, bukan akhir. Anda menggunakannya jika Anda menambahkan konten baru (seperti modul baru) untuk menunjukkan tahun awal untuk konten baru itu saja. Ini opsional tetapi harus digunakan untuk perubahan besar, seperti modul baru atau perombakan desain lengkap.
Hak cipta akan kedaluwarsa setelah tahun angka tetap (yang tergantung pada hukum di negara Anda) setelah tahun terakhir dalam pemberitahuan Anda.
Jadi, saya tidak melihat alasan untuk memperbarui header sumber sama sekali.
EDIT:
Masalahnya adalah bahwa biasanya perubahan yang cukup besar melibatkan file sumber yang sama sekali baru atau implementasi ulang yang lama. Jadi, selama Anda selalu menggunakan tahun ini di header file sumber baru Anda baik-baik saja. Tidak perlu apa pun untuk melewati setiap file tunggal untuk melakukan pembaruan. Sebenarnya, satu-satunya hal yang memerlukan perubahan manual adalah jika Anda memiliki rentang tanggal dalam teks lisensi itu sendiri atau dalam file readme.
Penafian: Saya seorang programmer, bukan pengacara.
sumber
Ini bukan skrip, tetapi fitur Git , yang dapat Anda gunakan untuk tugas ini: smudge / clean filter pair
sumber
Tidak, git tidak tahu kapan file dimodifikasi.
Git commit object cukup mendefinisikan konten semua file pada titik tertentu. Konten yang sama dapat dengan mudah muncul di komit lain, bahkan yang tidak terkait. Tidak ada yang membuat salah satu dari mereka lebih penting. Jadi jawabannya mungkin ambigu, meskipun seringkali tidak.
sumber
git log
?git log
, itu berjalan komit, jadi tentu saja tahu tanggal mereka. Tetapi mungkin tidak tahu komit mana yang memperkenalkan versi file tertentu, karena mungkin ada lebih dari satu.git log --follow [filename] | grep -m 1 Date
akan cukup untuk mendapatkan tanggal terbaru.