P.S. можно конечно и дальше возиться с таблицей в бд, к ней прикрутить Elasticsearch и индексировать эти логи
Так эти системы и используют Эластик.
Логи в эластик можно конечно кидать текстом, или по пути хотя бы немного парсить по тегам. А можно кидать сразу структурированные JSON, с тегами по приложению, хосту, типу сообщения и потом строить запросы или графики в кибане
У гита есть pre-commit хук и post-commit хук. В этом плане гит может ВООБЩЕ ВСЕ.
Можно в прекоммит хук добавить команду, которая смотри какие файлы изменились и именно в них выполнит sed для вставки новой даты.
Я бы сделал даже так.
Скрипт, который делает git commit -a -m "regular update", повесить на расписание. Раз в день, 4 раза в день на выбор.
В прекоммит хук добавил бы команду, которая во все файлы которые попадают в этот коммит (измененные) через sed перезаписывает дату (дату можно брать даже из статуса файла) и может даже версию коммита.
Таким образом при обычном редактировании файла любым способом, в ближайшее расписание он будет помечен новой версией, и закоммичен в историю.
С# и java очень похожи.
Есть ощущение, что тебе С# тоже может не понравиться из-за этого.
Синтаксис языка - обычно самое простое и оно не то, чтобы легко дается, оно вообще не должно представляьт сложностей. Это как букварь.
Сложности - это понимание всех типов данных и понимание где какой лучше использовать, затем ООП, библиотеки, паттерны и технологии (отдельные пласты знаний, например работа с сокетами и сетью в целом, работа с базами данных, работа с тем же JSON/XML, навыки настройки и запуска приложения на виртуалке/в контейнере и так далее.
Синтаксис занимает очень маленький объем знаний по сравнению с ним, поэтому на уровне недоджуниор вообще почти не важно на чем писать, ибо базовый синтаксис по большей части логичен и похож во всех языках. А вот нюансы....
А вообще интересно, буду знать что SVN/CVS/RCS такое умеют, спасибо.
Нет, такое они тоже умели при коммите, а не просто при редактировании.
Просто были переменные, которые можно положить прямо в файл и при коммите менялся текст.
Нет, там ничего не сказано, кроме того что
"файлы в разных местах"
"я же уже говорил".
То, что файлы в разных местах легко решается ссылками.
зачем нужны маркеры также не объяснено, кроме как "хотелось бы", но в системе контроля версий совершенно несложно смотреть маркер через git log или при коммите добавить в файл
То есть вы не поясняете какую именно проблему вы хотите решить маркерами, поэтому придумали себе собственное видение как проблема должна быть решена, и даже не смотрите на другие способы, которыми подобные проблемы решаются в мире.
В git также есть git-hooks, в который можно добавить скрипт с тем же sed, чтобы замещать часть текста и добавлять таймстамп или версию или любой текст при коммите.
На крайняк можно сделать скрипт, который запускает редактор, а потом команду, которая обновляет текст в файле.
для перл тоже не может работать, разве что suid ставится на сам perl исполняемый файл, но это прям большая проблема, ибо можно тогда через перл хакнуть и запустить что-нибудь от рута, поэтому suidperl и убрали.
то есть папка, где находится скрипт - с нее и начинается.
замените "find $dir" на "find ."