The OpenNET Project / Index page

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

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

"Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от opennews (ok) on 14-Июн-16, 11:09 
Увидел свет (https://lkml.org/lkml/2016/6/13/880) выпуск распределенной системы управления исходными текстами Git 2.9.0 (http://git-scm.com/). Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux (https://git.kernel.org/cgit/linux/kernel/git/stable/linux-st.../), Android (https://android.googlesource.com/), LibreOffice (http://cgit.freedesktop.org/libreoffice), Systemd (http://cgit.freedesktop.org/systemd), X.Org (http://cgit.freedesktop.org/xorg), Wayland (http://cgit.freedesktop.org/wayland), Mesa (http://cgit.freedesktop.org/mesa/), Gstreamer (http://cgit.freedesktop.org/gstreamer), Wine (http://source.winehq.org/git/wine.git), Debian (http://anonscm.debian.org/gitweb), DragonFly BSD (http://gitweb.dragonflybsd.org/?p=dragonfly.git;a=summary), Perl (http://perl5.git.perl.org/perl.git), Eclipse (http://git.eclipse.org), GNOME (http://git.gnome.org/browse/), KDE (https://projects.kde.org/projects), Qt (https://code.qt.io/cgit/), Ruby on Rails (https://github.com/rails/rails), PostgreSQL (http://git.postgresql.org/gitweb/), VideoLAN (http://git.videolan.org), PHP (http://git.php.net/), Xen (http://xenbits.xen.org/gitweb/), Minix (http://git.minix3.org/).


По сравнению с прошлым выпуском в новую версию принято  497 изменения, подготовленных при участии 75 разработчиков, из которых 28 впервые приняли своё участие в разработке. Основные (https://github.com/git/git/blob/v2.9.0/Documentation/RelNote...) изменения (https://github.com/blog/2188-git-2-9-has-been-released):


-  В дополнение к появившейся в прошлом выпуске возможности извлекать субмодули (репозитории, включённые в состав другого репозитория) в несколько параллельных потоков (например, "git fetch --recurse-submodules --jobs=4") в новой версии добавлена возможность использования опции "--jobs" для распараллеливания операций клонирования и обновления субмодулей:


   git clone --recurse-submodules --jobs=4 ...
   git submodule update --jobs=4 ...


Распараллеливание процесса обработки субмодулей также можно включить через установку директивы submodule.fetchJobs в файле конфигурации.

-  Добавлены новые возможности для управления поведением клонировния и извлечения субмодулей. Git теперь отражает опции командной строки в командах субмодулей. Например, для одноразовой установки переменной для всех извлечённых субмодулей можно запустить "git -c http.proxy=... clone --recursive";

-  Добавлена возможность использования при выполнении "git clone" опции "--shallow-submodules", которая позволяет значительно сократить время клонирования репозиториев с субмодулями;

-  В "git diff" добавлена экспериментальная опция "--compaction-heuristic" (diff.compactionHeuristic в файле конфигурации), включающая
дополнительную эвристику для корректного отображения логики изменений, в которых фигурируют повторяющиеся блоки. Например, если раньше изменения определялись по первому совпадению:

    values.each do |v|
+      v.prepare
+    end
+
+    values.each do |v|
       v.finalize
     end
end


то теперь, на основании наличия пустой строки-разделителя более точно отражается принадлежность изменённых элементов:

  def finalize(values)

+    values.each do |v|
+      v.prepare
+    end
+
     values.each do |v|
       v.finalize
     end


Кроме того, добавлена настройка interactive.diffFilter, упрощающая установку альтернативных обработчиков вывода различий в "git add -i".
Добавлен  новый скрипт-фильтр  diff-highlight (https://github.com/git/git/tree/master/contrib/diff-highlight), выделяющий цветом различия сегментов кода. Для установки фильтра можно использовать команду "git config interactive.diffFilter diff-highlight";

module Foo

   def output
-    puts "hello, world!"
+    puts "goodbye, world!"
   end
end


-  Команда "git rebase -x" теперь может применяться для тестирования всех коммитов без включения интерактивного режима. В новой версии, если не указать флаг "-i" операция "git rebase -x" будет применена для всех коммитов и завершит выполнение на первом проблемном коммите с выводом сообщения об ошибке. После исправления проблемы предлагается продолжить проверку, запустив команду "git rebase --continue". Подобный подход удобен для быстрой проверки всей серии коммитов в проектах, в которых не принято рецензирование каждого изменения. Например, для тестирования полной ветки можно выполнить:

   $ git rebase -x 'make test'
   Executing: make test
     Result: OK
   Executing: make test
     Result: FAIL
   make: *** [test] Error 2
   Execution failed: make test
   You can fix the problem, and then run
        git rebase --continue


   исправляем ошибку и продолжаем проверку

   $ make test
     Result: OK

   $ git commit -a --amend

   $ git rebase --continue
   Executing: make test
     Result: OK
   Successfully rebased and updated refs/heads/your-branch.

-  Изменён метод поиска тегов по читаемым именам коммитов, выдаваемых командой "git describe". Если раньше при выборе имени в режиме "--contains" использовался ближайший тег, что могло привести к нелогичным результатам при наличии более новых тегов, содержащих коммит, то в новой версии применён более простой для понимания хронологический порядок - используется самый старый тег, содержащий коммит;

-  В "git log" обеспечено раскрытие символа табуляции с учётом применяемого при выводе 4-символьного выравнивания, что позволяет корректно отобразить ASCII-рисунки в коммитах;

    $ git log
    commit 8d7fca1d690ff2ffb678dc00fbca1954df5e5b90
    Author: Mu-An Chiou
    Date:   Mon Sep 23 09:21:03 2013 +0900

             _____
             ╲    ╲
             │    │
             │    │                      ___________________________
             └─#──┘    ########         /                           |
               ##     ##~ ~ ~ ##       /                            |
             #####    ##########    


-  Включён по умолчанию  режим определения переименования файлов при анализе различий в "git diff" и
"git log". Git не сохраняет информации о переименованиях, но может определять их налету на основе оценки различий между новыми и старыми файлами. Данная возможность присуттвует с первых дней существования git, но только теперь включена по умолчанию;

-  Возможность определения собственных путей для скриптов-обработчиков событий (хуков). Если ранее скрипты могли находиться только в директории .git в каждом репозитории, то сечас можно определить единый для всех репозиториев набор типовых скриптов, находящихся в любой части ФС. Для задания пути следует использовать настройку core.hooksPath;

-  В утилите git-p4 (импорт и экспорт в Perforce) появилась поддержка сопоставления пользователей p4 и идентификаторов Git, а также записи информации о работах p4 в текст примечаний к коммитам.

-  В состав включён скрипт git-multimail 1.3.1 (https://github.com/git-multimail/git-multimail) для рассылки уведомлений о выполнении операций push;
-  Для защиты от слияний по ошибке при выполнении "git merge" запрещено по умолчанию слияние двух веток, не имеющих общего предка;

URL: https://lkml.org/lkml/2016/6/13/880
Новость: http://www.opennet.dev/opennews/art.shtml?num=44600

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

Оглавление

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


1. "Выпуск распределенной системы управления исходными текстами ..."  +12 +/
Сообщение от intelfx (ok) on 14-Июн-16, 11:09 
> В "git diff" добавлена экспериментальная опция "--compaction-heuristic" (diff.compactionHeuristic в файле конфигурации), включающая дополнительную эвристику для корректного отображения логики изменений, в которых фигурируют повторяющиеся блоки

Лучший релиз-2016

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

2. "Выпуск распределенной системы управления исходными текстами ..."  –3 +/
Сообщение от Андрей (??) on 14-Июн-16, 11:39 
> git clone --recurse-submodules --jobs=4 ...
> git submodule update --jobs=4 ...

Это так нужно?

Вот произвести операцию на одним субмодулем - да. А сделать просто - никак. Только хитро:
git submodule foreach --recursive 'if [ $name = "SUBMODULE_IN_QUESTION" ]; then DO_THINGS; fi'

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

3. "Выпуск распределенной системы управления исходными текстами ..."  +6 +/
Сообщение от Crazy Alex (ok) on 14-Июн-16, 11:43 
Когда проект большой, и сабмодулей там штук сорок - то очень даже нужно. Особенно в каком-нибудь CI, где гит дёргается на каждый чих, часто - несколько раз в минуту.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Выпуск распределенной системы управления исходными текстами ..."  –7 +/
Сообщение от Андрей (??) on 14-Июн-16, 11:54 
Ясно. Git оптимизируют для роботов, а людям упражняться в набивании букв. Хотя мне казалось, что обновление субмодулей - это очень активное random I/O, которое и так очень медленное. Сомневаюсь, что эти CI работают на SSD, т.к. постоянная вот такая писанина их бы слишком быстро изнашивала. Короче, нужен какой-нибудь репозиторий с кучем сабмодулей, чтобы оценить преимущества. Хотя, похоже, догадался. Эти субмодули просто сравнительно редко обновляются, т.е. практически всегда нужно только быстро получить подтверждение, что ничего не поменялось. ОК, согласен.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Выпуск распределенной системы управления исходными текстами ..."  –6 +/
Сообщение от rob pike on 14-Июн-16, 13:09 
> Git оптимизируют для роботов, а людям упражняться в набивании букв

Для людей всегда был Mercurial.

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

19. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Blind Vic (ok) on 14-Июн-16, 20:15 
Кстати, Python project к осени мигрирует на GitHub.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

21. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Led (ok) on 14-Июн-16, 21:16 
> Для людей всегда был Mercurial.

С каких это пор приматов приравняли к людям?

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

10. "Выпуск распределенной системы управления исходными текстами ..."  +3 +/
Сообщение от Crazy Alex (ok) on 14-Июн-16, 13:38 
Там, где я видел подобное, оно, скорее всего, постоянно в кэше ФС лежит - памяти в достатке. Ну и да, обновляются они на порядки реже, чем основная репа.

А насчёт оптимизаций... Добавляется то, что кому-то нужно и что кому-то было не лень написать. Поучаствуйте если необходимость есть, делов-то.

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

14. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от omnomnim on 14-Июн-16, 15:43 
люто плюсую
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (??) on 14-Июн-16, 11:51 
>You are downloading the latest (2.8.4)

и где вышла?

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

6. "Выпуск распределенной системы управления исходными текстами ..."  +6 +/
Сообщение от yukra on 14-Июн-16, 12:09 
git clone https://github.com/git/git
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

12. "Выпуск распределенной системы управления исходными текстами ..."  +13 +/
Сообщение от ыыы on 14-Июн-16, 14:14 
Нужно больше гита!
git clone git@github.com/git/git.git
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

29. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (??) on 15-Июн-16, 22:56 
git clone git://github.com/git/git.git
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

7. "Выпуск распределенной системы управления исходными текстами ..."  +5 +/
Сообщение от ALex_hha (ok) on 14-Июн-16, 12:43 
> В "git log" обеспечено раскрытие символа табуляции с учётом применяемого при выводе 4-символьного выравнивания, что позволяет корректно отобразить ASCII-рисунки в коммитах;

ждем поддержку емоджи и анимированных gif'ок

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

9. "Выпуск распределенной системы управления исходными текстами ..."  +4 +/
Сообщение от Аноним (??) on 14-Июн-16, 13:11 
дурацкий сарказм получился. гифки от гита вообще не зависят все вопросы к терминалу, эмодзи можете хоть сейчас использовать.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

11. "Выпуск распределенной системы управления исходными текстами ..."  +6 +/
Сообщение от Crazy Alex (ok) on 14-Июн-16, 13:40 
Вообще-то ASCII-графика, иллюстрирующая какую-нибудь структуру - не ахти какая редкость.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

13. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от IMHO on 14-Июн-16, 14:37 
> HUBOT

мне кажется или та гифка факью тычет ?

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

16. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от ALex_hha (ok) on 14-Июн-16, 16:18 
> Вообще-то ASCII-графика, иллюстрирующая какую-нибудь структуру - не ахти какая редкость.

возможно, но зачем оно в сообщении к коммиту?! Можно привести какой нибудь реальный пример, где бы ascii схема была реально полезна и востребованна в коммите? Мне на ум что то не приходит таких юзкейсов

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

17. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Anonim (??) on 14-Июн-16, 17:51 
> Можно привести какой нибудь реальный пример, где бы ascii схема была реально полезна и востребованна в коммите?

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

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

20. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Аноним (??) on 14-Июн-16, 20:28 
Но зачем всё это в комментарии к коммиту?
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

24. "Выпуск распределенной системы управления исходными текстами ..."  +2 +/
Сообщение от Led (ok) on 14-Июн-16, 21:19 
Ты из тех, кто пишет коммиты: "many fixes"?
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

31. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (??) on 15-Июн-16, 23:14 
Нет, но и пихать в сообщение к коммиту спецификацию формата/протокола -- тоже крайность.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

23. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от smit (??) on 14-Июн-16, 21:18 
> пример, где бы ascii схема была реально полезна и востребованна в коммите

http://vtolkov.blogspot.ru/2016/05/bnrjs.html

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

25. "Выпуск распределенной системы управления исходными текстами ..."  –2 +/
Сообщение от Аноним (??) on 14-Июн-16, 21:42 
>юзкейсов

What?

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

30. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от Аноним (??) on 15-Июн-16, 22:57 
>>юзкейсов
> What?

use cases

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

22. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Led (ok) on 14-Июн-16, 21:18 
> гифка факью тычет ?

Нет, ю!

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

18. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от git.git.git on 14-Июн-16, 18:26 
> Возможность определения собственных путей для скриптов-обработчиков событий (хуков).

Нужно попробовать запушить что-нибудь по этим путям (попробовать переписать хуки).

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

26. "Выпуск распределенной системы управления исходными текстами ..."  –4 +/
Сообщение от ALex_hha (ok) on 14-Июн-16, 22:44 
> Например, можно показать структуру, в которую данные сериализуются: сколько байт заголовок стартовой последовательности, где начинается полезная нагрузка, где стоповая последовательность.

и зачем это пихать в коммит? В чем глубокий смысл? Типа все такие гики и сидят в консолях?

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

27. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 15-Июн-16, 02:17 
Зачем сразу гики, просто нерукожопые люди и профессионалы сидят в териманах.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

28. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Аноним (??) on 15-Июн-16, 22:54 
> Теперь, на основании наличия пустой строки-разделителя более точно отражается принадлежность изменённых элементов.
> Если ранее скрипты могли находиться только в директории .git в каждом репозитории, то сечас можно определить единый для всех репозиториев набор типовых скриптов, находящихся в любой части ФС.

Джва года ждал такие фичи!

> Добавлен новый скрипт-фильтр diff-highlight, выделяющий цветом различия сегментов кода.

И это тоже отнюдь не лишнее.

> Включён по умолчанию режим определения переименования файлов при анализе различий в "git diff" и "git log".

Очень давно пора.

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

32. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Andrey Mitrofanov on 16-Июн-16, 09:54 
>> Включён по умолчанию режим определения переименования файлов при анализе различий в "git diff" и "git log".
> Очень давно пора.

$ git config --global diff.renames true

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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