Сравнение версий visual studio: Visual Studio Code или Visual Studio? Что выбрать, в чем отличия

Содержание

Новинки IT-индустрии, обзоры и тесты компьютеров и комплектующих

  • ПК и комплектующие
    • Настольные ПК и моноблоки
    • Портативные ПК
    • Серверы
    • Материнские платы
    • Корпуса
    • Блоки питания
    • Оперативная память
    • Процессоры
    • Графические адаптеры
    • Жесткие диски и SSD
    • Оптические приводы и носители
    • Звуковые карты
    • ТВ-тюнеры
    • Контроллеры
    • Системы охлаждения ПК
    • Моддинг
    • Аксессуары для ноутбуков
  • Периферия
    • Принтеры, сканеры, МФУ
    • Мониторы и проекторы
    • Устройства ввода
    • Внешние накопители
    • Акустические системы, гарнитуры, наушники
    • ИБП
    • Веб-камеры
    • KVM-оборудование
  • Цифровой дом
    • Сетевые медиаплееры
    • HTPC и мини-компьютеры
    • ТВ и системы домашнего кинотеатра
    • Технология DLNA
    • Средства управления домашней техникой
  • Гаджеты
    • Планшеты
    • Смартфоны
    • Портативные накопители
    • Электронные ридеры
    • Портативные медиаплееры
    • GPS-навигаторы и трекеры
    • Носимые гаджеты
    • Автомобильные информационно-развлекательные системы
    • Зарядные устройства
    • Аксессуары для мобильных устройств
  • Фото и видео
    • Цифровые фотоаппараты и оптика
    • Видеокамеры
    • Фотоаксессуары
    • Обработка фотографий
    • Монтаж видео
  • Программы и утилиты
    • Операционные системы
    • Средства разработки
    • Офисные программы
    • Средства тестирования, мониторинга и диагностики
    • Полезные утилиты
    • Графические редакторы
    • Средства 3D-моделирования
  • Мир интернет
    • Веб-браузеры
    • Поисковые системы
    • Социальные сети
    • «Облачные» сервисы
    • Сервисы для обмена сообщениями и конференц-связи
    • Разработка веб-сайтов
    • Мобильный интернет
    • Полезные инструменты
  • Безопасность
    • Средства защиты от вредоносного ПО
    • Средства управления доступом
    • Защита данных
  • Сети и телекоммуникации
    • Проводные сети
    • Беспроводные сети
    • Сетевая инфраструктура
    • Сотовая связь
    • IP-телефония
    • NAS-накопители
    • Средства управления сетями
    • Средства удаленного доступа
  • Корпоративные решения
    • Системная интеграция
    • Проекты в области образования
    • Электронный документооборот
    • «Облачные» сервисы для бизнеса
    • Технологии виртуализации

Наш канал на Youtube

Архив изданий

1999123456789101112
2000123456789101112
2001123456789101112
2002123456789101112
2003123456789101112
2004123456789101112
2005123456789101112
2006123456789101112
2007123456789101112
2008123456789101112
2009123456789101112
2010123456789101112
2011123456789101112
2012123456789101112
2013123456789101112
  • О нас
  • Размещение рекламы
  • Контакты

Популярные статьи

Моноблок HP 205 G4 22 AiO — одно из лучших решений для офисной и удаленной работы

В настоящем обзоре мы рассмотрим модель моноблока от компании HP, которая является признанным лидером в производстве компьютеров как для домашнего использования, так и для офисов. Моноблок HP 205 G4 22 — модель нового семейства, которая построена на базе процессоров AMD последнего поколения и отличается неплохой производительностью вкупе с привлекательной ценой

Logitech G PRO X Superlight — легкая беспроводная мышь для профессиональных киберспортсменов

Швейцарская компания Logitech G представила беспроводную игровую мышь Logitech G PRO X Superlight. Новинка предназначена для профессиональных киберспортсменов, а слово Superlight в ее названии указывает на малый вес этой модели, который не превышает 63 г. Это почти на четверть меньше по сравнению с анонсированным пару лет тому назад манипулятором Logitech G PRO Wireless

Материнская плата для домашнего майнинга ASRock h210 Pro BTC+

