Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Git - кто работает с GitVersion?

309  1 2 все
AlexNek патриот18.03.18 18:50
AlexNek
18.03.18 18:50 

После перехода с SVN возникла проблема как идентифицировать версию на компе клиента с репозиторием.

Вроде в какой то степени GitVersion помогает получить автоматом привычный номер версии. А вот как теперь по этому номеру версии найти нужный коммит?

#1 
dymanoid знакомое лицо18.03.18 22:42
dymanoid
NEW 18.03.18 22:42 
в ответ AlexNek 18.03.18 18:50

Я уже как-то писал, что GitVersion автоматом проставляет номер коммита в версию. Только не в обычную версию бинарника (она числовая), а в метаданные.

Исключение - версия, созданная из тэга. Там номера коммита нет, но есть номер версии, идентичный тэгу. А тэг в git - это тоже коммит.

В чём проблема-то конкретно?

#2 
Simple Nothing is f*cked18.03.18 22:44
Simple
NEW 18.03.18 22:44 
в ответ AlexNek 18.03.18 18:50

+1 к тэгу. Версия для клиента всегда маркируется.

#3 
AlexNek патриот18.03.18 23:03
AlexNek
NEW 18.03.18 23:03 
в ответ dymanoid 18.03.18 22:42

Проблема - вижу я номер версии 1.0.2.513 как найти коммит к ней?

#4 
AlexNek патриот18.03.18 23:08
AlexNek
NEW 18.03.18 23:08 
в ответ Simple 18.03.18 22:44
Версия для клиента всегда маркируется.

Это если все готово.

У нас как бы сказать, единичное производство. Приехал к устройству и неделю можно "править", вот например на эту неделю и надо, причем всё "автоматом".

#5 
Simple Nothing is f*cked20.03.18 10:09
Simple
NEW 20.03.18 10:09 
в ответ AlexNek 18.03.18 23:08

Почему нельзя каждую версию "тагить"? Или хэш коммита вставлять куда-нить в метаданные?

Распиши подробно workflow.

#6 
AlexNek патриот20.03.18 22:38
AlexNek
NEW 20.03.18 22:38 
в ответ Simple 20.03.18 10:09
Почему нельзя каждую версию "тагить"?

Нафига тогда вообще делать "автоикремент изменений", можно и ручками версию писать. Все должно быть на автомате.


Или хэш коммита вставлять куда-нить в метаданные?

Что то типа этого не нахожу в GitVersion


Распиши подробно workflow.

подробно... тогда уж проще руками версию писать смущ

Сижу я, допустим, месяц у клиента, постоянно что то делаю. Как уеду, появится тэг на последней версии.

Но вот во время корректировок обнаруживается, что версия ...115 работала "лучше", чем ..120

Вариантов вообще может быть много.

#7 
  beatus свой человек21.03.18 07:50
beatus
NEW 21.03.18 07:50 
в ответ AlexNek 20.03.18 22:38, Последний раз изменено 21.03.18 08:55 (beatus)

Sourcetree установить попробуйте. Облегчает работу, правда не для linux.
Стандартный просмотр истории коммитов:
$ git log -p -2 //"2" это кол.во последних коммитов. --graph рисует дополнительно "дерево"



Если хотите "откатить" изменения, можете воспользоваться
$ git rebase -i

#8 
Simple Nothing is f*cked21.03.18 09:33
Simple
NEW 21.03.18 09:33 
в ответ AlexNek 20.03.18 22:38
подробно... тогда уж проще руками версию писать смущ

Я имел в виду, типа, "делаю билд, заливаю куда-то для тестов и тд". Или ты прямо на устройстве версии клепаешь? :)

#9 
Simple Nothing is f*cked21.03.18 09:35
Simple
NEW 21.03.18 09:35 
в ответ beatus 21.03.18 07:50
Sourcetree установить попробуйте. Облегчает работу, правда не для linux.

Вообще-то нет ничего удобнее, чем гит в консоли. Нужно лишь привыкнуть.

Если хотите "откатить" изменения, можете воспользоваться
$ git rebase -i

Ты наверно имел в виду git reset. Интерактивный rebase немного для других вещей.

#10 
AlexNek патриот21.03.18 23:26
AlexNek
NEW 21.03.18 23:26 
в ответ beatus 21.03.18 07:50
Sourcetree установить попробуйте.

Так командной строкой вообще не пользуюсь, Git Extension больше нравиться + еще GitFlow для студии

#11 
AlexNek патриот21.03.18 23:50
AlexNek
NEW 21.03.18 23:50 
в ответ Simple 21.03.18 09:33
делаю билд, заливаю куда-то для тестов

