stash atlassian что это
Установка Atlassian STASH, грабли при установке в CentOS
Введение
В связи с тем, что не многие, как оказалось, знают про Stash немного о нём. На сайте производителя даётся такое описание:
Интерфейс Stash позволяет с легкостью выполнять задачи по администрированию и управлению. Stash хранит ваши растущие Git репозитории в безопасности в пределах зоны действия файервола. Добавляйте пользователей и группы пользователей, устанавливайте детализированный правила прямо из UI (пользовательского интерфейса). Создавайте и управляйте репозиториями в рамках Stash. Быть в курсе всех командных дел и вывести их в единый список – дело всего пары минут.
Грубо говорят Stash от Atlassian — это ваш локальный ГитХАБ. Особая прелесть этого инструмента заключается в том, что он очень тесно интегрирован с той же JIRA от Atlassian, что обеспечивает гораздо более удобную ревизию кода по выполняемой задаче и единый интерфейс для этого.
Установка
Установка указанного продукта достаточно проста. Но я всё таки нашёл для себя грабли.
Отчасти это было связано с тем, что ставил я на CentOS. С этим дистрибутивом я до недавнего времени опыта почти не имел.
Фактически данная статья это вольный перевод Getting Started руководства с сайта Atlassian в разделе установки в Linux.
Вначале нам нужно проверить наличие нужных версий дополнительного ПО. Тут мы можем увидеть поддерживаемые версии.
1. Java
Stash Fails to Startup after installation when Running on OpenJDK
Symptoms
The following exception is reported when starting up Stash:
A fatal error has occurred
The following problem occurred which prevents Atlassian Stash from starting correctly:
OpenJDK 64-Bit Server VM is an unsupported JVM.
Cause
OpenJDK is not a supported environment for Stash.
Resolution
Switch to the latest version of Oracle JDK to help resolve the problem.
2. Git
Везде где я находил рекомендации по его добавлению указано, что необходимо перевести rpmforge в enable.
Сделал.
yum update
и ничего не обновилось.
yum install git
git так и остался старой версии.
Решение оказалось простым, но искал я его, почему то, долго.
достаточно активировать репозиторий [rpmforge-extras] в файле /etc/yum.repos.d/rpmforge.repo
Выставляем enable=1, и вот удача:
3.Perl
минимальные требования: >= 5.8.8
4.Stash
Теперь ставим сам Stash.
Качаем архив дистрибутивом с этой страницы. И разворачиваем архив в желаемое место установки. Например в /usr/local/stash Это у нас будет \
Перед запуском нам необходимо поправить файл \ /bin/setenv.sh
Раскомментируем параметр STASH_HOME и укажем место для хранения данных STASH
например
Detecting JVM PermGen support…
PermGen switch is supported. Setting to 256m\n
Using STASH_HOME: /home/stash-home-data
Using CATALINA_BASE: /usr/local/etc/stash/atlassian-stash-2.10.1
Using CATALINA_HOME: /usr/local/etc/stash/atlassian-stash-2.10.1
Using CATALINA_TMPDIR: /usr/local/etc/stash/atlassian-stash-2.10.1/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/etc/stash/atlassian-stash-2.10.1/bin/bootstrap.jar:/usr/local/etc/stash/atlassian-stash-2.10.1/bin/tomcat-juli.jar
Using CATALINA_PID: /usr/local/etc/stash/atlassian-stash-2.10.1/work/catalina.pid
Success! You can now use Stash at the following address:
If you cannot access Stash at the above location within 3 minutes, or encounter any other issues starting or stopping Atlassian Stash, please see the troubleshooting guide at:
Как и указано, доступ к web интерфейсу появляется не сразу, а в течении нескольких минут. Это связано с подготовкой данных.
Далее мы открываем http:// :7990/ и следуем через мастер установки. Этот процесс я описывать не буду, т.к. там всё элементарно.
PS: Обсуждение статьи и замечания жду в комментариях.
UPD: внёс некоторые коррективы в статью, добавил описание.
Процесс Code Review с Atlassian Stash
Всем привет! Вот и наша компания решила завести блог на Хабре (в конце концов, не вечно же читать чужие статьи). В профиле компании вы можете посмотреть, чем мы занимаемся. В ближайшее время мы предложим вашему вниманию цикл статей по широкому спектру тем: от сервисов дистрибуции и поддержки тестовых сборок iOS приложений до программного управления IIS. А первая наша публикация посвящена Atlassian Stash.
На текущий день на хабре практически отсутствует какая бы то ни было информация об Atlassian Stash (всего один анонс и одна статья на тему установки). Хотя инструмент, на самом деле, прекрасный, и определенно стоящий рассмотрения в случае использования всего стэка Atlassian. Я хочу рассказать что это такое и как эту штуку можно добавить в процесс разработки.
Небольшая предыстория — у нас появился новый заказчик и возможность построить инфраструктуру для разработки практически с нуля. Сразу захотелось сделать «всё правильно» — git/CI/code-review и т.д. Все вроде как согласны, что code-review это важно и нужно, меж тем далеко не все его используют, а если используют, то в основном некую постфактум версию — закоммитил в транк, кто-то позже посмотрел. Где-то по workflow запрещено резолвить задачу, пока кто-нибудь не посмотрел код коммита, ну или другие устно/письменно-оговорённые ограничения. Нам же хотелось сделать процесс более контролируемым с технической точки зрения.
Из решений для / с поддержкой code-review на ум пришли: TFS, Atlassian Stash, Github, Gerrit, новенький Upsource от JetBrains.
Gitflow
Как правильно организовать ветки, чтобы потом не было мучительно больно, уже давно придумано до нас, поэтому на самом workflow останавливаться не буду — просто напишу примерный алгоритм:
Там показано как всё круто интегрируется, но кое-что из всего этого (например, кнопка Start Review) у нас не заработало. Возможно, проблема с версией.
git stash
Команда git stash позволяет на время «сдать в архив» (или отложить) изменения, сделанные в рабочей копии, чтобы вы могли применить их позже. Откладывание изменений полезно, если вам необходимо переключить контекст и вы пока не готовы к созданию коммита.
Откладывание кода
Команда git stash сохраняет неподтвержденные изменения (индексированные и неиндексированные) в отдельном хранилище, чтобы вы могли вернуться к ним позже. Затем происходит откат до исходной рабочей копии. Например:
Теперь вы можете вносить изменения, создавать новые коммиты, переключаться между ветками и выполнять другие операции Git. По необходимости отложенные изменения можно будет применить позже.
Отложенные изменения сохраняются в локальном репозитории Git и не передаются на сервер при выполнении команды push.
Применение отложенных изменений
Чтобы применить ранее отложенные изменения, воспользуйтесь командой git stash pop :
При извлечении отложенных изменений они удаляются из набора и применяются к рабочей копии.
Вы также можете применить изменения к рабочей копии, не удаляя их из набора отложенных изменений. Для этого воспользуйтесь командой git stash apply :
Это полезно, если вам нужно применить одни и те же отложенные изменения к нескольким веткам.
Теперь вы умеете выполнять основные операции с отложенными изменениями. Однако необходимо помнить о следующей особенности команды git stash : по умолчанию Git не создает отложенные изменения для неотслеживаемых или игнорируемых файлов.
Откладывание неотслеживаемых или игнорируемых файлов
По умолчанию команда git stash создает следующие отложенные изменения:
При этом следующие файлы отложены не будут:
Поэтому если в приведенный выше пример добавить третий файл — неиндексированный (т. е. без выполнения команды git add ), при выполнении команды git stash этот файл не будет отложен.
Управление несколькими наборами отложенных изменений
Рекомендуем добавлять к отложенным изменениям описание в качестве подсказки. Для этого используется команда git stash save «сообщение» :
По умолчанию команда git stash pop применяет последний набор отложенных изменений: stash@
Если вам нужно применить определенный набор ранее отложенных изменений, укажите его идентификатор в качестве последнего аргумента. Это можно сделать так:
Просмотр различий между наборами отложенных изменений
Частичное откладывание изменений
Нажмите ?, чтобы увидеть полный список команд для работы с участками кода. Часто используются следующие команды:
Команда | Описание |
---|---|
/ | искать участок кода по регулярному выражению |
? | Справка |
n | не откладывать участок кода |
q | выйти (все выбранные участки будут отложены) |
s | разделить участок кода на меньшие части |
y | отложить участок кода |
Специальной команды для прерывания не предусмотрено, но прекратить процесс откладывания можно, нажав CTRL-C (сигнал SIGINT).
Создание ветки из отложенных изменений
Если изменения в ветке отличаются от отложенных изменений, операции извлечения или применения последних могут привести к конфликтам. Вместо этого вы можете создать новую ветку с помощью команды git stash branch и применить отложенные изменения к ней. Это можно сделать так:
Новая ветка создается на основе коммита, изменения в котором использовались при создании набора. Затем к этой ветке применяются извлеченные изменения.
Удаление отложенных изменений
Удалить определенный набор отложенных изменений можно с помощью команды git stash drop :
Следующая команда удаляет все наборы отложенных изменений:
Принцип работы команды git stash
В зависимости от отложенных элементов выполнение команды git stash создает два или три новых коммита. На приведенной выше схеме создаются следующие коммиты:
Ниже показано, как команда git stash шифрует рабочий каталог и раздел проиндексированных файлов в виде коммитов:
Перед откладыванием изменений в рабочем каталоге могут находиться изменения отслеживаемых, неотслеживаемых и игнорируемых файлов. Часть этих изменений также может быть проиндексирована в разделе проиндексированных файлов.
При выполнении команды git stash pop изменения из описанных выше коммитов применяются к рабочей копии и разделу проиндексированных файлов, извлеченный коммит удаляется из журнала ссылок на отложенные изменения, и ссылки в журнале сдвигаются. Извлеченные коммиты не удаляются сразу, но помечаются к удалению в будущем при сборе мусора.
Готовы изучить Git?
Ознакомьтесь с этим интерактивным обучающим руководством.
Описание Stash
Управление репозиторием Git для корпоративных команд
Стоимость Stash
Пользователей | Ваш сервер (1-й год) | Наш хостинг (на год) |
10 | $ 50 | $ 130 |
25 | $ 1,800 | $ 2,220 |
50 | $ 3,300 | $ 4,050 |
100 | $ 6,000 | $ 7,050 |
250 | $ 12,000 | $ 15,100 |
500 | $ 16,000 | $ 20,100 |
1,000 | $ 28,000 | $ 34,000 |
2,000 | $ 48,000 | $ 58,000 |
2,000+ | звонить | звонить |
Пользователей | Обновление (1 год) | |
10 | $ 10 | |
25 | $ 990 | |
50 | $ 1,815 | |
100 | $ 3,300 | |
250 | $ 6,600 | |
500 | $ 8,800 | |
1,000 | $ 15,400 | |
2,000 | $ 26,400 | |
2,000+ | звонить | звонить |
на 50 | на 100 | на 250 | на 500 | на 1,000 | на 2,000 | на 2,000+ | |
с 25 | $ 2,400 | $ 5,100 | $ 11,100 | $ 15,100 | $ 27,100 | $ 47,100 | звонить |
с 50 | $ 4,350 | $ 10,350 | $ 14,350 | $ 26,350 | $ 46,350 | звонить | |
со 100 | $ 9,000 | $ 13,000 | $ 25,000 | $ 45,000 | звонить | ||
с 250 | $ 10,000 | $ 22,000 | $ 42,000 | звонить | |||
с 500 | $ 20,000 | $ 40,000 | звонить | ||||
с 2,000 | $ 34,000 | звонить |
На днях компания Atlassian представила свою новую программу предложений для крупных компаний.
DATA CENTER
Что же такое Data Center?
Как следует из названия данная опция создана для решения задач высокой доступности и производительности при масштабировании на ваших серверах.
Высокая доступность
Опция Data Center предлагает активную/активную кластерную среду для обеспечения пользователям непрерывного доступа к критически важным приложениям в случае неожиданного сбоя оборудования.
Мгновенная масштабируемость
Data Center кластер спроектирован для обеспечения увеличения количества узлов дата центра без отключения системы. Для добавления нового узла в JIRA Data Center кластер просто установите JIRA и обновите конфигурационный файл, чтобы она была частью кластера. Это позволит быстро увеличить мощность по мере роста нагрузки.
Производительность при масштабировани
Каждый узел в вашем дата центре увеличивает возможности конкуретных пользователей без ущерба для общей производительности. В ходе нагрузочного тестирования в своей лаборатории Атлассиан обнаружил увеличение линейной мощности при использовании 2 и 4 кластерных узлов по сравнению с одиночным сервером JIRA при сохранении того же времени отклика. Эта дополнительная мощность обеспечивает большую устойчивость при пиковых нагрузках.
Цены и лицензирование
Существующие лицензии на плагины совместимы с опцией пока количество пользователей по лицензии плагина больше или равно количеству пользователей в опции Data Center.
В дополнение к опции Data Center для JIRA и Confluence Atlassian представляет новый уровень сервиса и программу технической поддержки для крупных клиентов.
Премиальная поддержка
Это уровень поддержки предоставляет доступ к профильной команде старших инженеров поддержки с улучшенными SLA и доступностью. У этой команды есть глубокие знания вашей среды для быстрого решения и управления критическими инцидентами.
Технический аккаунт менеджер
Enterprise партнеры
Cеть экспертов Atlassian насчитывает более 30 авторизованных партнеров корпоративного уровня хорошо обученных на корпоративных продуктах и имеющих богатый опыт внедрения комплексных решений. Вы можете найти enterpeise партнера на сайте Atlassian.
С момента анонса данных Enterprise предложений предыдущие Enterpise опции продававшиеся для JIRA, Confluence и Stash более не доступны. С подробностями можно ознакомиться на сайте компании Atlassian.
GIT, как система распределенной работы, предлагает множество вариантов взаимодействия разработчиков в проекте. Команды переходят на GIT в поисках большей гибкости работы с кодом в условиях крупной компании. Распространенной практикой стало использование веток и форков, при этом не утихают споры о том, как лучше их использовать в рамках всей компании.
Сегодня мы рады представить Stash 2.4, который обеспечит необходимую гибкость большим командам для управления их бизнес-процессами разработки с использованием GIT. Этот релиз включает несколько важных функций для управления вашими GIT репозиториями, расположенными за фаерволом:
Совместная разработка в GIT с использованием форков
Почему форки?
Подробнее о том, почему крупным организациям стоит принять на вооружение использование форков, можно посмотреть в статье “Why Forks?“.
Вносите изменения через pull-запрос
Прелесть использования форков заключается в том, что изменения, сделанные в форк-копии репозитория, никак не затрагивают основной код. Когда форк-копия готова выйти на сцену, можно сделать запрос, чтобы передать изменения в основной репозиторий. Использование pull-запросов в Stash облегчает внесение изменений. Такой подход позволяет другим разработчикам просмотреть и обсудить изменения перед тем как они станут официальной частью кода. Таким образом, абсолютно все изменения могут вноситься в основной репозиторий опираясь на настройки pull-запроса и разрешения веток.
Персональные репозитории
В Stash 2.4 мы добавили возможность создавать персональные репозитории. Персональный репозиторий не относится ни к одному проекту. У разработчиков появляется свобода пробовать новшества или хранить свою незавершенную работу, начинать свои проекты, участвовать в отладке чужих проектов или добавлять функции в общие компоненты. Персональные репозитории могут быть открытыми или закрытыми, используйте разрешения на уровне репозиториев, чтобы взаимодействовать с другими пользователями и группами так, как вам удобно.
Поскольку теперь у пользователя появилась возможность создавать персональные репозитории и персональные форки, необходимо было обеспечить удобный доступ ко всем этим штукам. Так что пользовательские профили мы тоже подправили.
Репозитории и разрешения
Администраторы могут делать проекты настолько закрытыми или открытыми, насколько это нужно. Предоставьте доступ к отдельным репозиториям в пределах проекта, не давая прав на весь проект. Ниже приведены несколько сценариев, когда это может пригодиться:
Stash предлагает вашей команде на выбор несколько вариантов распределенной работы, и эта гибкость позволяет вам выдавать результат быстрее.
Всегда делайте форк перед коммитом в Stash 2.4
Незнакомы со Stash? Начните создавать форки уже сегодня с бесплатной триальной версией
Уже работаете со Stash? Вы можете обновиться до версии 2.4 с помощью одного клика. Ознакомьтесь с документацией по релизу и вперед.
Несколько недель назад я занимался реструктуризацией кода, написанного моим коллегой из Боулдера (сам я нахожусь в Сан-Франциско).
Один из этих вариантов вполне устроил бы большинство разработчиков, но не меня. Мы с Бобом и так детально обсуждаем изменения кода через HipChat, добавление возможности писать код совместно – вот это было бы идеально.
Воплощение в жизнь
Ситуация, описанная выше, случается со мной не в первый раз. Вообще-то она случается постоянно, и я уверен, не только со мной. Я давно мечтал о редакторе, который позволял бы совместное написание кода в реальном времени. Многие пытались создать нечто подобное, но, на мой взгляд, все было не то.
Так что несколько недель назад, когда мы с коллегой Тимом Петерсеном обсуждали, чем бы в этот раз заняться в рамках квартального ShipIt, я предложил решить именно эту проблему. Всего один день совместной работы, и мы предложили решение.
Stash Realtime Editor позволяет в реальном времени редактировать файлы напрямую из интерфейсов Stash, никаких копирований-клонирований, никаких IDE, никаких локальных редакторов. Вы можете поделиться ссылкой с коллегой и редактировать или проверять код вместе. После того, как нужные изменения сделаны, вы можете сразу закоммитить их в Stash без необходимости выполнять push в репозиторий. Ваш коммит будет сохранен отдельной веткой (branch) и впоследствии можно будет провести слияние простым pull-запросом.
OT делает real-time редактирование файлов надежным и предсказуемым и позволяет пользователю видеть, чем заняты другие пользователи (например, выделение, подчеркивание, правка и так далее).
Stash Realtime Editor продолжает работать даже при отсутствии сети. Предположим, вы работали с кем-нибудь над файлом, потом отключили ноутбук и продолжили вашу работу по пути домой. Дома, после подключения к сети, вы можете синхронизировать все сделанные в дороге изменения, и они будут синхронизированы именно так, как вы ожидали.
Stash Realtime Editor – бесплатная надстройка для Stash. Ищите на Atlassian Marketplace…
Stash — Введение в Git
Представьте себе ситуацию. Вы работаете над какой-то важной задачей и исправили довольно много файлов. В этот момент появляется срочная задача — сделать какое-то изменение в исходном коде, не связанное с тем, над чем вы сейчас работаете. Ваши изменения ещё не готовы и они не должны попасть в репозиторий. Что делать?
В самом простом случае, если ваши изменения не пересекаются с изменениями по срочной задаче, вы можете внести исправления, добавить их в индекс, закоммитить и запушить. Но обычно это неудобно и не всегда возможно. А если изменения нужно делать в тех файлах, с которыми вы работаете прямо сейчас?
Подобная ситуация у опытных разработчиков встречается регулярно и, к счастью, она легко решается. В git существует набор команд, позволяющий «прятать» изменения в рабочей директории и восстанавливать их при необходимости. Попробуем:
git stash не удаляет файлы, они попадают в специальное место внутри директории .git «на сохранение». Эта команда не трогает новые файлы, так как они ещё не являются частью репозитория.
После выполнения всех нужных изменений на чистой рабочей директории можно вернуть спрятанные изменения с помощью команды git stash pop :
Файлы вернулись в том виде, в котором они попали в стеш (stash).
Stash в Git работает по принципу стека. Он позволяет сохранить внутрь любое количество изменений и восстановить их в обратном порядке:
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты.