реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Вопрос по лицензированию, GNU GPL v2
dxp
сообщение Feb 6 2017, 10:12
Сообщение #16


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (johnshadow @ Feb 6 2017, 14:31) *
У меня из git обычно забирается такой командной, которая выполняется автоматом перед компиляцией:
CODE
git log --pretty=format:"(%ad %h)" --abbrev-commit --date=short -1

результат потом попадает в h-файл. Получается в итоге:
CODE
#define GITHASH "(2017-02-03 db74878)"

в итоге и дату видно и не нужен длинючий hash. По дате можно определить "новизну" билда, а по hash найти конкретный коммит

+1. И совсем дело в командной или не командной разработке. Всё автоматизировано. Кроме того, если версия отдаётся в продакшн, то её (я про git) желательно пометить меткой, в этом случае можно использовать имя метки, которое можно сделать максимально осмысленным.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 6 2017, 11:20
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



спор о том, что лучше PAL или SECAM. Правостороннее движение или левостороннее. На вкус и цвет товарищей нет.

ps
Цитата
#define GITHASH "(2017-02-03 db74878)"
ну вот мне не понятно что было раньше... например 2017-02-03 или 2017-03-02? И во вторых.... как по db74878 найти в гите 734713bc047d87bf7eac9674765ae793478c50d3?
в 3-их: у пользователя (или у наладчика на флешке) есть две сборки "(2017-02-03 db74878)" и "(2017-02-03 df56a87)" - какая свежея?

я пробовал прикрутить контроль версий.... не вкатило.... не понравилось. Системы контроля версий (СКВ) вообще может не быть, а автобилд нужен... да и с автобилдом тоже всё автоматизировано. ведётся журнал ревизий, по номеру билда и дате сборки можно быстро найти нужную ревизию (если есть СКВ).
Цитата
В документации точно так же ведется список фич и пофиксенных багов по билдам и информативность такая же
+1
Go to the top of the page
 
+Quote Post
johnshadow
сообщение Feb 7 2017, 07:21
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-09-08
Пользователь №: 40 477



Цитата(juvf @ Feb 6 2017, 14:20) *
ps ну вот мне не понятно что было раньше... например 2017-02-03 или 2017-03-02?

А как вы в оффлайне определяете такое написание? Например на сроке годности продуктов?
в readme проекта можно указать формат интерпретации даты yyyy-dd-mm или yyyy-mm-dd - для новых
участников проекта. Там же можно указать и стили оформления кода и т.п.
Цитата(juvf @ Feb 6 2017, 14:20) *
И во вторых.... как по db74878 найти в гите 734713bc047d87bf7eac9674765ae793478c50d3?

Уверяю вас - это возможно. Вы же не думаете, что короткий hash создатели git придумали just for fun?
И еще момент - "db74878" это первые символы полного hash.
Цитата(juvf @ Feb 6 2017, 14:20) *
в 3-их: у пользователя (или у наладчика на флешке) есть две сборки "(2017-02-03 db74878)" и "(2017-02-03 df56a87)" - какая свежея?
я пробовал прикрутить контроль версий.... не вкатило.... не понравилось.

Два варианта:
1) выводить в переменную и время. для избегания разночтений - в UTC.
2) в логе git посмотреть полную дату-время коммитов.
Контроль версий, как и баэкапы можно не любить, но жизнь вынуждает их применять... рано или поздно. rolleyes.gif
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 7 2017, 08:12
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(johnshadow @ Feb 7 2017, 12:21) *
А как вы в оффлайне определяете такое написание? Например на сроке годности продуктов?
Ни как. На продуктах пишут 07.02.2017, другого написания не встречал. 2017.07.02 - такое написание не определяется.

Цитата
2) в логе git посмотреть полную дату-время коммитов.
в каком логе? ещё раз... вводная.... наладчик/пользователь поехал на обновление ПО в устройстве. на флешке две прошивки... какая свежея? Нету ни проетка, ни клиента гит, ни инета....

Цитата
в readme проекта можно указать формат интерпретации даты
какое ридми? пользователь должен зайти в эбаут приложения и должен увидеть номер сборки и/или дату и время сборки, и/или номер версии. И должен понять, на сколько программа свежая.

