स्वचालित रूप से कॉपीराइट तिथि सीमा से अद्यतन करें?


10

जैसा कि मैंने लिखा है, हम 2012 में 10 दिन रहे हैं। मुझे यकीन है कि कई प्रोग्रामर अपने स्रोत फ़ाइलों के शीर्ष पर कॉपीराइट स्ट्रिंग को कुछ इस तरह संपादित कर रहे हैं:

// Copyright 2008, 2010-2012 Some Company Unlimited

आपके संस्करण नियंत्रण प्रणाली को पता है कि जब फाइलों को संशोधित किया गया था तो निश्चित रूप से यह इन तारों को लिखने या फिर से लिखने में मदद कर सकता है। तो मेरा सवाल: क्या कोई स्क्रिप्ट है जो प्रत्येक फ़ाइल और आउटपुट (या बेहतर प्रविष्टि) के लिए गिट लॉग की जांच कर सकती है जैसे कि एक स्ट्रिंग?

मैं git का उपयोग कर रहा हूं इसलिए यह प्राथमिक हित है लेकिन मुझे बताएं कि क्या ऐसी स्क्रिप्ट अन्य प्रणालियों के लिए मौजूद है।

अपडेट करें:

हमें एक स्क्रिप्ट की जरूरत है जो ऐसा करती है:

  • हमारी काम करने वाली कॉपी में सभी स्रोत फ़ाइलों को चलाता है
  • मौजूदा कॉपीराइट स्ट्रिंग का पता लगाता है और वर्ष 2007,2009-2011 की पहचान करता है जैसे {2007, 2009, 2010, 2011}
  • प्रत्येक वर्ष के लिए जिसका उल्लेख नहीं किया गया है, 1 जनवरी और 31 दिसंबर के बीच (या आज वर्तमान वर्ष) के बीच अंतर करें। जांच करें और तय करें कि क्या यह कॉपीराइट स्ट्रिंग में उल्लेख के योग्य है
  • नई कॉपीराइट स्ट्रिंग डालें।

1
अगर मैं सही तरीके से समझूं, तो तारीख वैसे भी वैकल्पिक है। अच्छा सवाल है, हालांकि। +1।
मैक्सएम

मुझे पता है कि तारीख कानूनी रूप से महत्वपूर्ण नहीं है, लेकिन यह देखना दिलचस्प है कि फाइलें कब छपी थीं। यदि कोई स्क्रिप्ट थी तो मैं इस लाइन को सही और स्वचालित रूप से सभी स्रोत फ़ाइलों पर सेट करने के लिए चला सकता था, तो इस बारे में और अधिक सोचने की आवश्यकता नहीं है!
पेपरजाम

2
मैं स्वत: उत्पन्न कॉपीराइट नोटिस के कानूनी महत्व के बारे में सोच रहा हूँ। अपडेट किया गया नोटिस स्वयं कॉपीराइट करने योग्य नहीं है, इसलिए आप नए रचनात्मक कार्य के बिना कॉपीराइट पर 1 साल के विस्तार का दावा कर रहे हैं।
डेविड थोरले

अच्छी बात है @ दाविद। मुझे लगता है कि इस तरह के किसी भी उपकरण को अपने स्वयं के कमिट्स को अनदेखा करना होगा। शायद यह भी कि नई सामग्री (जैसे पाठ विलोपन, छोटे परिवर्तन, renamings, reformattings, आदि)
टाइप

असली सवाल यह है कि क्या कोई आपके कोड के बारे में 70/95/120 साल से ध्यान रखेगा?
निक टी

जवाबों:


3

टी एल; डॉ

चिंता मत करो! यदि आपने समय पर अपडेट नहीं किया तो प्रोजेक्ट पर आपका कॉपीराइट समाप्त नहीं होगा! आप सुरक्षित हैं - यह उस तरह से काम नहीं करता है।

दीर्घ संस्करण:

मुझे पूरा यकीन है कि कॉपीराइट नोटिस में सभी वर्ष संख्याएँ कॉपीराइट की शुरुआत को दर्शाती हैं न कि रेंज को। यदि आप एक वर्ष जोड़ते हैं तो इसका मतलब है कि शुरुआत की निरंतरता, अंत नहीं। यदि आप केवल उस नई सामग्री के लिए शुरुआती वर्ष को इंगित करने के लिए नई सामग्री (जैसे नए मॉड्यूल) जोड़ते हैं, तो आप इसका उपयोग करते हैं। यह वैकल्पिक है लेकिन इसे बड़े बदलावों के लिए इस्तेमाल किया जाना चाहिए, जैसे कि पूरे नए मॉड्यूल या पूर्ण डिजाइन मेकओवर।

आपके नोटिस में अंतिम वर्ष के बाद निर्धारित संख्या वर्षों (जो आपके देश में कानूनों पर निर्भर करता है) के बाद कॉपीराइट समाप्त हो जाना चाहिए।

इसलिए, मुझे स्रोत हेडर को व्यस्त रूप से अपडेट करने का कोई कारण नहीं दिखता है।

संपादित करें:

