Обновить
17.06

Git *

Система управления версиями файлов

Сначала показывать
Порог рейтинга
Уровень сложности

Самый большой репозиторий Git на свете

Время на прочтение10 мин
Количество просмотров25K
Прошло уже три месяца с тех пор, как я опубликовал свою первую статью о наших попытках масштабировать Git для очень крупных проектов при помощи инициативы, которую мы назвали «Git Virtual File System». Напомню: GVFS в сочетании с некоторыми правками в Git позволяет работать с ОЧЕНЬ большими репозиториями, виртуализируя как папку .git, так и рабочую директорию. Вместо того, чтобы скачивать репозиторий целиком и проверять все файлы, инструмент динамично скачивает только те фрагменты, которые вам нужны, выявляя их на основании того, над чем вы работали до этого момента.

За это время много чего произошло, и я хочу поделиться с вами новостями. Три месяца назад GVFS был только мечтой. Не в том смысле, что его не существовало — у нас была готовая реализация — но в том, что он еще не показал себя в деле. Мы опробовали его на больших репозиториях, но не успели внедрить в рабочий процесс для сколько-нибудь значимого количества разработчиков. Поэтому у нас было только умозрительное убеждение, что все будет работать. Теперь же у нас есть подтверждение этому.

Читать дальше →

Вышел GitLab 9.1: Service Desk, Burndown Charts и канареечные развертывания

Время на прочтение14 мин
Количество просмотров9.1K

image


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


В версии GitLab 9.1 появились канареечные развертывания. Они позволяют вам развертывать новый код на небольшой части вашей инфраструктуры. Если обнаружатся проблемы, они успеют затронуть лишь малую часть пользователей, и вы сможете легко откатиться к предыдущей версии. Это быстрая обратная связь от боевого окружения.


С новой фичей Service Desk ваши пользователи могут отправлять свои вопросы и сообщать о проблемах на специальный адрес электронной почты, отдельный для каждого проекта. По письму от пользователя Service Desk заводит конфиденциальную задачу (issue) в вашем проекте. Когда кто-либо комментирует задачу, пользователь получает этот комментарий в ответном письме. Это — встроенный непосредственно в GitLab канал обратной связи от пользователей.


Читать дальше →

Вышла новая версия Clarive 6.8

Время на прочтение2 мин
Количество просмотров2.2K
Вышла новая версия платформы автоматизации операций доставки и развертывания изменений Clarive 6.8.

Платформа Clarive написана на Perl, имеет встроенный репозиторий Git, конфигурация и данные хранятся в MongoDB, устанавливается как правило на Linux, имеет визуальный редактор сценариев установки версий прикладного и системного ПО, поддерживает хосты и на windows, и на Unix, централизовано управляет средами разработки, тестирования, промышленной эксплуатации.

Что нового:

  • Анализ причин сбоев сценариев
  • Статический анализ код сценариев развертывания
  • Стадии пайплайна
  • Пошаговый просмотр исполнения задач
  • Асоциация пайплайн правил с проектами
  • Группы пользователей
  • Анализ и просмотр логов в реальном времени
  • Обработка событий
  • Аутентификация MongoDB
Читать дальше →

Универсальная работа с VCS/SCM в рамках автоматизации с FutoIn CID

Время на прочтение6 мин
Количество просмотров2.2K

use cases


Для некоторых современных программистов не существует систем контроля версий кроме Git, но на практике Subversion всё ещё востребован, а Mercurial имеет своих ярых сторонников. Быстрый поиск в подкрепление.


В результате DevOps'ы не монопроектных компаний встречаются с необходимостью автоматизировать работу с весьма разными системами. При этом у каждой есть свои нюансы и неизбежно появляются скрытые ошибки в сценариях, выстреливающие в самый неподходящий момент. Возникает потребность в предсказуемом поведении с минимальной "гибкостью", а не пёстрым букетом возможностей.

Читать дальше →

Вышел GitLab 9.0: Подгруппы и Deploy Boards

Время на прочтение14 мин
Количество просмотров13K

Недавно мы выпустили GitLab 9.0, через 18 месяцев после выпуска версии 8.0. За это время мы сделали множество значительных изменений в GitLab, выпуская новую версию 22 числа каждого месяца. Давайте кратко подведем итоги, к которым мы пришли с выпуска 8.0, и посмотрим, как старые фичи соотносятся с новыми из 9 версии. Или вы можете перейти к фичам, появившимся в 9.0.


Выделение подпроекта в отдельный репозиторий на github

Время на прочтение3 мин
Количество просмотров19K

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


Итак, что дано:


  • Есть большой репозиторий, содержащий множество папок. Каждая папка – это отдельный проект.

Что необходимо сделать:


  • Одну из папок перенести в отдельный репозиторий с сохранением ее истории коммитов.

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


Я использовал стандартный гитовый filter-branch. За основу я взял следующие статьи:



