22 Ноября 2024, 11:07

Git

Автор turbo, 29 Июля 2009, 20:46

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

turbo

Git
29 Июля 2009, 20:46 Последнее редактирование: 27 Июня 2011, 22:18 от Zhek@Ch
[size="3"]Книга про Git опубликована под лицензией Creative Commons[/size]

Электронный вариант книги "Pro Git", подробно рассказывающей об использовании распределенной системы управления исходными текстами Git, лицензирован под лицензией Creative Commons CC-BY-NC-SA. Полный текст книги опубликован на сайте автора книги, продажа печатного варианта начнется в конце августа.

Книга состоит из 9 глав, в которых изложены базовые концепции, особенности миграции с других систем управления версиями, процесс настройки Git-сервера, тонкости работы с Git, описание внутреннего устройства, советы по организации распределенной инфраструктуры разработки.

Автор книги - Scott Chacon, разработчик проекта GitHub.com, участник команды разработчиков языка Ruby и мантейнер официального сайта Git. Из ранних публикаций Scott Chacon можно отметить руководство "Git Internals Peepcode" и участие в проекте "Git Community Book".

http://www.opennet.r...shtml?num=22781

turbo

Git
16 Февраля 2010, 16:57 #1 Последнее редактирование: 27 Апреля 2011, 15:46 от Zhek@Ch
[size="3"]Релиз Git 1.7.0[/size]

Увидел свет релиз распределенной системы управления исходными текстами GIT 1.7.0, отличающийся частичной потерей совместимости с прошлыми версиями, при сохранении полной совместимости на уровне структуры репозитория. В частности, в версии 1.7 по умолчанию запрещено выполнение "git push" в ветки для которых была выполнена команда "checkout" (ветка указывает на HEAD). Незначительные нарушающие совместимость изменения также затронули команды "git send-email", "git status" и "git diff".

Кроме вызывающих несовместимости изменений в новой версии представлено 43 улучшения, связанных как правило с незначительным расширением функциональности отдельных команд. Добавлена возможность "sparse checkout", позволяющая выполнить "checkout" только для части рабочего дерева исходных текстов. При передаче данных по HTTP реализована поддержка отличных от "basic" методов аутентификации, например, "digest". Работа "git grep" теперь основана на встроенной поддержке поиска и больше не вызывает внешнюю утилиту grep, позволяя распараллелить выполнение операций на несколько потоков.

В настоящее время Git используется в таких известных открытых проектах, как Linux ядро, Perl, Gnome, Qt, GCC, Ruby on Rails, Google Android, Wine, Fedora, Debian, X.org, Cairo, Mesa3D, Compiz, VLC, OpenVZ, KVM, Bacula, FreeRADIUS, DragonFlyBSD.

http://www.opennet.r...shtml?num=25431

Zhek@Ch

Git
27 Апреля 2011, 15:48 #2 Последнее редактирование: 27 Апреля 2011, 15:48 от Zhek@Ch
[size="3"]Релиз распределенной системы управления исходными текстами Git 1.7.5[/size]

Объявлено о выходе распределенной системы управления исходными текстами Git 1.7.5. В релиз вошло более 500 изменений от более чем 70 разработчиков.

 Список наиболее значимых изменений:

  • Скрипт автодополнения bash теперь поддерживает автодополнение симметричных различий (symmetric difference) для команды "git diff" (например: "git diff ...bra{TAB}");
  • Минимальная длина сокращенных и уникальных имен объектов теперь может быть задана через переменную core.abbrev;
  • Команда "git apply -v" теперь сообщает о смещенных строках если патч накладывается не точно;
  • "git repo-config" объявлена устаревшей. Вместо нее следует использовать "git config";
  • "git checkout --detach {commit}" теперь можно использовать в качестве синонима "git checkout {commit}^0".
  • Команда "git checkout", примененная в отношении "detached HEAD", теперь выдает на экран предупреждение;
  • "git cherry-pick" и "git revert" теперь могут использовать произвольную стратегию слияния, на манер "git rebase";
  • "git cherry-pick" теперь запоминает коммиты, которые не были применены из-за конфликтов, так что теперь не обязательно использовать команду "commit -c $commit";
  • "git cvsimport" завершается немедленно если сервер CVS оказывается недоступен, без печати сообщений об ошибках;
  • "git fetch" и "git upload-pack" теперь понимают расширение протокола 'no-done', которое позволяет избежать дополнительного обмена пакетами после того как операция "сontent negotiation" будет завершена;
  • "git fetch" теперь умеет рекурсивно загружать суб-модули в автоматическом режиме;
  • "git grep -f {filename}" теперь умеет читать из стандартного потока ввода (символ "-" вместо имени файла);
  • "git init" теперь понимает опцию "--separate-git-dir", которая позволяет создать каталог репозитория в другом месте и подключить его используя механизм gitdir;
  • Команды типа "git log" понимают шаблоны (например: "git log -- '*.txt'"), а также опции "--cherry" и "--cherry-mark", которые могут быть использованы для просмотра двух расходящихся ("diverged") веток без подсветки одинаковых изменений;
  • "git mergetool" обучен работе с программой "beyond compare 3";
  • Теперь команду "git rerere forget" можно вызывать только со спецификатором пути;
  • "git rev-list --objects $revs -- $pathspec" выводит на экран ограниченное число объектов;
  • Команда "git push", вызванная без параметров, выдает более информативное сообщение если в качестве значения опции push.default установлено "tracking" или не указан удаленный репозиторий;
  • У значения "tracking" опции "push.default" теперь есть более информативный синоним: "upstream";
  • У команды "git rerere" появилась новая под-команда "remaining", которая похожа на "status", за исключением того, что не выводит на экран пути, которые уже помечены как "resolved". Команда "git mergetool" уже использует ее.