Это всё было на автомате, когда был один единственный проект.

А когда скажем, раз в квартал приходит новый проект, то подобная автоматизация теряет смысл.

Да и без устройства что то проверять достаточно сложно, нужно делать/запускать 3-4 эмулятора и все временные задержки будут совсем другие.

А возле устройства может и мобильного интернета не быть. Да и VPN в Китае отрубают по быстрому.

#12 
AlexNek патриот21.03.18 23:54
AlexNek
NEW 21.03.18 23:54 
в ответ Simple 21.03.18 09:35
Нужно лишь привыкнуть

Зачем? Я же не Никсман.

Гораздо удобнее кликнуть на менюшку. Но это вообще то скорее "религиозная проблема".

#13 
  beatus свой человек22.03.18 22:02
beatus
NEW 22.03.18 22:02 
в ответ Simple 21.03.18 09:35, Последний раз изменено 22.03.18 22:02 (beatus)
Ты наверно имел в виду git reset
Вообще-то ты прав. Чтобы только откатить изменения git reset, чтобы выборочно объединить или удалить коммиты rebase interactive. Давно гит'ом не пользовался просто.
Вообще-то нет ничего удобнее, чем гит в консоли.
Когда доходит до проблем, то да, соглашусь на 1000% 😀 Для рутинных операций, имхо, удобнее пользоваться встроенными в IDE тул'ами. Хотя профессионалы предпочтут консоль, однозначно.
#14 
Simple Nothing is f*cked23.03.18 09:09
Simple
NEW 23.03.18 09:09 
в ответ beatus 22.03.18 22:02

Я коммичу в IDE только потому что там есть дополнительные ништяки типа reformat code, optimize imports etc. :) В остальном у меня есть алиас fx = commit --fixup HEAD, а в конце перед пушем я уже делаю rebase.

#15 
Simple Nothing is f*cked23.03.18 09:11
Simple
NEW 23.03.18 09:11 
в ответ AlexNek 21.03.18 23:54

Для меня нет. В консоли многие операции просто быстрее и эффективнее.

#16 
AlexNek патриот23.03.18 23:14
AlexNek
NEW 23.03.18 23:14 
в ответ Simple 23.03.18 09:11
В консоли многие операции просто быстрее и эффективнее.

Могу согласится с нравится или не нравиться. Или если пакет операций делать.

А вот скорость и эффективность одной операции никак не будет отличаться, ведь команды с менюшек конвертируются в те же самые "консольные вызовы".

#17 
MrSanders старожил23.03.18 23:52
NEW 23.03.18 23:52 
в ответ AlexNek 23.03.18 23:14, Последний раз изменено 23.03.18 23:56 (MrSanders)

Угу. Но есть одно "но". Обычно результаты консольной команды можно объяснить заранее. А вот что именно сделает кнопочка... И какие чекбоксики, радио и прочими мультиселекты повлияют на результат... Можно пояснить только постфактум.

Если бы я получал евру за каждый раз когда приходилось разбираться с "а чо у меня тут случилось, я нажал на кнопочку и оно все не так"...

Из наиболее частого - ой, а я и не знал что у меня чекбоксик "делай ребейс перед мержем" включен. Во что превращается ветка если парочка разработчиков упорно ребейсят ее, а остальные тупо пулят и мержат, объяснять? :)

Поэтому я чувствую себя намного увереннее, когда говорю: "набери в консоли git merge --no-ff <имя ветки>" чем "нажми на кнопочку merge и проверь что в твоем любимом туле выбрано (где бы то ни было и как бы это ни называлось) не делать fast forward при мерже.


P.S. Ужас, сколько ругательских слов... мержить, ребейсить, пулить, бедный язык Пушкина и Толстого :)

P.P.S. С консолью надо просто немного поработать. И не с микрософтовскими поделками. И что-то вроде "find . -name "pom.xml" -exec grep "log4j" {} \; -print" будет набираться быстрее чем елозить мышкой по паре-тройке попапов. А если освоить sed и awk...

#18 
AlexNek патриот24.03.18 00:14
AlexNek
NEW 24.03.18 00:14 
в ответ MrSanders 23.03.18 23:52
С консолью надо просто немного поработать

Да уж сколько консолей перепробывал (не только про гит) - раздражает сам принцип набирать команды с параметрами. Поэтому и говорю что кому нравится.

А в команде у нас одна тулза и для основных операций сделано описание с картинками.

#19 
Simple Nothing is f*cked25.03.18 09:21
Simple
NEW 25.03.18 09:21 
в ответ AlexNek 23.03.18 23:14

Наверно, ты прав.

#20 
1 2 все