Цитата
Контроль версий, как и баэкапы можно не любить, но жизнь вынуждает их применять... рано или поздно.
вы так говорите, какбудь-то я вас убеждаю не использовать версирование сборок. Я предложил свой вариант. Они ни чем не хуже вашего. По мне, так он удобнее, чем брать его из СКВ. на вскидку.... откройте в хроме chrome://help/ - Версия 55.0.2883.87. Нету ни каких диких хэшей из гита, нет даты... Объясните гуглу, что они не правильно версию пишут, и скажите им Контроль версий, как и баэкапы можно не любить, но жизнь вынуждает их применять... рано или поздно.
По мойму в qip было Версия 2005 build 8095.... Firefox - 51.0.1, FreeCommander XE 2016 Build 715, в нотепад++ версия и время сборки.... во всех программах версия/сборка/время сборки.... привязки к номерам ревизий из СКВ не встречал.... хотя не значит что их нет, и не значит, что это плохой способ... просто мне удобней автобилдом контролировать номера релизов.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
johnshadow
сообщение Feb 7 2017, 09:44
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-09-08
Пользователь №: 40 477



Цитата(juvf @ Feb 7 2017, 11:12) *
просто мне удобней автобилдом контролировать номера релизов.

Вы с этим проектом один работаете? Как без систем контроля версии выполняете модификацию кода?
Т.е. каким образом разделяете релизную копию и копию в которой сейчас вносите изменения?
Цитата(juvf @ Feb 7 2017, 11:12) *
Нету ни каких диких хэшей из гита, нет даты...

По поводу билдов. Зайдите в FireFox в about:buildconfig и обнаружите:
Код
Built from https://hg.mozilla.org/releases/mozilla-beta/rev/d171c36d484800b1bb00db1612460a7120dd2fdf

