Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.HUSKY
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.HUSKY с датами от 16 Jul 13 10:00:06 до 04 May 24 09:45:34, всего сообщений: 5323
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 4561 из 5323 ========================================= RU.HUSKY =
От   : Nil A                            2:5015/46          03 Nov 21 22:06:32
Кому : Michael Dukelsky                                    03 Nov 21 22:06:32
Тема : Новые мейкфайлы
FGHI : area://RU.HUSKY?msgid=2:5015/46+6182e2bf
На   : area://RU.HUSKY?msgid=2:5020/1042+6182c60a
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.HUSKY?msgid=2:5020/1042+6182e9de
Ответ: area://RU.HUSKY?msgid=2:5025/121+61840288
==============================================================================
Hello, Michael!

Wednesday November 03 2021 20:25, from Michael Dukelsky -> Nil A:

NA>> и руками создать cvsdate.h с датой,
NA>> хотя надо было его засандалить прямо в репу и

MD> Нет, не надо. Он там был и создавал кучу неудобств, так как в него
MD> надо было не забывать записывать новую дату при каждом коммите.

Семён Семёныч, а что мешает сделать cvsdate.h целью для мейкфейла и автогенерить его?

cvsdate.h:
        git log -n 1 --format=format:"char cvs_date[]=\"%cs\"%n" HEAD > $@

MD> Особенно это было неудобно при одобрении пулл реквестов. Поэтому файлы
MD> cvsdate.h теперь создаются во время сборки и туда записывается
MD> максимальная дата коммита данного подпроекта и всех его зависимостей.

Проблема миграции с CVS и им подобных на GIT существует лет нанадцать уже наверное, например, я недавно на работе толпу проектов перевёл из Perforce в GIT.
Обычно там всё сводится к генерации $Id$ метки, которая решается .gitattributes.

MD> С правилами? Научи, как сделать, чтобы в cvsdate.h записать
MD> максимальную дату коммита с помощью .gitattributes с правилами.

Следи за руками.

git clone  https://github.com/huskyproject/huskylib.git huskylib.local
cd huskylib.local
echo 'char cvs_date[]="$Id$";' > cvsdate.h
echo 'cvsdate.h ident' > .gitattributes
git add -f cvsdate.h .gitattributes
git commit -m "cvsdate.h fix"
cd ..
git clone huskylib.local huskylib

% cat huskylib/cvsdate.h
char cvs_date[]="$Id: b161fe756f8179491840ef122f1d0c1afff320b1 $";

Что это, Бэрримор? (с)
Это хешь последнего коммита. Не, ну ведь дата (без времени) последнего коммита - это не совсем уникальный тэг, так?

Чтобы туда попало что-то более похожее на дату - это надо бубен доставать.
Это надо в .gitattributes добавить export-subst, а в cvsdate.h иметь подстроку $Format:%cs$ но тут есть две проблемы
а. Эта подстановка работает, кажись, только для git archive
б. Там остаются баксы вокруг $дата$, хотя кого это колеблет.
Короче, чтобы случилась кашерная замена - это надо наворачивать фильтры, .gitattributes типа cvsdata filter=indent, и делать всякие git config --global filter.indent.clean ..
И надо дать какой-то скрипт, который реально пойдёт и совершит замену.
Ну камон, под разные ос этот скрипт будет выглядеть по-разному, если только ты не хочешь обязать всех иметь perl в рантайме, или ещё какой-то "универсальный" скипт.

Такой гемор, яб просто из мейкфайла одной коммандой git log генерил бы этот файл. Опять же, ты обязываешь, чтобы в рантайме у клиента стоял git. Хотя ты и так уже это требуешь, ведь ты git clone там делаешь подпроектов походу пьесы.

MD> То есть текущая версия называется Darwin, а следующая как называется
MD> (меня интересует uname -s)?

Darwin == MacOS. Просто Эпплы не могут по uname -s так сказать, наверное лицензия не позволяет.

Best Regards, Nil
--- GoldED+/LNX 1.1.5
* Origin: Linux 2.6.32-042stab145.3 (2:5015/46)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.045309 секунды