Интернет магазин китайских планшетных компьютеров



Компьютеры - Git - Особенности, преимущества и недостатки

07 мая 2011


Оглавление:
1. Git
2. Особенности, преимущества и недостатки
3. Графические интерфейсы
4. Обмен изменениями с другими системами контроля версий



Преимущества и недостатки git по сравнению с централизованными системами управления версиями типичны для любой распределённой системы и описаны в статье «Система управления версиями». Если же сравнивать git с «родственными» ей распределёнными системами, можно отметить, что git изначально идеологически ориентирован на работу с изменениями, а не с файлами, «единицей обработки» для него является набор изменений, или патч. Эта особенность прослеживается как в структуре самой системы, так и в принципах построения команд; она отражается на производительности системы в различных вариантах её использования и на достоинствах и недостатках git по сравнению с другими DVCS.

Часто называемые преимущества git перед другими DVCS:

  • Высокая производительность.
  • Развитые средства интеграции с другими VCS, в частности, с CVS, SVN и Mercurial. Помимо разнонаправленных конвертеров репозиториев, имеющиеся в комплекте программные средства позволяют разработчикам использовать git при размещении центрального репозитория в SVN или CVS, кроме того, git может имитировать cvs-сервер, обеспечивая работу через клиентские приложения и поддержку в средах разработки, специально не поддерживающих git.
  • Продуманная система команд, позволяющая удобно встраивать git в скрипты.
  • Качественный веб-интерфейс «из коробки».
  • Репозитории git могут распространяться и обновляться общесистемными файловыми утилитами архивации и обновления, такими как rsync, благодаря тому, что фиксации изменений и синхронизации не меняют существующие файлы с данными, а только добавляют новые. Для раздачи репозитория по сети достаточно любого веб-сервера.

В числе недостатков git обычно называют:

  • Некоторое неудобство для пользователей, переходящих с других VCS. Команды git, ориентированные на наборы изменений, а не на файлы, могут вызвать недоумение у пользователей, привыкших к файл-ориентированным VCS, таким как SVN. Например, команда «add», которая в большинстве систем управления версиями производит добавление файла к проекту, в git делает совершенно другое: она находит и подготавливает к фиксации сделанные в проекте или его части изменения.
  • Использование для идентификации ревизий хэшей SHA1, что приводит к необходимости оперировать длинными строками вместо коротких номеров версий, как во многих других системах.
  • Большие накладные расходы при работе с проектами, в которых делаются многочисленные несвязанные между собой изменения файлов. При работе в таком режиме размеры наборов изменений становятся достаточно велики и происходит быстрый рост репозиториев.
  • Большие затраты времени, по сравнению с файл-ориентированными системами, на формирование истории конкретного файла, истории правок конкретного пользователя, поиска изменений, относящихся к заданному месту определённого файла.
  • Отсутствие отдельной команды переименования/переноса файла, из-за чего подобная операция отражается в истории как удаление файла и создание его в другом месте, что требует специального анализа для определения, что в действительности файл был просто перенесён.
  • Система не умеет отслеживать пустые каталоги.
  • Некоторые команды работают неожиданно, в частности, могут приводить к неочевидным ошибкам или требовать для правильной работы указания специальных параметров, когда применяются к исходно пустому репозиторию или к репозиторию, в котором ещё не было сделано ни одного коммита.

В ряде публикаций, относящихся преимущественно к 2005—2008 годам можно встретить также нарекания в отношении документации git, отсутствия удобной windows-версии и удобных графических клиентов. В настоящее время эта критика неактуальна: существует версия git на основе MinGW, и несколько высококачественных графических клиентов для различных операционных систем, в частности, под Windows имеется клиент TortoiseGit, идеологически очень близкий к широко распространённому TortoiseSVN — клиенту SVN, встраиваемому в оболочку Windows.



Просмотров: 7302


<<< GIMP
GNOME >>>