The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Выпуск распределенной системы управления исходными текстами ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от opennews (??), 17-Авг-19, 07:56 
Представлен (https://lkml.org/lkml/2019/8/16/877) выпуск распределенной системы управления исходными текстами Git 2.23.0 (http://git-scm.com/). Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.


По сравнению с прошлым выпуском в новую версию принято 505 изменений, подготовленных при участии 77 разработчиков, из которых 26 впервые приняли участие в разработке. Основные новшества (https://github.blog/2019-08-16-highlights-from-git-2-23/):


-  Представлены экспериментальные команды "git switch" и "git restore", призванные разделить между собой малосвязанные возможности "git checkout", такие как манипуляция веток (переключение и создание) и восстановление файлов в рабочей директории ("git checkout $commit -- $filename") или сразу в staging area ("--staging", не имеет аналога в "git checkout"). Стоит отметить, что, в отличие от "git checkout", "git restore" удаляет неотслеживаемые файлы из восстанавливаемых директорий ("--no-overlay" по умолчанию).

-  Добавлена опция "git merge --quit", которая, аналогично "--abort", останавливает процесс слияния веток, но оставляет при этом рабочую директорию нетронутой. Данная опция может оказаться полезной в случае, если некоторые из уже внесённых изменений, внесённых в результате ручного слияния, предпочтительнее оформить в виде отдельного коммита.

-  Команды "git clone", "git fetch" и "git push" теперь учитывают наличие коммитов в связанных репозиториях (alternates (https://git-scm.com/docs/gitrepository-layout#Documentation/...));

-  Добавлены (https://github.com/git/git/commit/ae3f36dea16e51041c56ba9ed6...) опции "git blame --ignore-rev" и "--ignore-revs-file", позволяющие пропустить коммиты, в которых внесены незначимые правки (например, исправления форматирования);

-  Добавлена опция "git cherry-pick --skip" для пропуска конфликтного коммита (запоминаемый аналог последовательности "git reset && git cherry-pick --continue");

-  Добавлена настройка status.aheadBehind, фиксирующая опцию "git status --[no-]ahead-behind" на постоянной основе;

-  С данного выпуска "git log" по умолчанию учитывает изменения, внесённые mailmap, аналогично тому, как это уже происходит в git shortlog;

-  Существенно ускорена операция обновления представленного в 2.18 экспериментального кеша графа коммитов (core.commitGraph). Также ускорен git for-each-ref в случае использования нескольких шаблонов и сокращено количество вызовов auto-gc в "git fetch --multiple";

-  "git branch --list" теперь всегда показывает detached HEAD в самом начале списка независимо от локали.

URL: https://github.blog/2019-08-16-highlights-from-git-2-23/
Новость: https://www.opennet.ru/opennews/art.shtml?num=51300

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск распределенной системы управления исходными текстами ..."  –13 +/
Сообщение от Doctoremail (??), 17-Авг-19, 07:56 
Свитчинга веток, кстати говоря, довольно нужная вещь.
Если не про топику, хотелось бы иметь апи по получению инфы по задачам и пулл реквестам, ну тут уже надо к сервисам обращаться, ибо, насколько я знаю, у чистого гита эти полномочия всё
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Выпуск распределенной системы управления исходными текстами ..."  +10 +/
Сообщение от Ydro (?), 17-Авг-19, 11:12 
Тот случай, когда ИИ не справилось с грамматикой.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Аноним (7), 17-Авг-19, 15:22 
Чувак у тебя каша в голове
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

8. "Выпуск распределенной системы управления исходными текстами ..."  –2 +/
Сообщение от Петкун (?), 17-Авг-19, 16:40 
А кто такой Заболотный?
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

25. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Линус Торвальдс (?), 19-Авг-19, 09:59 
Я
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

6. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от kravich (ok), 17-Авг-19, 15:17 
>"git switch" и "git restore", призванные разделить между собой малосвязанные возможности "git checkout"

Что делается-то, а...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от хотел спросить (?), 17-Авг-19, 18:09 
мало делается.. git давно надо было причесать и унифицировать между платформами

попробуй сделать реврайт автора без скрипта с гитхаба

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

13. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Crazy Alex (ok), 17-Авг-19, 20:30 
а что там делать? Создал патч, ресетнул, выставил в конфиге правильного автора, наложил дифф, закоммитил. Задача одноразовая, так что логично, что в одно действие не делается. Но заскриптовать при нужде - пять минут.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

14. "Выпуск распределенной системы управления исходными текстами ..."  +3 +/
Сообщение от Аноним (14), 17-Авг-19, 21:11 
> попробуй сделать реврайт автора без скрипта с гитхаба

Если речь о послеледнем коммите, то commit --amend. Если речь обо всей истории, то filter-tree --env-filter. Зачем какой-то скрипт?

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

15. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от хотел спросить (?), 17-Авг-19, 23:02 
>> попробуй сделать реврайт автора без скрипта с гитхаба
> Если речь о послеледнем коммите, то commit --amend. Если речь обо всей
> истории, то filter-tree --env-filter. Зачем какой-то скрипт?

как раз filter-tree --env-filter и используется
но почему нельзя сделать максимально удобным это всё?
намутили параметров ни разу не user-friendly
иногда ffmpeg проще, чем в гит

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

18. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Crazy Alex (ok), 18-Авг-19, 00:24 
Потому что экзотических задач - миллион, все удобными не сделаешь. Для экзотики есть базовый инструментарий, который комбинируешь и получаешь то, что надо
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

21. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (14), 18-Авг-19, 09:04 
> как раз filter-tree --env-filter и используется
> но почему нельзя сделать максимально удобным это всё?

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

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

26. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Аноним (26), 19-Авг-19, 13:05 
> но почему нельзя сделать максимально удобным это всё?

Потому что нефиг вообще переписывать историю. Это так, если концептуально и глобально. А если локально, то вот тут вам правильно ответили, что есть специфические команды для специфических задач. Другое дело, что и базовые - весьма ... м.... своеобразны.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

37. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от хотел спросить (?), 20-Авг-19, 23:50 
>> но почему нельзя сделать максимально удобным это всё?
> Потому что нефиг вообще переписывать историю. Это так, если концептуально и глобально.
> А если локально, то вот тут вам правильно ответили, что есть
> специфические команды для специфических задач. Другое дело, что и базовые -
> весьма ... м.... своеобразны.

ну да давайте расскажите нам что нужно делать, а мы скажем вам куда вам идти

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

17. "Выпуск распределенной системы управления исходными текстами ..."  +4 +/
Сообщение от Crazy Alex (ok), 18-Авг-19, 00:21 
amend тут не поможет. Точнее, надо ещё --reset-author
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

12. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Crazy Alex (ok), 17-Авг-19, 20:27 
Концептуально красиво, но на практике - совершенно один хрен. Утешает только то, что это не питонщики, совместимость ломать не станут.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Аноним (10), 17-Авг-19, 18:32 
Git - Самый убогий bloatware интерфейс командной строки.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Линус Торвальдс (?), 19-Авг-19, 09:58 
А мне нравится.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

11. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Аноним (11), 17-Авг-19, 19:40 
Долой git, даёшь Subversion.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Выпуск распределенной системы управления исходными текстами ..."  +6 +/
Сообщение от Аноним (23), 19-Авг-19, 09:57 
Долой Subversion, даёшь ФинальнаяВерсия_ИсправленияОт311219_исправлено_доработать_ДляВаси_v079_проект.ZIP
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

16. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Аноним (16), 17-Авг-19, 23:11 
Гит норм. Ни разу не подводил. Правда, пару раз перезатирал историю ребейзом, и

Но кто никогда не чудил с ребейзом - пусть первый бросит в меня камень

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Выпуск распределенной системы управления исходными текстами ..."  +2 +/
Сообщение от Michael Shigorinemail (ok), 18-Авг-19, 02:58 
https://tomayko.com/writings/the-thing-about-git :-)

Ну и да, git rebase -i -- это такая бензопила, у меня привычка уже на всякий сперва затарить копию репозитория в сторонку, хоть и про git reflog в курсе...

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от имя (?), 18-Авг-19, 03:10 
Подождите, *интерактивный* rebase — бензопила как раз более простая, тупо исполняет инструкции «положить в стопку» и «смешать, но не взбалтывать» как написано. С ним-то вы как умудряетесь довести дело до cp -R?
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

30. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Michael Shigorinemail (ok), 19-Авг-19, 16:14 
> С ним-то вы как умудряетесь довести дело до cp -R?

Например, перестраивая порядок конфликтующих патчей и выравнивая к тому, как оно должно было быть.  Когда шло несколько параллельных изменений (или разработка и срочные мелочи там же), но в итоге лучше не мегапатч, а логическая цепочка преобразований.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

32. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от пох. (?), 19-Авг-19, 16:53 
а ведь у hg _этих_ проблем давным-давно нет...

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

36. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от хоп (?), 20-Авг-19, 04:34 
современные погромисты за редким исключением не знают про существование hg
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

22. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от myhand (ok), 18-Авг-19, 09:07 
> https://tomayko.com/writings/the-thing-about-git :-)

Мда, в гит почитай каждая команда сделана по типу "сделай мне
зашибись".  Пару раз вляпывался в ситуацию, когда хочется закоммитить
только часть патча в рабочей копии, а до почитать man git-add
руки так и не дошли.  

> git rebase -i -- это такая бензопила, у меня привычка уже на всякий сперва затарить копию репозитория в сторонку

Что-то вы делаете сильно не так.  --abort никогда не вызывал проблем, если хочется
"все взад".  Если жалко работы по разрешению конфликтов - есть git-rerere.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

29. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Michael Shigorinemail (ok), 19-Авг-19, 16:13 
>> git rebase -i -- это такая бензопила, у меня привычка уже на всякий сперва
>> затарить копию репозитория в сторонку
> Что-то вы делаете сильно не так.  --abort никогда не вызывал проблем,
> если хочется "все взад".

Возможно, десятилетием раньше его ещё просто не было, не помню...

> Если жалко работы по разрешению конфликтов - есть git-rerere.

А вот про эту зюку слышал, но так и не читал; спасибо за наводку, порой бы выручило, похоже.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

27. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (27), 19-Авг-19, 15:37 
> у меня привычка уже на всякий сперва затарить копию репозитория в сторонку

неужели простого
git tag before_terrible_rebase branch/to/rebase
не хватает?

Или эти действия сродни "посмотреть в зеркало", "плюнуть через плечо", "по дереву постучать"?

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

28. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Michael Shigorinemail (ok), 19-Авг-19, 16:09 
>> у меня привычка уже на всякий сперва затарить копию репозитория в сторонку
> git tag before_terrible_rebase branch/to/rebase

Это _другое_ действие -- после которого надо ещё этот временный мусор не забыть убрать, иначе затерявшийся тег на чём-то не том может неприятно цапнуть некоторое время спустя, особенно (не) попутешествовав по remote'ам; поэтому в таком плане предпочитаю не теги, а ветки.  Ну и лишний шум в reflog незачем, если буду откатываться -- у меня бывает по нескольку десятков таких налопаченных, но ещё не разобранных и не описанных как положено коммитов порой.

> Или эти действия сродни

Скорее про "некоторые ещё не делают бэкапы", если уж очень хочется сострить.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

31. "Выпуск распределенной системы управления исходными текстами ..."  +2 +/
Сообщение от Andrey Mitrofanov_N0 (??), 19-Авг-19, 16:26 
>> git tag before_terrible_rebase branch/to/rebase
> Это _другое_ действие -- после которого надо ещё этот временный мусор не
> забыть убрать, иначе затерявшийся тег на чём-то не том может неприятно
>> Или эти действия сродни
> Скорее про "некоторые ещё не делают бэкапы", если уж очень хочется сострить.

Ну-дк, https://xkcd.com/1597/ как завещал Вкликий Линус .

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

33. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (27), 19-Авг-19, 17:16 
> иначе затерявшийся тег на чём-то не том может неприятно цапнуть некоторое время спустя

Ты шутишь так чтоль?

После того как успешно rebase сделал кто тебе запрещает "git tag -d before_terrible_rebase"?
Тегов боишься - сделай ветку "git branch copy_before_rebase branch/to/rebase".

Но бэкап перед rebase. Вот уж действительно - "Заставь ****** молиться, он и лоб разобьет".

Перед "git clone" бэкап ещё не делаешь?

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

34. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Michael Shigorinemail (ok), 19-Авг-19, 17:18 
> Ты шутишь так чтоль?

Дело не в запретах, а в контекстах (можно "щёлкнуть" ими и забыть).  Впрочем, Ваш бисеровалютный лимит на сегодня исчерпан.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

35. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от KonstantinB (ok), 19-Авг-19, 18:27 
Нормальная бензопила, удобная, если осилить.

Чтобы не доставать в случае приступа рукозадости из рефлога, сложные ребейзы делаю в отдельной веточке. :)

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

39. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Аноним (39), 21-Авг-19, 10:42 
Точно так же отдельную ветку для ребейза делаю.

И после ребейза сравниваю старую и ребейзнутую ветки. Должны быть одинаковы, если не выкидывал коммиты.
git diff старая_ветка..ребейзнутая ветка -- $(git diff --name-only master...старая_ветка)

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

40. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Andrey Mitrofanov_N0 (??), 21-Авг-19, 11:41 
> git diff старая_ветка..ребейзнутая ветка -- $(git diff --name-only master...старая_ветка)

Ну, ты, б!, давид блеин  и  гари потер.

git diff спасённая_ветка..

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

41. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Аноним (39), 21-Авг-19, 13:54 
А вот и нет.
Так Вы захватите файлы которые не меняли в своих ветках.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

38. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (39), 21-Авг-19, 10:37 
> и восстановление файлов в рабочей директории ("git checkout $commit -- $filename") или сразу в staging area

При checkout и было всегда "сразу в staging area", а уж потом в working directory.
И вообще checkout это синхронизация рабочей директории с индексом.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру