The OpenNET Project / Index page

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

Выпуск распределенной системы управления исходными текстами Git 2.12.0

25.02.2017 23:50

Доступен выпуск распределенной системы управления исходными текстами Git 2.12.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux, Android, LibreOffice, Systemd, X.Org, Wayland, Mesa, GStreamer, Wine, Debian, DragonFly BSD, Perl, Eclipse, GNOME, KDE, Qt, Ruby on Rails, PostgreSQL, VideoLAN, PHP, Python, Xen, Minix.

По сравнению с прошлым выпуском в новую версию принято 517 изменения, подготовленных при участии 80 разработчиков, из которых 24 впервые приняли своё участие в разработке. Основные изменения:

  • Добавлена возможность управления применением протоколов, допустимых для использования в качестве транспорта при выполнении команд clone/fetch/push;
  • В команды, подобные "git branch --list", добавлена опция "--ignore-case" для сортировки веток и тегов без учёта регистра символов;
  • В "git rebase" добавлена опция "--quit", позволяющая удалить метаданные, оставшиеся от ранее выполненного вызова "git rebase", выполнение которого было прервано без применения "git rebase --abort";
  • В качестве синонима вызову "git commit" добавлен "git merge --continue" для завершения слияния, остановленного из-за конфликта;
  • В команду "git shortlog" добавлена опция "--committer" для группировки коммитов по принявшему изменение коммитеру, а не автору изменения;
  • В "git grep" добавлена возможность рекурсивного обхода субмодулей;
  • "git rm" теперь не даст удалить субмодуль, если он имеет собственный репозиторий, интегрированный в рабочее дерево Git. Вместо удаления "git rm" перенесён репозиторий в $GIT_DIR/modules/, что позволит удалить субмодуль без потери локальных изменений;
  • В команду "git submodule push" добавлена опция "--recurse-submodules=only" для выполнения операции push для субмодулей, не затрагивая при этом основной проект;
  • В "git tag" и "git verify-tag" добавлена возможность отображения статуса проверки GPG при задании формата вывода "--format=placeholders";
  • Для избежания типовых ошибок "git submodule add" теперь откажется добавлять локально созданный репозиторий, если не указана опция "--force";
  • Добавлена возможность настройки цветов для вывода "git log --graph";
  • Добавлена возможность определения собственного метода обновления, вызываемого при выполнении команды "submodule update" для уже загруженного субмодуля (при первой загрузке обработчик не вызывается);
  • Обновлена реализация команды "git p4" (импорт и экспорт в Perforce) и её интеграция с GitLFS;
  • В "git diff" оставлена только одна опция "--indent-heuristic" для включения эвристики сдвига содержимого блоков с целью улучшения читаемости патча, остальные экспериментальные опции удалены;
  • Добавлен обработчик субмодулей "git submodule embedgitdirs", упрощающий перемещение встроенного каталога .git/ для субмодулей в каталог .git/modules/ основного проекта;
  • Реализация команды "git difftool" переписана на языке Си;
  • Добавлены правила автодополнения ввода для некоторых новых команд;
  • Из contrib/ удалена устаревшая утилита конвертации репозиториев;
  • Удалена поддержка устаревшей команды "git relink".

Дополнительно можно упомянуть публикацию Линусом Торвальдсом детального разбора ситуации с коллизиями в SHA-1 в контексте применения данного алгоритма хэширования для идентификации коммитов в Git. В текущем виде проблемы, возникшие у PDF и Subversion, не затрагивают Git, код без ресурсоёмкого подбора индивидуальной коллизии подменить не получится. Уже продемонстрированная для PDF коллизия легко блокируется специальными проверками. Даже если новая коллизия будет вычислена, то изменение не пройдёт не замеченным, так как трудно не заметить большой бинарный блок среди кода. Например, в процессе разработки для последующей подмены кода в ядре Linux в репозиторий легитимно должен быть принят блок, вызывающий коллизию, скрыть такой блок в условиях выстроенной многоуровневой цепочки доверия и приёма изменений только на уровне патчей даже труднее, чем замаскировать обычную троянскую вставку.

