Remote Repositories

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости



Мы рады представить новое расширение удаленных репозиториев для кода Visual Studio! Это новый опыт, который мы создаем в партнерстве с нашими друзьями на GitHub, чтобы быстро и безопасно работать с репозиториями исходного кода внутри VS Code.

Более быстрый способ открыть репозитории исходного кода#

В VS Code мы с самого начала предлагали интегрированную поддержку Git, и мы поддерживали многих других поставщиков управления версиями (SCM) с помощью расширений. Это позволило разработчикам клонировать и работать с репозиториями непосредственно в коде VS.

Тем не менее, большая часть того, что разработчики делают каждый день, включает в себя чтение кода других людей: просмотр запросов на вытягивание, просмотр репозиториев с открытым исходным кодом, эксперименты с новыми технологиями или проектами, проверку восходящих зависимостей для отладки приложений и т. Д. Все это объединяет то, что в качестве первого шага вы обычно клонируете репозиторий локально, а затем открываете код в своем любимом редакторе кода (который, как мы надеемся, является VS Code!). Тем не менее, клонирование репозитория требует времени, может привести к пересмотру устаревшей версии репо, если вы забудете вытащить ее, и иногда может представлять угрозу безопасности, если вы не знакомы с кодом.

Новое расширение удаленных репозиториев, опубликованное GitHub, делает процесс открытия репозиториев исходного кода в VS Code мгновенным и безопасным. С его помощью вы можете быстро просматривать, искать, редактировать и фиксировать в любом удаленном репозитории GitHub (а вскоре и в репозиториях Azure) непосредственно из VS Code, без необходимости клонирования!

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

В этом посте в блоге мы рассмотрим, насколько легко начать работу с удаленными репозиториями, что вы можете сделать после открытия своего первого удаленного репо, технические детали, поддерживающие эту виртуальную среду, и как вы можете предоставить нам обратную связь сегодня.
Откройте свое первое удаленное репо в VS Code#

Давайте откроем удаленное репо в VS Code. Во-первых, убедитесь, что вы установили расширение удаленных репозиториев.

В настоящее время удаленные репозитории поддерживают репозитории GitHub, а вскоре появится поддержка репозиториев Azure. В этом сообщении в блоге мы начнем с открытия репозитория VS Code (microsoft/vscode).

После установки расширения Удаленных репозиториев мы получаем мгновенный доступ к его команде Открыть удаленный репозиторий, нажав на индикатор удаленного доступа в левом нижнем углу VS Code (вместе с командами из любых других установленных вами расширений удаленной разработки):

Remote indicator in VS Code

Если вы еще не входили в GitHub из VS Code, вам будет предложено аутентифицировать свою учетную запись GitHub. После входа в систему найдите репо или PR, выберите нужный, и вы будете готовы к работе.

В коротком видео ниже мы ищем и выбираем репо VS Code, перезагружаем VS Code, и содержимое репо загружается так, как если бы мы клонировали его локально:

Gif of using Open Remote Repository command, search for "microsoft/vscode," repo loads, open readme

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

Теперь вы подключены к так называемому виртуальному рабочему пространству (подробнее о виртуальных рабочих пространствах ниже); индикатор удаленного доступа читает "GitHub". При наведении указателя мыши на индикатор удаленного доступа вы получаете уведомление о том, что некоторые функции недоступны в виртуальном рабочем пространстве:

Hover over remote indicator for limited virtual workspace message

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

Щелчок по ссылке показывает, какие расширения отключены, а какие имеют ограниченную функциональность. Ограниченная функциональность видна при наведении курсора мыши на расширение.

VS Code Extensions view with limited and disabled extensions

если вы хотите вручную включить расширение в виртуальном рабочем пространстве, вы можете использовать параметр extensions.supportVirtualWorkspaces в файле пользовательских настроек.json.

  "extensions.supportVirtualWorkspaces": { "<extensionID>": true }

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

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

Удаленные репозитории помогают вам каждый раз оставаться на последней версии ваших репозиториев без каких-либо сложных команд Git.

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

VS Code Status bar showing "GitHub" in remote indicator and 1 pending change
и выделяет измененные файлы в проводнике:
VS Code Explorer listing files and README has 1 change

Когда вы фиксируете изменения, они автоматически отображаются на GitHub – вам не нужно продвигать свои изменения или публиковать новые созданные вами ветви.
Создание или проверка запросов на вытягивание#

Удаленные репозитории хорошо работают с расширением GitHub Pull Requests and Issues, которое позволяет просматривать и управлять запросами и проблемами pull с GitHub непосредственно в коде VS. Используйте два расширения параллельно, чтобы быстро проверить PR и работать над проблемами, не клонируя код локально или не оставляя код VS.

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

Gif using GitHub Pull Request extension to create branch and PR, and check out that PR

Вы можете узнать больше о расширении запросов на вытягивание и проблем GitHub в нашей статье "Работа с GitHub".
Держите изменения изолированными от ветвей#

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

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