Как показало недавнее исследование Кембриджского университета — количество людей, которые пользуются сегодня криптовалютами, приближается к размеру населения небольшой страны и это только начало, мир меняется. Поэтому компания ASRock разработала и выпустила в продажу весьма необычную материнскую плату — h210 PRO BTC+, которую мы и рассмотрим в этом обзоре

Верхняя панель клавиатуры Rapoo Ralemo Pre 5 Fabric Edition обтянута тканью

Компания Rapoo анонсировала в Китае беспроводную клавиатуру Ralemo Pre 5 Fabric Edition. Новинка выполнена в формате TKL (без секции цифровых клавиш) и привлекает внимание оригинальным дизайном. Одна из отличительных особенностей этой модели — верхняя панель, обтянутая тканью с меланжевым рисунком

Изогнутый экран монитора MSI Optix MAG301 CR2 обеспечит максимальное погружение в игру

Линейку компьютерных мониторов MSI пополнила модель Optix MAG301 CR2, адресованная любителям игр. Она оборудована ЖК-панелью типа VA со сверхширокоформатным (21:9) экраном изогнутой формы (радиус закругления — 1,5 м). Его размер — 29,5 дюйма по диагонали, разрешение — 2560×1080 пикселов

Комплект SilverStone MS12 позволяет превратить SSD типоразмера M.2 2280 в портативный накопитель

Каталог продукции компании SilverStone пополнил комплект MS12. Он позволяет создать портативный накопитель на базе стандартного SSD типоразмера M.2 2280 с интерфейсом PCI Express

SSD-накопители ADATA XPG Spectrix S20G сочетают производительность с эффектным дизайном

Компания ADATA Technology анонсировала твердотельные накопители серии XPG Spectrix S20G. Они предназначены для оснащения игровых ПК и, как утверждают их создатели, сочетают высокую производительность и эффектный внешний вид

Видеокарта ASUS GeForce RTX 3070 Turbo оснащена системой охлаждения с одним центробежным вентилятором

Линейку видеоадаптеров ASUS на базе графических процессоров NVIDIA пополнила модель GeForce RTX 3070 Turbo (заводской индекс TURBO-RTX3070-8G), предназначенная для оснащения игровых ПК. Одной из особенностей новинки является конструкция системы охлаждения

КомпьютерПресс использует

Git — сравнение Visual Studio 2022 с MeGit/EGit и SourceTree


В этой статье мы сравним функциональность Git в IDE Visual Studio 2022 и в других клиентах Git с GUI. Git внутри VS2022 имеет упрощённый интерфейс по сравнению с некоторыми другими GUI-клиентами наподобие MeGit/EGit и SourceTree. Это привлекает многих разработчиков к платформе VS2022/Git, однако опытным пользователям дополнительно потребуются и другие инструменты.

1. Введение


Git интегрирован в IDE Visual Studio, начиная с версии 2019, а в версии 2022 он получил ещё больше возможностей и постепенно становится любимым инструментом для контроля версий в Visual Studio/Microsoft. В этой статье мы планируем рассмотреть базовые функции GUI-инструментов Git в VS2022.

▍ 1.1. GUI-клиент Git MeGit/EGit для сравнения


Я считаю, что автономный GUI-клиент Git MeGit/EGit [1] — это «правильный Git». Это GUI-инструмент Git, но из всех виденных мной GUI-инструментов Git он ближе всего к «философии и терминологии Git», а ещё мне нравится его поведение и внешний вид. Поэтому я буду использовать его как пример, чтобы лучше показать, как могут выглядеть GUI-опции по сравнению с GUI VS2022. Разумеется, настоящим примером должен быть интерфейс командной строки Git, но мне кажется, что в рамках этой статьи сравнивать с ним было бы слишком сложно. Правда в том, что ни один GUI-инструмент Git не может предоставить всех опций, имеющихся у интерфейса командной строки Git. Но справедливо и то, что пользователю, вероятно не потребуются все эти опции для повседневной работы. Например, я уже много лет работаю с TFS и делаю всё из GUI; при этом мне ни разу не приходилось использовать командную строку TFS [2].

▍ 1.2. Философия Git в VS2022


Изучив GUI-интерфейс Git в VS2022, я пришёл к выводу, что его разработчики имели собственное мнение о том, как должен выглядеть Git. Похоже, они не хотели следовать философии Git во всех подробностях как, например, разработчики MeGit/EGit. Кажется, они думали, что все грязные подробности Git следует максимально скрыть от разработчиков; интерфейс пользователя упростился настолько, чтобы разработчики без знаний Git, имеющие лишь базовые знания концепции контроля версий, могли пользоваться им и коммитить свою работу локально и на сервер контроля версий. Возможно, это был умный подход, благодаря простоте изучения быстро привлёкший к платформе VS2022/Git множество пользователей/разработчиков. Однако некоторым опытным пользователям Git может не хватать некоторых инструментов/опций или может показаться, что Git реализован неправильно.

▍ 1.3 GUI-клиент Git SourceTree для сравнения


Приложение Atlassian SourceTree [3] — это ещё один популярный GUI-клиент Git. Мы покажем, как его панели выглядят по сравнению с VS2022 в одних и тех же операциях. Мы считаем, что MeGit/EGit чуть более мощен и больше соответствует «философии работы Git». Разработчики SourceTree, аналогично разработчикам VS2022, решили сокрыть часть «внутренностей Git», например, информацию HEAD и Refs. Тем не менее, приложение отображает больше информации, чем VS2022.

▍ 1.4 Git не интуитивен для обучения


Я уверен, что многие разработчики попробуют «проложить себе дорогу к Git», просто осваивая GUI-опции Git в VS2022, особенно те, кто пришли с других систем контроля версий, например TFS. И до определённого уровня это сработает, поскольку VS2022 намеренно скрывает некоторые концепции Git, например, staging файлов (обычно пользователи TFS задаются вопросом: что такое staging и зачем он нужен?). Но я считаю, что рано или поздно вам придётся прочитать какую-нибудь книгу по Git, потому что он имеет собственную терминологию и философию, и если у вас когда-нибудь возникнет нерешаемая проблема с Git, то вам нужно будет точно знать, что делать и как правильно решить её. Если вы учитесь при помощи освоения GUI-инструментов, то для изучения Git я рекомендую поэкспериментировать с MeGit/EGit, поскольку так вы увидите больше подробностей, которые намеренно скрывает от вас VS2022.

Это не туториал по Git

Статья не задумывалась как туториал по Git. Она предназначена для разработчиков, имеющих некоторые познания в Git и желающих увидеть, как Git выглядит сегодня в IDE VS2022.

2. VS2022 против MeGit

▍ 2.1. Методология тестирования


Мы рассмотрим один и тот же репозиторий Git из четырёх инструментов: VS2022, MeGIt, SourceTree и GitBash.

Мы локально создали проект простого приложения на C# и выбрали в качестве удалённого репозитория GitHub.


Тестирование выполнялось со следующей версией Visual Studio:

▍ 2.2. Просмотр истории коммитов в репозиторий


Одна из базовых и важных функций: просмотр пользователями содержимого их репозитория.

❒ 2.2.1. История из GitBash


Команда Git git log отображает лог всех коммитов.

Вот все коммиты текущей ветки master.


Вот коммиты всех веток с текущей веткой master.


Вот «граф», который может создавать GitBash — все коммиты всех веток с текущей веткой master.

❒ 2.2.2. История из MeGit


Вот соответствующий граф, создаваемый MeGit. Это красивая графическая визуализация.


Она выглядит аналогично «графу», создаваемому GitBash. Обратите внимание, что в графе GitBash содержалась дополнительная информация — местоположение создания «хранилища» (stash), коммит ac95254. MeGit может показать это местоположение, но только по запросу (при нажатии на конкретный stash).

❒ 2.2.3. История из VS2022


Я нашёл в VS2022 три графа истории, и все они были хуже, чем даже граф Git командной строки. Похоже, разработчики не особо беспокоились о его реализации. Панель History VS2022 фильтрует и отображает коммиты, только относящиеся к текущей выбранной ветке.

Первый граф для той же структуры репозитория с текущей веткой master выглядит так:


Есть и ещё более простая версия, без других веток:


Также существует ещё одна версия, с показанными ссылками на ветки:


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

Часто люди в Интернете задают вопрос: зачем вообще нужен красивый граф? Для меня ответ прост: интерфейс пользователя называется графическим, поэтому здорово иметь качественный граф, сравнимый, например, с графом истории MeGit.