В этом посте я хочу немного адаптировать процесс для лучшего восприятия.

Читать дальше →

Масштабирование Git (и кое-какая предыстория)

Время на прочтение10 мин
Количество просмотров12K

Несколько лет назад Microsoft приняла решение начать долгий процесс по восстановлению системы разработки во всей компании. Мы большая компания, с множеством коллективов — у каждого собственные продукты, приоритеты, процессы и инструменты. Есть некоторые «общие» инструменты, но их много разных — и ОЧЕНЬ БОЛЬШОЕ количество разработанных внутри компании инструментов одноразового использования (под коллективами я имею в виду подразделения — тысячи инженеров).

У этого есть отрицательные стороны:

  1. Множество избыточных инвестиций в коллективы, которые разрабатывают похожие инструменты.
  2. Невозможность финансировать какой-либо инструментарий до «критической массы».
  3. Затруднения для сотрудников в перемещении по компании из-за разных инструментов и процесса.
  4. Сложность в обмене кодом между организациями.
  5. Разногласия с новичками в начале работы из-за чрезмерного изобилия инструментов «только для MS».
  6. И так далее...
Читать дальше →

GitHub внедрил систему обнаружения коллизий SHA-1

Время на прочтение3 мин
Количество просмотров7.7K


С 20 марта 2017 года при вычислении хешей SHA-1 на GitHub определяется и отклоняется любой контент, который обладает признаками возможной атаки SHAttered на коллизию хешей SHA-1. Об этом компания написала в официальном блоге. Таким образом, никто не сможет размещать здесь файлы из пары с одинаковыми хешами, но разным контентом. Хотя пока на практике таких атак никто не проводил нигде, кроме торрентов, но GitHub решил перестраховаться на всякий случай.
Читать дальше →

Немного о приватности реальных Git-репозиториев

Время на прочтение4 мин
Количество просмотров22K
logo

Введение


Здравствуйте, уважаемые читатели. Сегодня на повестке дня у нас небольшое тестирование —
первых ≈100 тысяч по популярности сайтов в интернете (ранжирование на основе статистики посещаемости с Alexa Rank). Стоит отметить, что оное тестирование будет достаточно узконаправленным, а именно — проверим каждый сайт на предмет существования и открытости Git-репозитория без аутентификации прямо из веба по url-адресу искомого. Напомню, что такая брешь в безопасности зачастую позволяет прочитать актуальные исходные коды на сервере, получить чувствительную информацию (файлы конфигов, структуру системы и т.д.) и, в последствии, получить определенного рода права на сервере. Рай для различного рода негодяев, да и только :)
Совершенно аналогичную проверку я делал для себя порядка 100 дней назад, и сегодня мы сделаем это ещё раз, посмотрим что изменилось и что с этим делать.
Разумеется, использовать будем список сайтов, полученный в рамках первого тестирования.
Для заинтересовавшихся милости прошу под кат.
Читать дальше →

Невидимые друзья вашего github-репозитория

Время на прочтение13 мин
Количество просмотров18K
image
Github это незаменимый инструмент, прочно вошедший в жизнь практически каждого разработчика.

Хотя многие из нас используют его постоянно, не все знают, что существует большое количество сторонних (и бесплатных) сервисов и инструментов, которые тесно интегрированы с github и расширяют его функциональность.

В данной статье мы уделим внимание, в основном, инструментам, работающим в инфраструктуре npm. Полный список сервисов, интегрирующихся с github, можно посмотреть на странице github integrations directory.

Сегодня в выпуске:




Читать дальше →

Вносите изменения в код понемногу

Время на прочтение4 мин
Количество просмотров26K


Всегда было любопытно узнать, что и как думают кодеры за океаном? Логично предположить, что техническое мышление и основные процессы должны быть схожими с российскими разработчиками. Под катом возможность сравнить наши походы с «тамошними». Если у вас все хорошо с английским, оригинал публикации и самого автора можно найти по ссылке
Читать дальше →

Безболезненное разрешение Merge конфликтов в Git

Время на прочтение8 мин
Количество просмотров180K

Предлагаю читателям "Хабрахабра" перевод публикации "Painless Merge Conflict Resolution in Git"
из блога blog.wuwon.id.au.


В моей повседневной работе, часто приходится иметь дело со множеством git ветвей (branch). Это могут быть ветви промежуточных релизов, ветви с устаревшим API находящиеся на поддержке для некоторых клиентов, или ветви с экспериментальными свойствами. Лёгкость создания ветвей в модели Git так и соблазняет разработчиков создавать все больше и больше ветвей, и как правило бремя от большого количества ветвей становится очень ощутимым, когда приходится все эти ветви поддерживать и периодически делать слияния (merge) с другими ветвями.


Читать дальше →

Представляем Upsource 2017.1

Время на прочтение3 мин
Количество просмотров14K