Также было внесено несколько изменений в код git-p4, vcs-svn, git-svn, gitk, git-gui и документацию. Улучшен основанный на MinGW порт для платформы Windows, кодовая база подготовлена к локализации/интернационализации, исправлено несколько ошибок.


Zhek@Ch

Git
28 Июня 2011, 23:05 #3 Последнее редактирование: 28 Июня 2011, 23:06 от Zhek@Ch
[size="3"]Релиз распределенной системы управления исходными текстами Git 1.7.6 [/size]

Представлен релиз распределенной системы управления исходными текстами Git 1.7.6, в который вошло более 413 изменений от 76 разработчиков.

Из изменений можно отметить:

  • Множественные улучшения в утилите git-svn;
  • Gitweb: переработан метод обработки тегов, добавлен пользовательский интерфейс для выбора часового пояса для отображения дат;
  • Запрещено создание имен веток и тегов, отличающихся только префиксом "-" (например, "tag" и "-tag");
  • Почищен Си-код, связанный с интернационализацией и локализацией (i18n/l10n). Скрипты подготовлены для начала локализации и интернационализации;
  • Оптимизирован процесс выполнения push и pull для репозиториев с большим числом ссылок на идентичные коммиты;
  • При добавлении через "git add" файла, размером больше чем значение core.bigfilethreshold (500 Мб), контент будет упакован напрямую, без одновременного сохранения в памяти сжатого и несжатого представления;
  • При указании в пути ":/" команда будет выполняться только в контексте указанной директории (например, указав ":/path/file", директория /path будет восприниматься как корень, за который нельзя выходить);
  • В "git blame" добавлена опция "--abbrev[=n]" для задания минимального числа шестнадцатеричных символов, отображаемых для участвующих в коммите объектов;
  • При прерывании работы "git commit --interactive" теперь отменяются изменения индекса;
  • В "git commit" добавлена опция "--patch" для прямого перехода в измененную позицию при работе в интерактивном режиме;
  • В "git diff" добавлена поддержка опции "--dirstat=0", позволяющей отобразить директории в которых представлено менее 0.1% изменений (при указании --dirstat=lines выборка делается в зависимости от числа строк в патчах);
  • В "git grep" добавлена опция "-P" для использования регулярных выражений pcre;
  • Добавлена директива конфигурации log.abbrevCommit, в которой задается значение по умолчанию для опции --abbrev-commit;
  • В "git merge" для указания прошлой ветки можно использовать символ "-";
  • В скрипте p4-import (из contrib) добавлена опция "--preserve-user";
  • В "git read-tree -m" добавлена опция "--dry-run", которая сообщает о проблемах со слиянием без изменения индекса и рабочего дерева;
  • В "git submodule update" добавлена опция "--force" для принудительной замены локальных изменений наиболее актуальными версиями кода.

Zhek@Ch

Git
08 Августа 2011, 00:09 #4 Последнее редактирование: 08 Августа 2011, 00:10 от Zhek@Ch
[size="3"]git.js - реализация Git, написанная целиком на Javascript [/size]
 
В рамках проекта git.js развивается реализация Git, написанная целиком на языке Javascript. Проект git.js поддерживает работу как внутри веб-браузера, так и виде работающего в режиме командной строки клиента, запускаемого под управлением Javascript-сервера node.js. Код проекта распространяется под лицензией MIT.

В настоящий момент поддерживается только работа в режиме чтения. Возможно выполнение таких операций, как просмотр лога совершенных коммитов, вывод списка веток и отображение информации о находящихся в репозитории проектах. Дополнительно подготовлен API, позволяющий создавать размещенные в памяти репозитории, просматривать дерево объектов, формировать списки различий (diff), запрашивать объекты из удаленных репозиториев при помощи протоколов доступа к Git поверх HTTP. Из планов на будущее отмечается реализация поддержки записи в репозиторий, выполнения коммитов и создание веток.

Из реализаций Git на скриптовых языках программирования также можно упомянуть проект Dulwich, в рамках которого создана реализация поддержки форматов и протоколов Git на чистом Python. Проект позволяет создавать web-фронтэнды к Git-репозиторям, не требующие вызова внешних команд Git и работающие с данными репозиториями напрямую. На базе Dulwich организована поддержка git в системе Google Code.