Давайте рассмотрим, как перенести изменения в ветку.

В строке состояния выберите текущую ветвь, чтобы открыть список ветвей, например "главная":

VS Code Status bar on Main branch

Выберите + Создать новую Ветвь... и введите имя для своей ветви:

VS Code Command Palette with options to create new branch

Затем вы можете переключиться на эту новую ветвь:

Remote Repositories prompt to switch to new branch

Новая ветвь не будет содержать никаких изменений по сравнению с предыдущей ветвью.

Ограничения#

При работе с удаленными репозиториями существуют определенные ограничения:

Отладка, терминалы и задачи - в настоящее время не поддерживаются. Терминалы открываются в локальной файловой системе и не имеют доступа к виртуальной файловой системе удаленного хранилища.
Ограниченный языковой интеллект - такие функции, как IntelliSense и Go to Definition, могут быть затронуты, поскольку многие языки еще не понимают виртуализированную среду удаленных репозиториев.
Поиск - сам поиск на GitHub имеет ограничения, такие как отсутствие индексации ветвей. Удаленные репозитории могут избежать этого ограничения и выполнить полнотекстовый поиск, включив индексацию. Индексирование извлекает неглубокий клон репозитория из GitHub и выполняет полный поиск локально, обеспечивая большую мощность, чем нечеткий собственный поиск по умолчанию в ветвях GitHub. Вы можете включить индексацию в удаленных репозиториях из представления Поиска.
Ограничения расширения - Не все расширения могут поддерживать работу в виртуальном рабочем пространстве, но со временем его будут поддерживать все больше расширений. Расширения, которые сильно зависят от доступа к локальным файлам, не могут поддерживать эту установку. Дополнительные сведения см. в разделе виртуальное рабочее пространство ниже.

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

Продолжайте работать в более мощной среде#

Используя удаленные репозитории, VS Code работает в среде, где доступны не все функции, поскольку нет физической файловой системы. Это здорово, чтобы быстро начать просмотр репозитория, но как насчет того, когда вы будете готовы выполнить более "продвинутую" работу, такую как:

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

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

Нажмите на удаленный индикатор в левом нижнем углу, затем выберите Продолжить работу....

VS Code Command Palette with "Continue Working on..." command

Вам будет предложено три варианта:

Локальное клонирование репозитория: клонирование текущего репо на локальную машину. Появится локальный проводник файлов, позволяющий выбрать место на диске для клонирования удаленного репозитория.
Клонирование репозитория в томе контейнера: Клонирование текущего репозитория в томе контейнера Docker с помощью расширения Remote – Containers (вам потребуется установить расширение Remote – Containers и Docker). VS-код перезагрузится и подключится с помощью удаленных контейнеров, и индикатор удаленного доступа теперь будет читать Контейнер Dev: {имя изображения}.
Открыть в кодовых пространствах: Продолжайте работу в кодовом пространстве GitHub. Когда вы выберете этот параметр, откроется браузер и направит вас к списку кодовых пространств для этого репозитория.

VS Code Command Palette with options to continue locally, in a volume, or in Codespaces

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

Виртуальные файловые системы и рабочие пространства#

Основными концепциями, обеспечивающими эту удаленную работу, являются виртуальные файловые системы и виртуальные рабочие пространства.

Как конечному пользователю, все, что вам нужно знать, это то, с каким репо или PR вы хотите работать – VS Code позаботится о виртуальной файловой системе и будет управлять вашим рабочим пространством за вас. Как разработчик расширений, вы захотите использовать API виртуальной файловой системы, чтобы убедиться, что ваше расширение ведет себя так, как ожидалось.

Как работают виртуальные файловые системы#

Когда вы работаете в традиционном рабочем процессе git, вы "клонируете" репо, и копия сохраняется в локальной файловой системе вашего компьютера. Но при работе с удаленными репозиториями код не живет на вашем локальном компьютере; он все еще находится только на GitHub.

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

Когда вы открываете рабочее пространство в виртуальной файловой системе, оно называется виртуальным рабочим пространством. Работая в виртуальной рабочей области, вы по-прежнему получаете доступ к функциям VS Code, включая расширения.

Обеспечение работы расширения в виртуальном рабочем пространстве#

Чтобы расширения вели себя правильно, они должны поддерживать виртуальную файловую систему.

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

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

Поддержка API для виртуальных файловых систем осуществляется через интерфейс FileSystemProvider. Поставщик файловой системы зарегистрирован для новой схемы URI (например, vscode-vfs), и ресурсы в этой файловой системе будут представлены URI, использующими эту схему (vscode-vfs://github/microsoft/vscode/package.json).

В файле package.json расширения есть свойство capabilities, а подсвойство virtualWorkspaces используется для указания того, работает ли расширение с виртуальными рабочими пространствами или нет.

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


Источник: tprg.ru

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