К сожалению, стоит заметить, что VS2022 не показывает в графе местоположение ссылки HEAD, хотя и GitBash, и MeGit чётко отображают ссылку HEAD. Похоже, разработчики VS решили, что терминология Git наподобие ссылок HEAD должна быть скрыта от пользователей. Не уверен, что на самом деле возможно компетентно использовать Git в течение длительного времени, не зная, что такое ссылка HEAD.

❒ 2.2.2. История из SourceTree


Вот соответствующий граф, создаваемый SourceTree. Он имеет красивый графический вид.


Но разработчики SourceTree тоже решили скрыть от пользователя концепции наподобие HEAD и ссылок.

▍ 2.3. Просмотр веток, тегов, ссылок

❒ 2.

3.1. Ветки, теги, ссылки в MeGit


Ветки, теги и ссылки в проекте/репозитории заметить очень легко:


Обратите внимание, что помечена текущая checkout-ветка master. Также вы видите, что ссылка HEAD ref указывает на последний локальный коммит ec56b90 ветки master.

Чтобы выполнить checkout ветки Feature1, нужно нажать на нужную ветку правой клавишей мыши и выбрать в контекстном меню опцию.

❒ 2.3.2. Ветки, теги, ссылки в VS2022


В VS2022 отображается более скромная информация:


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

Обратите внимание, что текущая checkout-ветка master выделена жирным шрифтом. Кроме того, текущую checkout-ветку можно увидеть в правом нижнем углу.


Чтобы выполнить checkout ветки Feature1, нужно нажать на нужной ветке правую клавишу мыши и выбрать в контекстном меню опцию.


Кроме того, вы можете выполнить checkout ветки во всплывающем меню в правом нижнем углу:

❒ 2.3.3. Ветки, теги, ссылки в SourceTree


Ветки и теги проекта/репозитория легко заметны, однако ссылки в GUI не отображаются. Разработчики тоже решили скрыть подробности Git от пользователя.


Обратите внимание, что текущая checkout-ветка master выделена жирным шрифтом.

Чтобы выполнить checkout ветки Feature1, нужно нажать на нужную ветку правой клавишей мыши и выбрать в контекстном меню опцию.

▍ 2.4. Просмотр состояния Detached HEAD


Просмотреть состояние «Detached HEAD» легко. Достаточно выполнить checkout коммита, не находящегося на конце ветки, а затем закоммитить новые изменения. Давайте посмотрим, как отображается такое состояние.

❒ 2.4.1. Detached HEAD в MeGit


Вот как выглядит состояние Detached HEAD в панели History:


Как видите, HEAD указывает на коммит 40c21ff, а не на конец какой-то ветки. В терминологии Git этот коммит находится в состоянии Detached HEAD. В панели просмотра веток это представлено в следующем виде:


Обратите внимание, что ни одна ветка не отмечена как выбранная, а ссылка HEAD содержит значение id этого коммита 40c21ff.

❒ 2.4.2. Detached HEAD в VS2022


Теперь взглянем на ту же ситуацию с репозиторием в VS2022. Вот как она выглядит в панели Branches:


Обратите внимание, что ни одна ветка не выделена жирным шрифтом. то есть ни одна не является checkout-веткой.

Кроме того, состояние Detached HEAD отмечено в правом нижнем углу:


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

❒ 2.4.3. Detached HEAD в SourceTree


Вот как выглядит состояние Detached HEAD в панели History:


Как видите, HEAD указывает на последний коммит, а не на конец какой-то ветки. Хэш коммита можно увидеть в нижней панели, он равен 40c21ff. В терминологии Git этот коммит находится в состоянии Detached HEAD. Любопытно, что разработчики внезапно отображают нечто под названием HEAD, хотя до этого скрывали эту концепцию в приложении.

В панели просмотра веток это представлено в следующем виде:


Обратите внимание, что ни одна ветка не помечена как выбранная.

❒ 2.4.4. Намеренное создание «висячего коммита»


Допустим, мы решили устранить состояние Detached HEAD, выполнив checkout ветки master и оставив новый коммит 40c21ff висячим. Доступ к такому коммиту невозможно получить ни по какой из ссылок и он не будет больше отображаться в History.

❒ 2.4.5. Восстановление висячего коммита/Detached HEAD в MeGit


Теперь в истории и ветках отображается checkout-ветка master, а упоминания коммита 40c21ff отсутствуют.


Что, если мы совершили ошибку и теперь хотим восстановить висячий коммит 40c21ff? Это возможно, мы можем найти его в панели Reflog:


Можно нажать на него правой клавишей мыши и выбрать опции меню для его восстановления:


И мы снова оказались в ситуации, когда этот коммит 40c21ff является checkout и мы можем делать всё, что угодно.

❒ 2.4.6. Восстановление висячего коммита/Detached HEAD в VS2022


Вот как та же ситуация выглядит в VS2022:


Теперь в истории и ветках отображается checkout-ветка master, а упоминания коммита 40c21ff отсутствуют. Можем ли мы выполнить восстановление коммита 40c21ff? Проблема в том, что в VS2022 нет панели Reflog.

Этот коммит 40c21ff по-прежнему находится в репозитории, однако через GUI VS2022 доступ к нему получить невозможно.

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

❒ 2.4.7 Восстановление висячего коммита/Detached HEAD в SourceTree


А вот как выглядит теперь ситуация в SourceTree. Теперь в истории и ветках отображается checkout-ветка master, а упоминания коммита 40c21ff отсутствуют.


Как нам восстановить коммит 40c21ff? Проблема в том, что в SourceTree нет панели Reflog. Но в нём есть значок для запуска GitBash, поэтому из командной строки мы можем получить нужную нам информацию, а именно хэш коммита:


Итак, мы можем выполнить в командной строке git reflog и получить нужный хэш:


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


После выполнения checkout этого коммита 40c21ff, на этот раз как части новой ветки, мы можем делать всё, что угодно.

▍ 2.5. Просмотр панели Unstaged-файлов/Staged-файлов/коммитов


Одна из основных функций GUI Git — выполнение коммитов работы в репозиторий.

❒ 2.5.1. Панель Unstaged-файлов/Staged-файлов/коммитов в MeGit


MeGit, в соответствии с философией Git, имеет отдельные формы Unstaged- и Staged-файлов.

Здесь вы видите, что были внесены изменения в файл ClassA. cs, а Git указывает изменения в форме Unstaged-файлов («Working directory changes»):


Но чтобы выполнить коммит (обратите внимание, что кнопка Commit недоступна), необходимо использовать значок «плюс» и добавить изменения в форму Staged-файлов, после чего можно будет выполнить коммит изменений в репозиторий.

❒ 2.5.2. Панель Unstaged-/Staged-файлов/коммитов в VS2022


VS2022 в качестве диалогового окна коммитов по умолчанию отображает опцию выполнения коммитов файлов непосредственно из «Working directory changes» (Unstaged-файлов):


На самом деле, это соответствует правилам Git, поскольку такая команда существует в командной строке Git. Это схоже с выполнением git commit -am "<commit message>.

Если вы хотите просмотреть форму «Staged files» и выбрать, для каких файлов нужно выполнить stage и коммит, нужно использовать значок «плюс» и добавить в Staged те файлы, коммит которых нужно выполнить:


Теперь диалоговое окно коммитов выглядит как диалоговое окно MeGit.

Разработчики VS2022 решили «срезать углы», отображая непосредственный коммит в форме «Working directory changes».

Обычно пользователи задаются таким вопросом: зачем мне нужно сначала выполнять Stage файлов? Ответ прост: это необязательно, это только опция для ситуаций, когда, например, вы изменили пять файлов, а хотите закоммитить только три из них. Такую ситуацию можно разрешить, выполнив Staging этих трёх файлов и закоммитив только staged-файлы.

❒ 2.5.3. Панель Unstaged-файлов/Staged-файлов/коммитов в SourceTree


SourceTree, в соответствии с философией Git, имеет отдельные формы для Unstaged- и Staged-файлов.

Здесь вы видите, что были внесены изменения в файл ClassA.cs, а Git указывает изменения в форме Unstaged-файлов («Working directory changes»):


Однако для выполнения коммита (обратите внимание, что кнопка Commit недоступна) нужно использовать кнопку Stage Selected и добавить изменения в форму Staged-файлов, после чего можно будет закоммитить изменения в репозиторий.