Аналогично для Хрома в about:version:
Код
Версия    0e9a9a6f3676ae439b78cd9b3f62b4193c3ac7d5-refs/branch-heads/2924@{#895}


Сообщение отредактировал johnshadow - Feb 7 2017, 09:44
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 7 2017, 10:19
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(johnshadow @ Feb 7 2017, 14:44) *
Как без систем контроля версии выполняете модификацию кода?
Т.е. каким образом разделяете релизную копию и копию в которой сейчас вносите изменения?

Давайте отделим мух от котлет. Я свой код контролирую либо с помощью svn, либо с помощью git (есть и cvs). Я использую систему контроля версий. Хотя не во всех проектах. если программа простая... её дольше в СКВ заносить, чем писать.
Что касается сборок.... не ревизий, а именно сборок. Есть задача - точно знать, какую версию использует пользователь и какую версию заливает. Для этого я во всех проектах применяю номер сбрки и/или время и дату сборки. номер сборки автоматически инкримитируется при компиляции. К СКВ номер сборки не привязан, как и СКВ к номеру сборки. Релизная копия отделена от проекта.... собирается релиз и выкладывается в общее хранилище, от куда релиз могут взять производство и служба сервиса. В хранилище лежат все релизные сборки... от 1 до 1234. Релизу задается имя name_1234.hex, 1234 - номер сборки. Там же в хранилище ведётся редми, с указанием изменений.

ps допустим пользователь обнаружил проблему.... говорит, что у него сборка 1201. Я вижу, что текущая 1234. Если проблема новая... то я буду эту проблему искать и устранять в 1234 и если найду, то выпущу 1235 и отправлю пользователю. Если проблема была.... то она решена гденить в 1220.... я просто отправлю ему 1234.

1)зачем по билду искать в репозитории релиз сборки 1201?
ну допустим вы захотите откатиться на 1201 и поискать там проблему и потом проверить есть ли она в 1234.... допустим.... но
2)вам чтоб откатится до билда 1201, от пользователя нужен хэш от гита? если он вам сообщит, что он пользуется хромом версии 55.0.2883.87, вы от него потребуете сообщить версию ad0be09aa3ca814168d079b52825f6f80e22f0e8-refs/branch-heads/2883@{#723}? Не думаю.... я думаю вы по 55.0.2883.87 сами найдете нужный релиз и нужный срез. тогда вопрос - зачем пихать в ПО этот жуткий хэш? Как говориться: в чем профит?
Go to the top of the page
 
+Quote Post
johnshadow
сообщение Feb 7 2017, 16:03
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-09-08
Пользователь №: 40 477



Цитата(juvf @ Feb 7 2017, 14:19) *
Как говориться: в чем профит?

Так ведь в распределенных СКВ нет возможности проводить сквозную нумерацию билдов\коммитов.
Допустим я создал ветку от вашего проекта и работаю с ней, параллельно с вами.
У меня свои номера билдов теперь, у вас свои. И как их дальше сравнивать?
На mercurial пытались прикрутить сквозную нумерацию, но по моему это отход от идеологии распределенных СКВ.
А так как есть дата коммита, то полный hash для однозначного определения конкретного коммита и не нужен.

Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 8 2017, 03:38
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(johnshadow @ Feb 7 2017, 21:03) *
У меня свои номера билдов теперь, у вас свои. И как их дальше сравнивать?

в ветках нет инкримента билдов. зачем в ветках билд? все сливается в основной ствол, тестится в основном стволе. потом, при сборке релиза из ствола происходит инкримент билда.
а в ветках не нужен билд. ветки - это для разрабов. Вообще разрабам, если они работают в скв, им не нужен билд. Они по логу комитов могут всё определить... и время сборки, и какие изменения были введены, и что в каих сырцах правлено. Билд нужен, чтобы можно было определить, какую версию использует пользователь, на сколько свежую.

ps да даже если и возникнет конфликт билда.... например 2 чела работают в стволе и оба собрали релиз. ну и что? во время комита будет конфликт с 1 строчкой.... #define BUILD 715 и #define BUILD 720.... при слиянии используй #define BUILD 720. Это не проблема.

pps только у руководителя проекта в IDE происходит вызов скрипта pre-build или post-build, который инкреметирует билд.... поэтому хоть 100 чел делают релиз.... только руководитель его автоматом проинкреметирует.
Go to the top of the page
 
+Quote Post
johnshadow
сообщение Feb 8 2017, 07:49
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-09-08
Пользователь №: 40 477



Цитата(juvf @ Feb 8 2017, 06:38) *
все сливается в основной ствол, тестится в основном стволе.

Вот где у нас идеологическая разница biggrin.gif - у меня в master попадает только проверенный код, который прошел
тестирование в том числе и на группе реальных устройств у клиентов (которые согласились стать бета-тестерами). Таким образом в любой
момент из master всегда можно собрать "стабильный" релиз. И как у релизов, так и у бета-сборок
однотипный вывод версии - типа "XX.YY дата коммита и короткий hash". Где XX.YY это мажорные и минорные значения версии,
которые правятся руками (может быть и тэгом и git).
В вашем же случае, если возникает необходимость проверить бету на оборудовании клиента, но клиент столкнется с двумя разными стилями указания версии:
1) Релизная, вида: "XX.YY.buil_num"
2) Бета, вида: "commit_hash" или что-то подобное
Т.е. имеем две сущности (два вида), хотя фактически можно обойтись одной: только второй, так как первая не может быть универсальной,
ведь она поддерживается только в master ветке. Стоит ли плодить сущности без их необходимости?

Предлагаю закончить обсуждение, т.к. оба подхода имеют право на жизнь (и реально применяются) и с обеих сторон было приведено достаточно аргументов, для принятия решения, какой из них более подходящий в конкретном случае.
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 8 2017, 08:19
Сообщение #25


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



ну не понимаю я зачем нужен хэш конечному юзеру... не понимаю. ))) Это какой-то оверинженеринг. И ни в одной проге я не видел хэшей в Эбаутах. даты сборок есть, билды есть, минор.мажор - есть, но хэшЫ!!! Открыл версию прошивки на смартфоне - %имя_тела%_20160630. Нет ни каких хэшей.

Цитата
спор о том, что лучше PAL или SECAM
беру свои слова обратно. Вы меня убедили, что хэши точно в номерах версий/сборок не нужны. )))

Цитата(johnshadow @ Feb 8 2017, 12:49) *
Предлагаю закончить обсуждение
Поддерживаю. wink.gif
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 17:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016