Gdy piszę, mamy 10 dni do 2012 roku. Założę się, że wielu programistów edytuje ciąg praw autorskich u góry swoich plików źródłowych do czegoś takiego:
// Copyright 2008, 2010-2012 Some Company Unlimited
Twój system kontroli wersji wie, kiedy pliki zostały zmodyfikowane, więc na pewno może pomóc w napisaniu lub przepisaniu tych ciągów. Więc moje pytanie: czy istnieje skrypt, który może sprawdzać dzienniki git dla każdego pliku i wypisywać (lub lepiej wstawiać) taki ciąg znaków?
Używam git, więc to jest najważniejsze, ale daj mi znać, czy takie skrypty istnieją dla innych systemów.
Aktualizacja:
Potrzebujemy skryptu, który to zrobi:
- Przechodzi wszystkie pliki źródłowe w naszej kopii roboczej
- Lokalizuje istniejący ciąg praw autorskich i identyfikuje lata, np. 2007,2009-2011 to {2007, 2009, 2010, 2011}
- Dla każdego roku, który nie jest wymieniony, należy różnicować między 1 stycznia a 31 grudnia (lub dzisiaj, jeśli bieżący rok). Sprawdź diff i zdecyduj, czy jest wart wzmianki w łańcuchu praw autorskich
- Wstaw nowy ciąg praw autorskich.
Odpowiedzi:
TL; DR
Nie martw się! Twoje prawa autorskie do projektu nie wygasną, jeśli nie zaktualizujesz roku na czas! Jesteś bezpieczny - to nie działa w ten sposób.
Długa wersja:
Jestem prawie pewien, że wszystkie numery roku w informacji o prawach autorskich wskazują początek praw autorskich, a nie ich zakres. Jeśli dodasz rok, oznacza to kontynuację początku, a nie końca. Używasz go, jeśli dodajesz nową zawartość (jak nowe moduły), aby wskazać rok początkowy tylko dla tej nowej zawartości. Jest opcjonalny, ale powinien być używany do dużych zmian, takich jak całe nowe moduły lub kompletna zmiana wyglądu.
Prawa autorskie powinny wygasnąć po upływie określonej liczby lat (która zależy od przepisów obowiązujących w Twoim kraju) po ostatnim roku wypowiedzenia.
Więc nie widzę powodu, aby w ogóle zajmować się aktualizowaniem nagłówków źródłowych.
EDYTOWAĆ:
Chodzi o to, że zwykle zmiany, które są wystarczająco istotne, obejmują zupełnie nowe pliki źródłowe lub ponowne wdrożenie starych. Tak długo, jak zawsze używasz bieżącego roku w nagłówkach nowych plików źródłowych, nic ci nie jest. Aby dokonać aktualizacji, nie trzeba przechodzić przez każdy plik. W rzeczywistości jedyną rzeczą, która wymaga ręcznej zmiany, jest posiadanie zakresu dat w samym tekście licencji lub w pliku readme.
Oświadczenie: Jestem programistą, a nie prawnikiem.
źródło
Nie jest to skrypt sam w sobie, ale funkcja Git , której można użyć do tego zadania: smudge / clean filter pair
źródło
Nie, git nie wie, kiedy pliki zostały zmodyfikowane.
Obiekt Git commit po prostu definiuje zawartość wszystkich plików w określonym punkcie. Ta sama treść może łatwo pojawić się w innym zatwierdzeniu, nawet niepowiązanym. Nic nie czyni ważniejszego z nich. Odpowiedź może być dwuznaczna, choć często nie.
źródło
git log
?git log
, chodzi o zatwierdzenia, więc oczywiście zna ich datę. Ale może nie wiedzieć, który zatwierdzenie wprowadził konkretną wersję pliku, ponieważ może istnieć więcej niż jedna.git log --follow [filename] | grep -m 1 Date
wystarczyłoby, aby uzyskać najnowszą datę.