2.6. Просмотр Stash


В обоих инструментах есть удобные панели для просмотра «хранилищ» (stash).

❒ 2.6.1. Stash в MeGit


Список всех stash в репозитории:


Выберем один stash, Stash с индексом [0]. Тогда мы сможем просмотреть подробности об этом stash:

Местоположение в истории, когда был сделан stash:


Подробная информация об этом stash:


Разница в файлах, демонстрирующая изменения по stash:

❒ 2.6.2. Stash в VS2022


Список всех stash в репозитории:


Выберем один stash, Stash с индексом [0]. Тогда мы сможем просмотреть подробности об этом stash:

Подробная информация об этом stash:


Разница в файлах, демонстрирующая изменения по stash:


VS2022 не содержит опции отображения позиции в графе истории, где был сделан stash. Похоже, кто-то из разработчиков VS2022 ненавидит графы истории Git.

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

❒ 2.6.3. Stash в SourceTree


Список всех stash в репозитории:


Выберем один stash, Stash с индексом [0].

Разница в файлах, демонстрирующая изменения по stash:

2.7. Просмотр Blame

▍ 2.7.1. Blame в MeGit


Найти функциональность Blame немного сложно, потому что на этот раз MeGit использует не термин Git «Blame», а «Revision information». Всё выглядит хорошо:


Как вы видите, мы смотрим на файл Program.cs и на строку 12. Последний раз её изменял автор MarkPelf в коммите cef7440, а ниже показана подробная информация об этом коммите, в том числе и граф истории.

Также мы видим diff файла для этого коммита cef7440.

▍ 2.7.2. Blame в VS2022


Для того же сценария (файл Program.cs и строка 12) VS2022 изначально показывает меньше информации, но можно нажать правой клавишей мыши, чтобы получить больше информации о том, кто и в каком коммите в последний раз менял эту строку:

Экран Blame:


Нажмём правой клавишей мыши на интересующей нас строке кода:


Подробности коммита cef7440:


Граф истории для коммита cef7440:

▍ 2.

7.3 Blame в SourceTree


Для того же сценария (файл Program.cs и строка 12), SourceTree изначально показывает меньше информации, но можно нажать правой клавишей мыши, чтобы получить больше информации.


Нажмём правой клавишей мыши на интересующей нас строке кода:


Подробности коммита cef7440:

3. Заключение


В этой статье я привёл краткий обзор GUI-интеграции Git в IDE VS2022 и сравнил её с GUI-клиентами Git MeGit/EGit и SourceTree. Мы показали, что UI клиента MeGit более подробен и ближе соответствует «философии и терминологии Git». Мы показали, что разработчики VS2022 решили пойти по пути упрощения UI Git для пользователя и что многие внутренности Git спрятаны от пользователя.

Это хорошо тем, что привлекает к платформе Git множество новых разработчиков и стимулирует их переходить на Git благодаря простоте UI и удобству обучения. Плохо это тем, что некоторые важные концепции Git наподобие ссылок HEAD скрыты от пользователя, а некоторые опции Git намеренно ограничены. Опытным пользователям Git могут понадобиться другие инструменты Git, например, GitBash или какой-то другой GUI-клиент Git (MeGit/EGit [1], Sourcetree [3]), чтобы лучше понимать свои репозитории и выполнять сложные операции, не поддерживаемые GUI Git в VS2022.

Ясно одно — интеграция Git в IDE VS2022 определённо повысит популярность системы контроля версий Git.

4. Ссылки

  • [1] https://github.com/eclipsesource/megit
  • [2] https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/use-team-foundation-version-control-commands?view=azure-devops
  • [3] https://sourcetreeapp.com/

есть ли функция сравнения папок в VS Code?

Задавать вопрос

спросил

Изменено
7 месяцев назад

Просмотрено
38 тысяч раз

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

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

Спасибо!

  • visual-studio-code

Как указано в https://github.com/microsoft/vscode/issues/98197, VS Code не планирует добавлять эту функцию в ближайшем будущем.

https://marketplace.visualstudio.com/items?itemName=moshfeu.compare-folders претендует на сравнение папок, но я не могу говорить о его эффективности.

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

Если обе папки являются деревьями git, становится возможным их сравнение с помощью команд git diff.

6

Попробуйте эти:

Папки различий

Сравните папки

1

Одним из возможных обходных путей является зафиксировать одну из этих папок, скопировать и вставить (объединить) другую поверх нее и использовать систему контроля версий кода VS ( Ctrl + Shift + G ). После сравнения вы можете использовать git reset --hard для отмены изменений. Но это покажет только папки, содержащие файлы.

Вы также можете попробовать расширение для ответа выше или этого:

https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-diff

Я думаю, что Diff Folders — Visual Studio Marketplace лучше, чем Сравнить папки — Visual Studio Marketplace:

  • Более интуитивно понятно.
  • Более наглядная история сравнения на боковой панели.
  • Перечислите разницу не только по папкам, но и по каждому файлу.
  • Вы даже можете копировать , Перейти к файлу , Показать в Finder и Удалить файл прямо в панели Diff, что очень удобно.

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

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

visual studio — попытка числового сравнения «$(lastknowntypescriptversion)» дает «» вместо числа

спросил

Изменено
1 год, 6 месяцев назад

Просмотрено
6к раз

У меня есть проект в Visual Studio 2015, и я установил Typescript 1.8.11. Мой проект не строится из-за ошибки «Попытка числового сравнения «$(lastknowntypescriptversion)», которая оценивается как «» вместо числа». Как решить эту проблему?

  • MSBuild
  • 2

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

    Я обнаружил, что установка последней версии TypeScript SDK с помощью Tools -> Extensions and Updates -> Online , а затем ввод TypeScript и загрузка и установка этого расширения (и , затем перезапуск Visual Studio) исправил проблему для меня.

    Я предполагаю, что они перешли от наличия встроенного TypeScript к требованию его установки в качестве надстройки. Последней версией, которую мне удалось найти в этом списке, была 3.4.1.

    В вашем конкретном случае я рекомендую удалить любую версию 1.8.*, которую вы скачали, и загрузить версию 3.4.1, расположенную по адресу: https://www.microsoft.com/en-us/download/details.aspx?id=55258. (который также можно найти с помощью описанного выше процесса, если ссылка изменится).

    1

    Эта ошибка произошла при открытии решения со старым веб-проектом, пытающимся выполнить предварительную версию VS 2022 (с рабочими нагрузками . NET Web Development и C++)… Из Microsoft Docs Пошаговое руководство:

    Если у вас есть Visual Studio, у вас уже установлен MSBuild. В Visual Studio 2019 и более поздних версиях он устанавливается в папку установки Visual Studio.

    Чтобы установить MSBuild в системе, в которой нет Visual Studio, перейдите к загрузкам Visual Studio и прокрутите вниз до пункта «Все загрузки», затем разверните Инструменты для Visual Studio 2019. Установите Инструменты сборки для Visual Studio 2019, которые включают MSBuild, или установите пакет SDK для .NET Core.

    Итак, с https://dotnet.microsoft.com/download я установил .Net Core v3.1 SDK (включая среду выполнения), поскольку VS 2022 установил v5. Однако даже при перезагрузке ничего не работало. Решение, которое я нашел, было:

    • установка Visual Studio 2019 с теми же рабочими нагрузками

    Теперь, даже просто открыв решение в VS 2022, веб-проект загружается правильно.

    Просто удалите эту строку в файле конфигурации проекта

     3.5
     

    Я удаляю VS2017 и устанавливаю VS2022, возможно, он изменяет некоторые настройки TypeScript Tool для Microsoft Visual Studio 2015 , и я иду Contorl Panel > Program and Features > find TypeScript Tool Program > Repair ,

    После успешного восстановления перезапустите VS2015, и я смогу успешно открыть проект.

    Попробуйте перезапустить визуальную студию, возможно, это решит вашу проблему.

    1

    Зарегистрируйтесь или войдите в систему

    Зарегистрируйтесь с помощью Google

    Зарегистрироваться через Facebook

    Зарегистрируйтесь, используя адрес электронной почты и пароль

    Опубликовать как гость

    Электронная почта

    Требуется, но никогда не отображается

    Опубликовать как гость

    Электронная почта

    Требуется, но не отображается

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