Привет, Хабр!




На прошлой неделе мы выпустили новую версию Upsource 2017.1 — первое крупное обновление в этом году. В новую версию вошло множество новых функций, ряд улучшений по части юзабилити и не только. Теперь к вашим услугам кросс-проектный текстовый поиск, браузерные уведомления, отслеживание прогресса ревью, поддержка squash/rebase, новые воркфлоу, базовая поддержку GitLab и многое другое!

Посмотрите краткий обзор новой версии на английском языке:


Читать дальше →

Ближайшие события

Линус Торвальс высказался о коллизиях SHA-1 в репозиториях Git: бояться нечего

Время на прочтение3 мин
Количество просмотров25K
Несколько дней назад сотрудники компании Google и Центра математики и информатики в Амстердаме представили первый алгоритм генерации коллизий для SHA-1. За десять лет существования SHA-1 не было известно ни об одном практическом способе генерировать документы с таким же хешем SHA-1 и цифровой подписью, как в другом документе, но теперь такая возможность появилась.

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

Первый способ генерации коллизий для SHA-1

Время на прочтение4 мин
Количество просмотров44K


Коллизии существуют для большинства хеш-функций, но для самых хороших из них количество коллизий близко к теоретическому минимуму. Например, за десять лет с момента изобретения SHA-1 не было известно ни об одном практическом способе генерации коллизий. Теперь такой есть. Сегодня первый алгоритм генерации коллизий для SHA-1 представили сотрудники компании Google и Центра математики и информатики в Амстердаме.

Вот доказательство: два документа PDF с разным содержимым, но одинаковыми цифровыми подписями SHA-1.

Читать дальше →

Серия видеоуроков по Git для новичков

Время на прочтение1 мин
Количество просмотров115K
Скорее всего, если вас привлекло название статьи, то вы начинаете свой путь знакомства с системой контроля версий Git. В данной статье я приведу 10+ видео о пошаговом вхождении в контроль версии используя Git. Данного курса будет вполне чем достаточно для работы с такими популярными сервисами как GitHub и Bitbucket.

Однажды мой знакомый, который только начинал свой путь в ИТ кинул мне данный мемчик что слева, с вопросом "А чем плохо то?", поэтому чтобы понимать данную шутку и уметь работать с самым популярным на сегодня VCS (Version Control System) рекомендую к ознакомлению серии видеоуроков, которую я привел ниже.
Читать дальше →

Версионирование артефактов сборки в Gradle используя git имена тегов, бранчей и коммитов

Время на прочтение5 мин
Количество просмотров12K
С переездом из SVN на GIT и gitlab (плюс переезд из Jenkins на Gitlab-CI, но его использование также упомянём), встал вопрос версионирования получаемых артефактов сборки приложения.

В SVN был всем привычный номер ревизии, монотонно увеличивающийся с каждым коммитом. Его было удобно добавлять в номер версии, и это решало большинство проблем. Но git конечно предоставляет множество плюшек, и стоило убеждать руководство и всё команду перевести проект на него…
Зато пришлось отстроить заново процесс версионирования получаемых артефактов сборки.

В итоге остановились на очень хорошем Gradle плагине github.com/nemerosa/versioning, о его использовании я и собираюсь рассказать.
Читать дальше →

Вышел GitLab 8.16: Поддержка Google Container Engine, встроенный Prometheus + тайм-трекинг в CE

Время на прочтение8 мин
Количество просмотров8.9K

История с удалением базы конечно затмила все остальные новости про ГитЛаб. Так что если вы пропустили релизный пост про изменения и новые функции в GitLab 8.16, ниже — его перевод:


Наша цель — сделать участие в разработке доступным для каждого. Для этого мы делаем инструментарий GitLab простым в использовании, настройке и обслуживании. В предыдущей версии GitLab мы реализовали простую настройку непрерывной интеграции (continuous integration, CI) и автоматическое развертывание (deploy) в Kubernetes. А в первом релизе нового года мы делаем следующий шаг к нашей цели.


Subversion vs. Git: Развенчивание мифов о развенчивании мифов

Время на прочтение4 мин
Количество просмотров62K
Subversion vs. Git: Myths and Facts утверждает, что развеивает некоторые мифы о системах контроля версий. Я усомнился в их «фактах» и проверил некоторые из них. Результатом проверки стал подорванный авторитет сайта, и скептическое отношение к остальным утверждениям.
Читать дальше →

SQL инъекция в GitHub Enterprise

Время на прочтение7 мин
Количество просмотров14K


Привет Хабр,

Ниже рассказ автора Orange Tsai о том, как он целенаправленно искал уязвимость в корпоративной версии GitHub и в итоге обнаружил возможность SQL инъекции. Тут, на хабре, ранее уже публиковался перевод другой его статьи "Как я взломал Facebook и обнаружил чужой бэкдор".
Читать дальше →

Вклад авторов