Линус также указывает на то, что при разработке ядра хэши SHA-1 в основном выполняют лишь вспомогательную роль для выявления нарушений целостности репозитория и дедупликации одинаковых блоков кода. Разработчики не вносят изменения на основании совпадения хэша, а принимают изменения от людей, заслуживших доверие. Код изначально представляется публично и проходит многочисленные проверки. При этом, так как SHA-1 также применяется для контроля целостности итоговых веток, уже началась работа по уходу Git с SHA-1 на более надёжные алгоритмы.

  1. Главная ссылка к новости (https://lkml.org/lkml/2017/2/2...)
  2. OpenNews: Компания Microsoft представила виртуальную файловую систему для Git
  3. OpenNews: Релиз распределенной системы управления исходными текстами Git 2.11.0
  4. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.10.0
  5. OpenNews: Доступна система совместной разработки GitBucket 4.2
  6. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.8.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46105-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, Онаним (?), 01:00, 26/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Лучше бы встроили логику дедупликации, которую недавно мелкомягкие изобрели...
     
     
  • 2.13, anonymous (??), 11:38, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    дедубликация в git изначально
     
     
  • 3.16, Аноним (-), 17:08, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > дедубликация в git изначально

    Это вы так говорите. Дайте маркетологам и пиарщикам хотя бы пяток лет.


     
     
  • 4.23, Аноним (-), 17:42, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    что простите?
     
  • 4.28, Michael Shigorin (ok), 20:22, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> дедубликация в git изначально
    > Это вы так говорите. Дайте маркетологам и пиарщикам хотя бы пяток лет.

    Каждому или суммарно? :)

    PS: про git log --graph не знал, но что-то он пока показался удивительно малополезным по сравнению с тем же --deco и gitk --all...

     
     
  • 5.31, Аноним (-), 22:15, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Миша, оффтоп специально для тебя, ты такое любишь:

    https://twitter.com/TimSweeneyEpic/status/835818443953831936

    > Here's Microsoft's astroturf network spinning their increasingly anti-competitive, anti-user store practices as "protecting users".

     
     
  • 6.37, Michael Shigorin (ok), 14:29, 27/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Here's Microsoft's astroturf network spinning their increasingly anti-competitive,
    >> anti-user store practices as "protecting users".

    Разве что к Митрофанову, я ж в виндах околонуля.

     
     
  • 7.39, Аноним (-), 15:07, 27/02/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Английский не судьба прочитать и понять?
     
     
  • 8.40, Andrey Mitrofanov (?), 15:13, 27/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да, текст-то процитированный понятен я за него а что случилоось , тока на э... текст свёрнут, показать
     
  • 4.33, Аноним (-), 08:25, 27/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Дайте маркетологам и пиарщикам хотя бы пяток лет.

    Я б дал пожизненное.

     
  • 4.36, Andrey Mitrofanov (?), 11:06, 27/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Дайте маркетологам и пиарщикам хотя бы пяток лет.

    Без права переписки?

     
  • 2.35, Andrey Mitrofanov (?), 11:05, 27/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Лучше бы встроили логику дедупликации, которую недавно мелкомягкие изобрели...

    Сразу после того, как они винду на ядро Торвальдса переведут. Ога. Два раза.

    ---И раскаются, и исправят всё, отсидят и вошьют торпеду для неповторения.

     

  • 1.6, anonymous (??), 02:35, 26/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Как меня напрягает git. Надо вытащить пару небольших файликов из определённого коммита. Выход только один - выкачивать весь git репозиторий на 900 метров целиком, и потом уже искать файлик.
     
     
  • 2.7, Аноним (-), 03:28, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это делается один раз, далее он обновляется через git pull.

    Если он у тебя выкачивается КАЖДЫЙ раз из-за одного файла - то это проблема с головой, а не с git'ом.

     
     
  • 3.8, Аноним (-), 05:22, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А если и оного раза много?
     
     
  • 4.9, Archuser (?), 05:25, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ключ --depth=1 поможет тебе
     
  • 3.11, Аноним (-), 05:44, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Модно же с веь морды скачать
     
  • 2.10, DeerFriend (?), 05:33, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А ман почитать?
    гит архив уже давно и повсеместно используется.
     
     
  • 3.15, Котофалк (?), 16:33, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А ман почитать?

    [sarcasm]
    а что так тоже можно?
    [/sarcasm]

     
  • 3.27, 1123 (?), 20:22, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://git-man-page-generator.lokaltog.net/
     
  • 2.14, Crazy Alex (ok), 15:57, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Мды, похоже, кто-то должен выступить Капитаном Очевидность.

    git не рассчитан на "вытащить пару файлов", даже если это в отдельных случаях можно - это случайность, не более. В той модели работы, для которой он создавался, это на фиг не нужно - нужны changesets и commits. Если хочется странного - придётся использовать что-то стороннее - от скриптов до вебморд.

    Ещё более git не рассчитан на нежелание выкачивать весь репозиторий - он, собственно, создан ровно на обратных допущениях.

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

     
     
  • 3.41, Аноним (-), 10:34, 28/02/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Дело не в "не рассчитан", а в том какой функционал наиболее востребован и реализован, возможно со временем реализуют и выкачивание по одному, особенно если это будет кому-то настолько нужно, что он напишет адекватную реализацию которую примут в проект.
    По поводу других инструментов, не очень удобно держать для одних пакетов один инструмент для других другой.
     
  • 2.25, Аноним (-), 19:34, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Как меня напрягает git. Надо вытащить пару небольших файликов из определённого коммита.

    Меня так напрягают микроволновки, когда я пытаюсь ими выкопать яму

     
  • 2.29, Michael Shigorin (ok), 20:23, 26/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Как меня напрягает git. Надо вытащить пару небольших файликов из определённого коммита.

    И у проекта нет gitweb/cgit?

     

  • 1.12, anonymous (??), 11:37, 26/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    SHA3-224 наше все
     
  • 1.30, Аноним (-), 21:26, 26/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В "git grep" добавлена возможность рекурсивного обхода субмодулей

    Долго ждал.

     
  • 1.34, Аноним (-), 09:02, 27/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Один разработчик и сейчас использую bazaar (Ubuntu), ранее был subversion.
    Нужно ли "повышать" свой уровень и переходить на git?
     
     
  • 2.38, Michael Shigorin (ok), 14:30, 27/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Нужно ли "повышать" свой уровень и переходить на git?

    Думайте сами, решайте сами: http://www.opennet.me/opennews/art.shtml?num=42154

     
  • 2.42, Аноним (-), 00:06, 01/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Нужно ли "повышать" свой уровень и переходить на git?

    Над вами просто пошутили. Гит не повышает уровень. Никакой.
    Так что "переходом на гит" вы ничего не измените.
    Ну,  разве что, доставите лулзов советчикам.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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