Timestamp или инкремент версии в тексте при сохранении файла — какие редакторы или IDE так могут?
Нужен простой контроль версий - путём проставления времени сохранения файла или в крайнем случае инкремента числа или версии.
Дело в том, что эти файлы разбросаны по разным местам и обновление возможно только вручную. Возникает путаница версий, приходится сравнивать вручную. Поэтому идеально было бы проставить время (timestamp, но лучше читабельный) в комментарии в начале файла.
Какие редакторы или IDE среды могут такое сделать (встроенные фичи, плагины, макросы)?
Хотелось бы, чтобы дата и время обновлялись автоматически в момент сохранения файла, чтобы не забыть (да и вручную каждый раз это вставлять напрягает).
Василий Банников, Потому что обновление идёт во многих местах через Copy/Paste, вручную и нерегулярно. Именно поэтому важно в самом тексте иметь маркер версии или времени изменения. (Хотя и в обычном коде я бы от такого не отказался - удобно и полезно).
Я уже не один раз порывался попробовать VS Code (и другие MS IDE), но как-то притормаживал - просто подсознательно негативно и с подозрением отношусь к Микрософту, скорее из-за этого.
Алексей Ярков, Человек - существо эмоциональное и большую часть решений принимает не логикой, а эмоциями. Это хорошо знают пиарщики, рекламщики и разного рода журналюги. Стопицот видосиков с трубы, особенно на политическую тему - где там хоть одна обьективная причина хоть чего?
Алексей Ярков, пользовался продуктами MS от MS-DOS 3.30 и QuickBasic до Win7 и VS 2019.
Вот чисто эмоционально бесит, насколько все через жопу и с позиции "нам и нашей программе лучше знать, что тебе нужно".
Видосики не глядел...
Алексей Ярков, Нет, конечно же - бесполезно искать смысл там, где его не может быть :) Я их практически не смотрю, но даже редкие экземпляры показывают, что там :)
Adamos, В DOS еще можно было обьяснить системе "я понимаю, что ты умная, но я тоже не лох, давай-ка делай, что я сказал". А вот нчиная прям с Win 3.1 пошло вот это - "система умнее пользователя" :) причем с каждой новой версией система считает меня все глупее и глупее...
И все-таки непонятно, почему нельзя использовать гит.
Если у вас линукс, то все файлы складываете в каталог с гитом и в ваши "разные места" разбрасываете софтлинки.
Если виндовс - есть хардлинки в пределах одного диска
На крайняк написать скрипт, который из папки с гитом будет копировать файлы в ваши разные места и все.
Нет, там ничего не сказано, кроме того что
"файлы в разных местах"
"я же уже говорил".
То, что файлы в разных местах легко решается ссылками.
зачем нужны маркеры также не объяснено, кроме как "хотелось бы", но в системе контроля версий совершенно несложно смотреть маркер через git log или при коммите добавить в файл
То есть вы не поясняете какую именно проблему вы хотите решить маркерами, поэтому придумали себе собственное видение как проблема должна быть решена, и даже не смотрите на другие способы, которыми подобные проблемы решаются в мире.
В git также есть git-hooks, в который можно добавить скрипт с тем же sed, чтобы замещать часть текста и добавлять таймстамп или версию или любой текст при коммите.
На крайняк можно сделать скрипт, который запускает редактор, а потом команду, которая обновляет текст в файле.
В комментариях пояснение: апдейт файлов возможен только вручную, через Clipboard. Поэтому версии должны маркироваться прямо в тексте.
И вопрос совершенно чёткий и однозначный - посоветовать редактор или IDE с такой возможностью.
Закрывать/запускать редактор/IDE после сохранения каждого файла - геморрой ещё похуже, чем перед сохранением не забыть запустить макрос, модифицирующий версию в тексте. Это должно делаться автоматически при сохранении файла.
Такое умел CVS и до сих пор умеет SVN. Про редакторы или IDE - мне неизвестно.
(Хотя, конечно же вспоминается редактор на ЕС ЭВМ, который в последние 8 позиций строки ставил дату изменения, но там строка должна была быть жестко не шире 72 позиций)
Системы контроля версий не подойдут, т.к. время изменения нужно ставить автоматически при записи файла. А VCS нужно запускать вручную, чтобы она проставила, что можно и макросом делать. Но это не автоматически - можно забыть, и это дополнительное лишнее действие (напрягает).
А вообще интересно, буду знать что SVN/CVS/RCS такое умеют, спасибо.
Да все для того же - для отслеживания, когда было внесено изменение. VCS на ЕС ЭВМ не было :) по этому полю можно было хотя бы дату изменения отследить, потому что тексты были громадные. Самым большим развлечением было искать непарный IF - понятно, что на экране 80х25 строк много не наищещь, печатали преогромнейшие портянки и ручкой отмечали где открылся, где закрылся...
А вообще интересно, буду знать что SVN/CVS/RCS такое умеют, спасибо.
Нет, такое они тоже умели при коммите, а не просто при редактировании.
Просто были переменные, которые можно положить прямо в файл и при коммите менялся текст.
У гита есть pre-commit хук и post-commit хук. В этом плане гит может ВООБЩЕ ВСЕ.
Можно в прекоммит хук добавить команду, которая смотри какие файлы изменились и именно в них выполнит sed для вставки новой даты.
Я бы сделал даже так.
Скрипт, который делает git commit -a -m "regular update", повесить на расписание. Раз в день, 4 раза в день на выбор.
В прекоммит хук добавил бы команду, которая во все файлы которые попадают в этот коммит (измененные) через sed перезаписывает дату (дату можно брать даже из статуса файла) и может даже версию коммита.
Таким образом при обычном редактировании файла любым способом, в ближайшее расписание он будет помечен новой версией, и закоммичен в историю.
pddev, Параметра "размер букв" не было - все буквы были одинакового размера, так как печаталось все это на литерном принтере. Я не нашел, к сожалению фото АЦПУ ЕС 7930, но на фото по ссылке справа у самого края здоровый гроб - это его "старший брат", номер модели уже не помню, у нас они использовался для "чистовой" печати.
Литерный (цепочный) принтер - то же, что печатная машинка, только бьет он одновременно строку текста - 132 позиции. Когда идет печать - стоит грохот, как будто работает дюжина машинисток :)
Отступы, пустые строки, комментарии были, но когда у тебя кода пара тысяч строк и ты где-то в середине добавил IF-ELSE, а компилер тебя шлет в известном направлении - экран 80х25 тут мало чем поможет...
Да, на ЕС ЭВМ было два языка - PL/1 и ассемблер. Но этот ассемблер был не тот, что на х86 - на нем базы данных писали!
(Хотя нет - ещс были КОБОЛ и ФОРТРАН)
pddev, Да... офисные кресла на металлическом основании с мягкой обивкой :) фальшпол машинного зала из металлических плиток - по нему здорово было кататься на этом самом кресле :) Если скажем было лениво идти к "принтеру" (адреса у "принтеров" были 00F и 00E) - можно было к нему подкатиться :)
Магнитофоны в ряд - восемь штук (устройства ввода данных с магнитной ленты - их часто можно найти на фотках). Зачастую все восемь одновременно работали - плотность записи на ленту 32бит/мм, данных туда влезано не больно много. Дисковые пакеты в 29, 100, 300Мб . Последний был столь прорывным технологически, что даже не менялся - так и назывался НИМ - несменяемый информационный модуль.
Автоматически вставлять текущие дату-время при открытии умеет стандартный Notepad в Windows, достаточно добавить в первую строчку файла ".LOG". Правда добавляет он ее не в начало файла, а в конец, и, конечно, он не умеет вставлять комментарии (и даже не знает каким символом обозначается комментарий в используемым вами языке).
Век живи - век учись, спасибо за интересные сведения!
Жаль, что этим не воспользоваться: он добавляет дату всегда с новой строки - придётся редактировать, чтобы заменить старую метку и закомментировать, а это не лучше запуска макроса вручную (хотя плюс, что забыть не удастся - прописывает же при открытии). Но в других применениях это пригодится, спасибо.