बात यह है कि आम तौर पर जो बदलाव होते हैं, वे पूरी तरह से नए स्रोत फ़ाइलों या पुराने लोगों के पुन: कार्यान्वयन में शामिल होते हैं। इसलिए, जब तक आप हमेशा चालू वर्ष का उपयोग नए स्रोत फ़ाइलों के हेडर में करते हैं, आप ठीक हैं। अपडेट करने के लिए हर एक फाइल से गुजरने की जरूरत नहीं है। वास्तव में, केवल एक चीज जिसे मैन्युअल परिवर्तन की आवश्यकता होती है, यदि आपके पास लाइसेंस पाठ में स्वयं या रीडमी फ़ाइल में दिनांक सीमा है।

डिस्क्लेमर: मैं एक प्रोग्रामर हूं, वकील नहीं।


जब भी आप फ़ाइल में पर्याप्त परिवर्तन करते हैं, तो आपको एक वर्ष / विस्तार रेंज जोड़ना चाहिए। तो रासन है। समस्या यह है, यह स्वचालित नहीं होना चाहिए - परिवर्तन पर्याप्त होने पर बता नहीं सकता।
उसके बाद

@herby: मैंने अपने जवाब में एक स्पष्टीकरण और आपकी टिप्पणी का उत्तर दिया।
गोरान जोकोव

IANAL या तो, लेकिन AFAIK, कॉपीराइट की समाप्ति तिथि अंतिम जीवित लेखक की मृत्यु तिथि पर आधारित है। निर्माण की तारीख केवल ब्याज की है जब कोई आपके काम पर पूर्व कला का दावा करता है।
तदमर्स

@tdammers: IANAL या तो, लेकिन उन देशों में IIRC, जहां कानूनी व्यक्ति कॉपीराइट का निर्माण कर सकते हैं, कानूनी व्यक्ति द्वारा आयोजित कॉपीराइट का निर्माण की तारीख के आधार पर समाप्ति होती है। चाहे सॉफ्टवेयर के लिए कॉपीराइट कंपनी के पास हो या वास्तविक कर्मचारियों ने लिखा हो, यह विशेष अधिकार क्षेत्र पर निर्भर करता है (IIRC अमेरिकी कानून कॉपीराइट को ही असाइन करने की अनुमति देता है, जबकि अधिकांश यूरोपीय कानून केवल अनन्य अधिकारों की अनुमति देते हैं, जबकि कॉपीराइट अभी भी भौतिक लेखकों के पास है) और काम का समझौता (कॉपीराइट को तब नहीं सौंपा जाना चाहिए जब वह कर सकता है)।
जन हुदेक

1

क्या कोई स्क्रिप्ट है जो प्रत्येक फ़ाइल और आउटपुट (या बेहतर प्रविष्टि) के लिए git लॉग की जांच कर सकती है जैसे कि एक स्ट्रिंग?

यह प्रति लिपि नहीं है, लेकिन गिट फीचर है, जिसका उपयोग आप इस कार्य के लिए कर सकते हैं : स्मज / क्लीन फिल्टर पेयर


-2

नहीं, git को पता नहीं है कि फाइलों को कब संशोधित किया गया था।

Git कमिट ऑब्जेक्ट केवल विशिष्ट बिंदु पर सभी फ़ाइलों की सामग्री को परिभाषित करता है। एक ही सामग्री आसानी से एक और प्रतिबद्ध में दिखाई दे सकती है, यहां तक ​​कि असंबंधित भी। उनमें से एक को अधिक महत्वपूर्ण बनाने के लिए कुछ भी नहीं है। तो इसका जवाब अस्पष्ट हो सकता है, हालांकि यह अक्सर नहीं होगा।


हम्म्म ... मैं जब टाइप करता हूँ तो तारीख कैसे पता चलती है git log?
पेपरजाम

@paperjam: यह जानता है कि कमिट्स कब बनाए गए थे। जब आप टाइप करते हैं git log, तो यह चलता है, इसलिए निश्चित रूप से यह उनकी तारीख जानता है। लेकिन यह नहीं पता हो सकता है कि किसने फ़ाइल का विशेष संस्करण पेश किया है, क्योंकि एक से अधिक हो सकते हैं।
Jan Hudec

यह पहुँच नियंत्रण बिट्स को बूँद में सहेजता है, इसलिए यह उस बिंदु पर मोडिफ़िकेशन दिनांक को भी बचा सकता है। लेकिन मुझे यकीन नहीं।
तमसे सजेलेई

@ TamásSzelei: नहीं, बूँद वास्तव में शब्द "बूँद", एक नई पंक्ति और सामग्री है। बस। नाम भी नहीं। एक पेड़ के पास बूँद के लिए नाम, प्रकार और निष्पादन योग्य बिट है और इसे इंगित करता है। लेकिन यह अभी भी पूरी तरह से प्रागैतिहासिक है। यह जानबूझकर और डिजाइन द्वारा है।
जनहुड

1
हो सकता है कि मैं यहाँ ओपी के उत्तर को हटा रहा हो, लेकिन मुझे लगता है कि केवल वही चीज मायने रखती है, जो एक रिलीज के नज़रिए से मायने रखती है, जब कमिट किया गया था और तब नहीं जब फ़ाइल को अंतिम बार छुआ गया था। सीधे शब्दों में कहें तो अगर यह प्रतिबद्ध नहीं है और विलय नहीं है तो यह जारी नहीं होता है। इसलिए git log --follow [filename] | grep -m 1 Dateनवीनतम तिथि प्राप्त करने के लिए जितना सरल होगा उतना कुछ करना।
स्पिकाइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.