company_banner

Тестируем новый механизм синхронизации настроек JetBrains IDEs

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

    Если вы когда либо работали с JetBrains IDEs с разных компьютеров, вы могли сталкиваться с проблемой, что вам приходилось заново указывать настройки IDE (сочетания клавиш, подсветку синтаксиса, внешний вид, плагины и другие настройки).

    До сих пор эту проблему частично решал встроенный плагин Settings Repository. Для того, чтобы, плагин синхронизировал настройки, необходимо самостоятельно создать Git репозиторий (на GitHub или другом сервисе) и указать его в IDE.

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

    Для того, чтобы сделать процесс синхронизации настроек более удобным и безопасным, мы разрабатываем новый механизм, который частично опирается на Settings Repository, однако использует для хранения настроек репозиторий на стороне JetBrains. Доступ к этому репозиторию осуществляется посредством JetBrains Account (JBA).

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

    Что такое JetBrains Account

    JetBrains Account можно использовать для управления лицензиями, доступа к форумам, блогам JetBrains и репозиторию плагинов. Подробнее о том как работает JetBrains Account можно узнать здесь (на английском).

    Доступ к плагину

    Новый плагин называется IDE Settings Sync и совместим начиная с версии 2017.2.1. Учитывая раннюю стадию готовности плагина, доступ к нему можно получить пока только по приглашениям.

    Если у вас уже есть приглашение, вы можете пригласить ваших коллег и друзей через форму на сайте JetBrains Account.

    Если у вас нет приглашения, вы можете попросить его отправив письмо на idea-cloudconfig@jetbrains.com. При этом, письмо должно быть отправлено с почтового ящика, привязанного к вашему JetBrains Account.

    Если у вас нет JetBrains Account, его можно легко создать на сайте JetBrains Account. При создании JetBrains Account, мы рекомендуем указывать тот же почтовый ящик, который указан в данных ваших купленных лицензий.

    Ограничения плагина на данный момент

    Плагин доступен только для платных продуктов (IntelliJ IDEA Ultimate, PhpStorm, PyCharm, CLion, RubyMine, Rider, и т.п.)
    Плагин пока не работает вместе с License Server (мы работаем над этим).

    Чтобы плагин заработал, необходимо

    1. Получить письмо с приглашением



    2. Установить плагин

    3. Авторизоваться в IDE (или Toolbox App) с помощью JetBrains Account



    4. Включить синхронизацию



    5. Отправить приглашение хорошему другу



    Обратная связь

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

    Я и авторы плагина будем рады ответить на вопросы.

    Программируйте с удовольствием!
    JetBrains
    Делаем эффективные инструменты для разработчиков

    Комментарии 36

      +1

      а почему не стали расширять возможности старого плагина в виде переключателя между местом хранения настроек?
      тем более, что в старом плагине можно было комбинировать репозитарии личные с рабочими для настроек. А в текущем, как я понял, только личные настройки, которые даже посмотреть нельзя или подправить в VCS

        +2

        Новый плагин это и есть расширение старого. IDE Settings Sync построен на одном движке с Settings Repository. Но в новом плагине упор делался на usability, поэтому было принято решение написать отдельный UI и не путать пользователей, которые уже используют Settings Repository. Также в новом плагине есть интеграция с JetBrains Toolbox App. Вариант, к которому мы стремимся, это максимально упростить жизнь пользователя: поставил OS, поставил Toolbox App, залогинился и всё настроено.

        +1
        Новый плагин умеет синхронизировать настройки выборочно? Я пытался использовать Settings Repository для синхронизации м/у домашней и рабочей машиной, но он таскает за собой настройки прокси (есть на работе, нет дома), каталоги, например, Maven и прочие дистроспецифичные штуки, хотя от него всего-то требовалось зазеркалить Live Templates. Плюс, работает не всегда. Плюс, пару раз тупо сломал настройки. Я сначала думал что ну не может официальный плагин от JB такой низкий рейтинг, а нет, все правильно.
          0

          Выборочная синхронизация сделана для плагинов. Сейчас думаем над тем для каких опций её ещё сделать. С одной стороны хочется оставить UI удобным и понятным, с другой дать пользователям то, что им нужно. Какие сеттинги для вас нуждаются в подобной кастомизации?

            0
            System Settings > HTTP Proxy
            Build Tools > Maven > Maven home
            Tools > External Tools


            Плюс, вроде еще Settings Repository ломал Projects Defaults, где лежат пути к Java компиляторам.

            По поводу удобства UI мне вполне хватило было бы возможности просто указать .gitignore для файлов из ~/.IdeaCXXXX/config. В принципе, вышеперечисленные настройки там уже нормально в отдельных файлах заизолированы.
              0

              Было бы чудесно, если бы была возможность сделать разные профили настроек, и синхронизировать их.
              Например:
              Profile Home — для дома
              Profile Work — для дома
              Profile temp — для ноута, если нужно отправиться в командировку.
              Настройки различаться будут не сильно(как уже отписали Maven_home, proxy, external tools), а т.к. у вас в основе Git, то это можно сделать branch'ами.


              P.s. спасибо за плагин. Только вчера подумал "вот бы синхронизацию настроек" и вот она.
              Примерно такая же ситуация была с "Toolbox App".
              Супер! Так держать!

                0

                Вспомнил ещё аргумент за профили: на днях ложусь в больницу, в итоге друг отдает свой ноутбук(у него тоже IDEA). Тут бы настройка профилей помогла, потому что я мог загрузить свои "домашние" настройки и чуть-чуть их подправить.

                  0

                  Спасибо. Подумаем про профили. Кажется полезной фичей. Очень трогательно, что перед больницей вы подготавливаете ноутбук с идеей. Надеюсь, дни в больнице пролетят незаметно. Выздоравливайте!

            0
            Тоже соглашусь, что выборочная синхронизация была бы удобна. (Привет от прокси на работе). А также интересно как они синхронизируются: у меня есть Настройки на работе и дома. Что будет затерто в итоге?
            • НЛО прилетело и опубликовало эту надпись здесь
                0
                Проверьте, что у вас Ultimate 2017.2.1 или выше.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        У меня такая же беда. Добавил плагин на ноуте, подключил, включил синхронизацию — все ок. Затем на другой машине добавил плагин, включил. Получил вопрос «использовать настройки из аккаунта или взять локальные», что логично. Ответил «из аккаунта». С тех пор плагин в статусбаре стал показывать вечную синхронизацию. Через час не выдержал, решил перезапустить IDE — при запуске та же проблема, что у вас.

                        Вы уже отписались им в трекер, чтобы мне не дублировать?
                        • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Вы бы решили проблему VCS для папки проекта, папку с проектом .idea проще добавить в игнор чем синхронизировать с командой, а решить то проблему можно довольно просто, сделайте подпапку local которую нужно игнорировать а остальное пусть лежит в VCS, а сейчас там разберись какой файл нужен, какой не нужен, и в синхронизацию уходят локальные пути и еще кучу всего что не нужно шейрить, в целом удивительно что до сих пор проекты любой Jetbrains IDE невозможно юзабельно поддерживать в репозитории.
                      +1
                      но ведь для этого давно придумали системы сборки
                        0

                        лично мне хватает этого в .gitignore:


                        .idea/*
                        !.idea/fileTemplates/
                        !.idea/contracts/
                        !.idea/encodings.xml
                        !.idea/compiler.xml
                        !.idea/vcs.xml
                        !.idea/dictionaries/
                        .idea/fileTemplates/includes/
                        *.iml
                        *.ipr
                        +3
                        Теперь будет 2 плагина которые невозможно нормально использовать? Без выборочной синхронизации, нормальной поддержки $PROJECT_DIR$ везде, синхронизацией настроек конкретного проекта от них толку немного.
                          0
                          Довольно странный способ потестировать плагин — запрашивать инвайт через почту. Зачем это нужно?
                            +1

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

                              0
                              Ну так сделайте плагин доступным только EAP, например, но автоматом, без всяких там «отправьте на почту, мы вам не будем отвечать». Ну ок, если прям хочется что-то такое — сделайте кнопку на сайте в личном кабинете «получить доступ» с автоматической выдачей инвайтов до Х штук.
                                0

                                Кому нужно, те запросят.
                                Мне это просто необходимо, потому что я постоянно использую
                                IDEA + WebStorm + DataGrip (мне удобнее, когда бэковский код, база и вью в разных окнах и проектах). + Иногда работаю из дома + иногда играюсь с другими языками(иногда на работе, написать какую-нибудь утилити-прогу проще на каком-нибудь питоне). В итоге и дома и на работе мне постоянно приходится настраивать IDE на одни и те же настройки(иногда чуть-чуть разные). Поэтому я сразу, прочитав статью, написал письмо. Ответ пришёл быстро: 2-4 часа. Рабочий день не закончился, так что я не могу проверить синхронизировалось ли дома, но часть дела уже сделано.

                                  0
                                  Ну так я как бы и не оспаривал нужность. Я только говорю о неудобстве доступа.

                                  Сам вчера как раз думал на эту тему настраивая в очередной раз свой phpstorm/gogland/datagrip, «как же так, уже есть тулбокс, есть привязка к аккаунту, неужели нелья приделать синхронизацию дефолтных настроек для IDE», а тут как раз новость о том что вот оно счастье, буквально… отправь письмо…
                                    +1

                                    Я просто отправил.
                                    Моё предположение — что плагин ещё в очень раннем доступе, поэтому делать его доступным "просто по кнопке" — рискованно. JetBrains делает отличные IDE и их стабильностью можно только восхищаться (например Rider — у меня с C# не заладилось из-за VisualStudio — постоянно были ошибки, а Rider даже в раннем EAP работал стабильнее(по моему личному скромному мнению. возможно просто я настолько криворукий, что в не IntelliJ based IDE я не могу работать.). Поэтому ограничить количество пользователей для продукта, находящегося в активной разработке — важно. (но это моё предположение)

                                      0
                                      делать его доступным «просто по кнопке» — рискованно

                                      В чём разница «просто по кнопке» и «отправьте нам письмо» с этой точки зрения? Что меняется-то? Ну кроме удобства для… всех. Инвайты вон через кабинет сделали, почему и это нельзя было сделать?
                                        +1

                                        Нажать кнопку легко, а вот написать письмо требует усилий. Это гарантирует что так сделают те, кому это нужно(или интересно).


                                        Разница между инвайтами: инвайт тебе присылает друг/знакомый, которому ты в первую очередь будешь говорить "оно не работает" и "я куда-то нажал и всё исчезло", прежде чем критиковать саму компанию за нерабочий продукт.


                                        Но опять же, это моё предположение. Истинные мотивы мне неизвестны.


                                        UPD: если посмотреть что сказал stalk, то становится всё понятно.
                                        Даже с инвайтами по почте, у плагина уже 150 юзеров, а с доступом по кнопке это был бы взрыв, который накрыл бы сервер. (из-за 1 пункта, что нажать кнопку проще, чем писать письмо)

                                          0
                                          Каким образом 150 человек «по почте» было бы лучше чем 150 человек «по кнопке»? До меня никак не доходит.
                                            0

                                            тем, что "по кнопке" их было бы over150

                                              0
                                              Ну ок, если прям хочется что-то такое — сделайте кнопку на сайте в личном кабинете «получить доступ» с автоматической выдачей инвайтов до Х штук.

                                              Каким образом?
                            0
                            Подскажите, а планируется ли работа плагина синхронизации в том случае, если используется сервер для получения лицензий?
                            P.S. Прочитал заметку в статье про это, прошу прощения…
                              0

                              Синхронизировать проектные настройки гораздо важнее.

                                +1

                                В IntelliJ этот механизм работает через VCS. Ваши проектные настройки лежат в .idea вместе с сорцами.

                                  0
                                  а монорепозитории где для разных частей разные команды используют разные IDE от JetBrains так умеют?
                                    0

                                    Да. Сколько проектов в вашем монорепозитории, столько и папок .idea в соответствующих проектных папках

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

                              Самое читаемое