LINUX.ORG.RU

Git 2.7.0

 


0

3

Команда разработчиков Git рада сообщить о релизе Git 2.7.0.

Этот выпуск содержит более 800 коммитов от 81 автора, 26 из которых не так давно присоединились к проекту.

git bisect теперь не только для регрессий

Несмотря на то, что git bisect наиболее часто используется для поиска регрессий, такой подход может быть применён при поиске любых других изменений. Какие бы изменения вы не искали, вы отмечаете хорошими ревизии до изменений и плохими после. Это может путать, особенно, если вы хотите найти коммит, исправляющий ошибку. Чтобы решить эту проблему, добавлена возможность вместо good и bad использовать свои собственные термины. Без дополнительных настроек можно использовать более нейтральные термины old и new:

$ git bisect start
$ git bisect old v4.2
$ git bisect new master

Указать свои собственные термины можно следующим образом:

$ git bisect start --term-old yucky --term-new yummy
$ git bisect yucky v4.2
$ git bisect yummy master

Новый параметр конфигурации для --recurse-submodules

Если вы используете субмодули, то вероятно совершали ошибку при отправке изменений в главный модуль без первоначальной отправки соответствующих изменений в субмодули. Надо было указывать опцию --recurse-submodules, например:

$ git push --recurse-submodules=on-demand origin

Теперь вы можете задать такое поведение по умолчанию с помощью нового параметра конфигурации:

$ git config push.recurseSubmodules on-demand

Если вы предпочитаете, чтобы Git предупреждал о потенциальных проблемах, используйте:

$ git config push.recurseSubmodules check

Дальнейшее совершенствование worktree

Помните команду git worktree, которая была введена в Git 2.5.0? Она позволяет создавать множественные рабочие копии, которые связаны с одним локальным репозиторием Git.

В Git 2.7.0, git worktree продолжает улучшаться:

  • Новая команда git worktree list позволяет получить список рабочих копий, связанных с текущим репозиторием.
  • git bisect теперь может запускаться в любом worktree, или даже в двух одновременно.
  • Вы теперь можете клонировать из связанного worktree.
  • Улучшена поддержка субмодулей.

Поддержка git LFS для git p4

git p4 является мостом между Git и Perforce, который позволяет получать коммиты из Perforce в Git, отправлять коммиты из Git на сервер Perforce и т. д. (Существуют похожие инструменты для работы с Subversion, Mercurial, Bazaar, TFS, и др.) git p4 теперь может хранить большие файлы в Git LFS («Git Large File Storage»), что позволяет избежать раздувания репозитория на диске. Обратите внимание, что эта функция пока не поддерживает git p4 submit.

Более согласованные команды для получения списка ссылок

В Git есть три основных способа получения списка ссылок: git branch для веток; git tag для меток; и git for-each-ref для ссылок любого типа. Но эти команды, несмотря на их перекрывающуюся функциональность, имели разные возможности и опции.

Теперь, благодаря работе студента Google Summer of Code, Karthik Nayak, эти команды имеют более согласованный интерфейс. Все три команды поддерживают следующие опции:

  • --points-at <object>: получить список ссылок которые указывают на заданный объект;
  • --merged [<commit>]: получить список ссылок, которые были объединены с коммитом (HEAD по умолчанию);
  • --no-merged [<commit>]: получить список ссылок, которые не были объединены с коммитом (HEAD по умолчанию);
  • --contains [<commit>]: получить список ссылок которые содержат указанный коммит (HEAD по умолчанию).

Они также получили новое форматирование и параметры сортировки.

Другие изменения

  • git stash show теперь поддерживает два параметра конфигурации: stash.showPatch и stash.showDiff, которые задают формат вывода по умолчанию.
  • git blame теперь корректно работает с опцией --first-parent, а также, когда --reverse и --first-parent используются вместе.
  • Улучшен внешний вид gitk на high-DPI мониторах.
  • Исправления безопасности [1] [2].

>>> Официальный анонс

>>> Примечания к выпуску

>>> Подробности

★★★★

Проверено: Klymedy ()

Хвала Линусу!

anonymous ()

git worktree

Ура! Мне полноценного worktree очень не хватало.

alt-x ★★★★★ ()
Ответ на: git worktree от alt-x

Git это уродский vi на фоне Plastic SCM.

Xroft ★★ ()
Последнее исправление: Xroft (всего исправлений: 1)

Гит-гит ура!

anonymous ()
Ответ на: комментарий от Xroft

Чем система хранения изменений лучше, чем в гите? Какие преимущества?

dicos ()
Ответ на: git worktree от alt-x

В чем выражется неполноценность по сравнению с git clone? Ну кроме как добавить remote.

A1 ()

А я всё жду, когда гит позволит более-менее просто делать вещи, которые в svn делались одной краткой командой...

Например, если я необратимо испортил какой-то файл, можно было просто его грохнуть и сделать svn up - и svn сообщит, что файл restored. В git, если я не ошибаюсь, так просто не получится, или ошибаюсь?..

Но хорошо, что проект развивается, поздравляю.

hobbit ★★★★★ ()
Ответ на: комментарий от dicos

очень нужный интерфейс для отслеживания текстовых файлов, с анимацией и поддержкой visual studio.

svicer ()

Кто пользуется git? Роботы и киборги?

Улучшен внешний вид gitk на high-DPI мониторах

Почему нельзя на Qt переписать наконец?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Почему нельзя на Qt переписать наконец?

Потому что авторы гита не школьники, которые все переписывают.

A1 ()
Ответ на: комментарий от I-Love-Microsoft

Кто пользуется git? Роботы и киборги?

Осилятроры. Которых почему-то больше неосиляторов.

A1 ()
Ответ на: комментарий от A1

Просто мне приходилось пользоваться gitk, мне трудно представить что-то хуже.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от hobbit

сделать svn up - и svn сообщит, что файл restored. В git, если я не ошибаюсь, так просто не получится, или ошибаюсь?..

ошибаешься.

git checkout -- yourfile
waker ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

мне трудно представить что-то хуже.

И богоподопный Qt конечно же автоматом решит проблему?

A1 ()
Ответ на: комментарий от I-Love-Microsoft

Просто мне приходилось пользоваться gitk, мне трудно представить что-то хуже.

Чем он тебе не понравился?

kirk_johnson ()
Ответ на: комментарий от hobbit

Например, если я необратимо испортил какой-то файл, можно

сказать git checkout -- filename — и файл вернётся в последнее состояние, которое было сохранено в репозитории.

INFOMAN ★★★★★ ()
Последнее исправление: INFOMAN (всего исправлений: 1)
Ответ на: комментарий от waker

Спасибо.

А сделать то же самое, не перечисляя явно все грохнутые файлы?

В принципе, я смотрю, git checkout без параметров выводит список «кандидатов» на восстановление, так что в 2 шага можно... Но если можно сделать так, чтобы сам понял и восстановил - было бы лучше.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

А сделать то же самое, не перечисляя явно все грохнутые файлы?

git checkout .

kirk_johnson ()
Ответ на: комментарий от kirk_johnson

Ага, спасибо. На checkout внимания не обращал, наверное, потому, что в svn одноимённую команду использовал исключительно для начального создания рабочей копии.

Git в плане повседневных операций стал чуть проще...

hobbit ★★★★★ ()

Если вы используете субмодули, то вероятно совершали ошибку при отправке изменений в главный модуль без первоначальной отправки соответствующих изменений в субмодули. Надо было указывать опцию --recurse-submodules

Я джва года ждал этой фичи!

aptyp ★★★★ ()
Последнее исправление: aptyp (всего исправлений: 1)
Ответ на: комментарий от A1

В чем выражется неполноценность по сравнению с git clone? Ну кроме как добавить remote.

Теперь да, а так bisect'а в разных копиях не хватало.

alt-x ★★★★★ ()
Ответ на: комментарий от kirk_johnson

Поциент, похоже, хочет мышкой кликать, как он в VS привык и от консоли шарахается как чёрт от ладана.

anonymous ()

Посмотрел на worktree, крайне полезная фича.

Запилил поддержку worktree для git-sh https://github.com/rtomayko/git-sh/pull/41. Увидел, что там ещё 8 пулл-реквестов висят без движения. Походу, очень годный проект заброшен :( Никто подобрать не хочет?

selivan ★★★ ()

Успешный проект на чистом Ц без всяких Пайфонов, Рубей, Жав и ЖавСкриптов и проч. :-) А ведь кто-то задавался когда-то вопросом, почему Git не писать на цепепе и не использовать «реальную» СУБД :-)

anonymous ()
Ответ на: комментарий от I-Love-Microsoft

В тк нет нормально дефолтной интеграции интерфейса. В маке и винде тк интерфейсы выглядят вполне.

А так в тк вроде ничего такого плохого.

ipeacocks ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Как минимум визуально станет достойно.

А, так ты из этих. По существу какие претензии?

A1 ()
Ответ на: комментарий от A1

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

kirk_johnson ()
Ответ на: комментарий от kirk_johnson

В смысле, уже рабочий tk не выкидывать. Просто сделать рядом на чем-нибудь более вменяемом.

kirk_johnson ()
Ответ на: комментарий от kirk_johnson

Просто сделать рядом на чем-нибудь более вменяемом.

И каждый год добавлять поддержку очередного gtk-n и Qtn? Tk самый вменяемый вариант. Хотя я полностью перешел на tig, если надо посмотреть на граф и понавигироваться по истории.

A1 ()
Ответ на: комментарий от A1

Tk самый вменяемый вариант.

Эхехе. Tk это такой ублюдок от тулкитов. Писать менюшки на нем действительно проще, чем на Qt, но вот настроить шрифты для ВСЕХ Tk приложений ты не можешь. В каждом по-отдельности. Руками. Это немного не то, чего ожидаешь от тулкита в 21 веке, мм?

kirk_johnson ()
Ответ на: комментарий от A1

А ты из каких? Покажи скриншот десктопа, поговорим по существу.

Школьники, напяливающие на себя личину брутального мужика немного* надоели. Tk уродлив, и с этим сложно что-то сделать. Функционально gitk идеален, по крайней мере в том виде, в каком его использую я. Почему не облечь его содержание в достойную форму? Карго-культ «труъ юниксойда» мешает?

* много

anonymous ()
Ответ на: комментарий от kirk_johnson

но вот настроить шрифты для ВСЕХ Tk приложений ты не можешь

Тк прекрасно подхватывает xresources.

Это немного не то, чего ожидаешь от тулкита в 21 веке, мм?

Честно говоря с тулкитами в линуксах совсем все плохо. Дикая фрагментация и сплошное забивание болтов на обратную совместимость. И дальше только хуже, скоро будет gtk-4 и Qt6. Очень печально что много сил сообщества уходит на поддержку зоопарка. Из за этого и дропнул свой редактор, перешел на vim.

Единственное графическое приложение которым пользуюсь — браузер, остальное в эмуляторе терминала.

A1 ()
Ответ на: комментарий от anonymous

Почему не облечь его содержание в достойную форму?

Возми и облеки, епт. Или задонать. Все такие умные ходят с волшебными пестиками.

Карго-культ «труъ юниксойда» мешает?

Просто почти вся гуйня суть ничего не умеющее говно (то есть не решает мои задачи). Карго культ не при чем.

A1 ()

Обновился на 2.7. git gui выглядит отлично, но gitk не изменился, как было квадратное мыло так и осталось.

pftBest ★★ ()
Ответ на: комментарий от I-Love-Microsoft

В репах лежит какой-то QGit, он совсем не то?

anonymous ()
Ответ на: комментарий от anonymous

В репах лежит какой-то QGit, он совсем не то?

Ну оно (QGit) вроде не загнулось, вполне приятно. Но по сравнению с TortoiseHg это конечно позор. Это моё частное мнение.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от A1

В чем выражется неполноценность по сравнению с git clone? Ну кроме как добавить remote.

git clone будет делать копии всех файлов данных, или делать на них хард линки, и нужно делать push/pull в обе сторны - очень неудобно для больших реп.

mashina ★★★★★ ()

Стоило бы добавить, что Python переезжает на git. Так, к слову.

anonymous ()
Ответ на: комментарий от A1

Возми и облеки, епт. Или задонать. Все такие умные ходят с волшебными пестиками.

Уже задонатил, продавив на текущем месте работы бюджет на поддержку того опенсорса, который нам деньги делает. 4к USD в год от конторы и ещё около 300$ из карманов IT-персонала и CTO. Не то, чтобы вау, но мы тут не наркотой торгуем, маржа не та.

Просто почти вся гуйня суть ничего не умеющее говно (то есть не решает мои задачи).

А ты не пользуйся плохой гуйнёй, пользуйся хорошей, которая решает.

Карго культ не при чем.

Я вижу, ага.

anonymous ()

Чтобы решить эту проблему, добавлена возможность вместо good и bad использовать свои собственные термины.

А что, раньше кириллицей ничего приписать к названию ревизии нельзя было?)

Napilnik ★★★★★ ()
Ответ на: комментарий от anonymous

Стоило бы добавить, что Python переезжает на git. Так, к слову.

а можно ссылку? С ходу гуглится только pep 0481, это оно?

Sahas ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.