Vscode: Поддержка инструмента разрешения конфликтов Git, аналогичного IntelliJ, WebStorm

Созданный на 31 окт. 2017  ·  91Комментарии  ·  Источник: microsoft/vscode

IntelliJ и все другие IDE на основе IntelliJ, такие как WebStorm, поддерживают инструмент разрешения конфликтов git merge, который показывает конфликт в трех столбцах:

  • первый столбец для локальных изменений
  • третий столбец для изменений с сервера
  • второй столбец для результата разрешения конфликта

Пожалуйста, посмотрите мой прикрепленный файл.
merge-conflict-resolution

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

Можем ли мы поддержать это?

feature-request merge-conflict

Самый полезный комментарий

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

Все 91 Комментарий

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

Есть новости по этому поводу? эта функция была бы потрясающей. С одной стороны, в коде VS есть инструмент сравнения (например, сравнение двух файлов), но вы не можете редактировать / выбирать, что оставить; с другой стороны, есть инструмент конфликта слияния, который позволяет выбрать, что оставить (текущее изменение / их изменение). Теперь лучше всего объединить оба инструмента в один, например инструмент, предложенный @uyhung.

Я также хотел добавить для всех участников: VS Code - потрясающая программа, так держать :)!

Это будет потрясающая функция ... есть новости о ней? Кто-нибудь порекомендует какое-то расширение, которое делает что-то подобное?

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

Пожалуйста, поторопитесь с этой функцией, если вы планируете ее реализовать :)

Большой палец вверх 👍 для этого. Это единственное, что меня сдерживает, чтобы полностью перейти на VSCode. Было бы очень полезно и удобно.

В тот день, когда вы реализуете эту функцию, я перестану использовать webstorm.

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

git config merge.conflictStyle diff3 и у вас есть это сегодня, но с макетом в редакторе VSCode - что намного лучше, чем всплывающий диалог и новое окно для просмотра файла, который вы уже открыли, IMO!

Любые новости? Может быть, это запланировано или планируется?

Да действительно нужно

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

+1, это было бы круто!

+1 здесь! Пытаюсь переключиться, но ИМО, это одна из основных функций, отсутствующих при переключении с WebStorm на VSCode.

Можем ли мы остановиться на комментариях +1? Это ничего не вносит в разговор.
Просто посмотрите эту ветку и подождите ...

@Zielak +1 давай перестанем добавлять больше комментариев

Кто-нибудь знает, есть ли какой-либо плагин, который может сделать это возможным?

@rajjejosefsson Как я сказал выше , вы можете установить: ( git config merge.conflictStyle diff3 )

[merge]
  conflictStyle = diff3

чтобы увидеть их / общие / нас. Это не изменит форматирование / тему VSCode, но вы получите эти три части в свой diff, а не только их / нас, как это (git) по умолчанию.

Если нет чего-то еще (кроме открытия нескольких диалогов, чтобы вернуться к просмотру различий в уже открытом файле), предлагаемого IDE JetBrains, которого мне здесь не хватает?

Недавно выпущенный Sublime Merge имеет аналогичную реализацию.

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

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

[mergetool "webstorm"]
    cmd = webstorm merge $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
    trustExitCode = true
[merge]
    tool = webstorm

+1 вот, теперь единственная причина, по которой я использую webstorm!

+1

+1

Да, VS Code потрясающий, за исключением отсутствия этого инструмента пользовательского интерфейса.

+1, это именно то, что я ожидаю от инструмента слияния.
И # 5770 должен быть реализован вот так.

+1 это единственная функция, которой мне действительно не хватает при использовании VSC по сравнению с WebStorm.

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

Хорошо, поскольку Webstorm кажется единственным реальным решением, я собираюсь загрузить его сейчас.
Очень жду VSCode, поддерживающего эту функцию !!

Кроме того, может ли кто-нибудь проголосовать против меня за этот пост? Спасибо: P

Эта функция еще в разработке?

+1, полностью использовал бы это, если бы реализовано

Я добавил новый параметр и команду, чтобы немного улучшить разрешение конфликтов слияния, вот что будет после слияния https://github.com/microsoft/vscode/pull/74231

Сначала был добавлен новый параметр merge-conflict.diffViewContext чтобы показать контекст конфликта.

Раньше: вокруг разницы нет контекста
compare-withoutcontext

После: с "merge-conflict.diffViewContext": 3
compare-with-context

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

compare-all

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

Это круто. Можете ли вы выбрать построчно, какое изменение вы хотите объединить в новый файл, или это всего лишь один файл или другой? Построчно или все было бы круто !!!

Если вы можете принять каждое изменение из любого файла блок за блоком и объединить его с третьим, это, вероятно, охватит большинство случаев использования. Так, например, если в одном файле было 3 изменения, а в другом - 4, я мог выбрать все, что хотел. Например, принять 2 изменения из одного файла и 2 изменения из другого. Он может это сделать? Если так ... это круто!

@rebornix Дополнительный контекст хорош, и мне нравится все сравнивать, но мне все еще не хватает нескольких вещей:

  1. Сравнение каждой «стороны» с общей базой - хотя трехстороннее представление слияния, вероятно, лучше всего, это могло бы, по крайней мере, помочь в промежуточный период (я пытался добавить что-то для этого в GitLens)
  2. Возможность редактировать в режиме сравнения и синхронизировать изменения с документом - это то, о чем говорили до того, как в ядро ​​было добавлено лучшее слияние. Вот запрос об этом (правда, исходный запрос пропал: cry :) https://github.com/microsoft/vscode/issues/10547#issuecomment -300201327 '

# 2, вероятно, можно сделать сегодня с помощью специального поставщика файловой системы (хотя это кажется излишним)

@eamodio

Сравнение каждой «стороны» с общей базой - хотя трехстороннее представление слияния, вероятно, лучше всего, это могло бы, по крайней мере, помочь в промежуточный период (я пытался добавить что-то для этого в GitLens)

Это требует добавления нового трехстороннего просмотра различий (трехстороннего алгоритма сравнения и редактора трех столбцов), но это выполнимо. Для № 2 я думаю, что пользовательский поставщик файловой системы - это правильный путь, поскольку содержимое файла на диске содержит конфликты слияния (например, >>>>>>, <<<<<< ), а при выборе изменений содержимого из представления сравнения мы не хотим испортить файл на диске, так что это уже провайдер виртуальной файловой системы.

Очень нужна эта функция.

@rebornix Мне нравится идея, я думаю, это может быть даже лучше, чем открыть редактор с 3 столбцами, поскольку экраны ноутбуков не такие уж большие. Я думаю, что может быть проще немного улучшить его, чтобы он, наконец, выглядел как инструмент слияния Gitkracken, показывающий контекст в верхнем редакторе и позволяющий редактировать связанный файл (который в настоящее время имеет >>>> <<<< ...) внизу .
merge-tool@2x

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

@rebornix Мне нравится идея, я думаю, это может быть даже лучше, чем открыть редактор с 3 столбцами, поскольку экраны ноутбуков не такие уж большие. Я думаю, что может быть проще немного улучшить его, чтобы он, наконец, выглядел как инструмент слияния Gitkracken, показывающий контекст в верхнем редакторе и позволяющий редактировать связанный файл (который в настоящее время имеет >>>> <<<< ...) внизу .

Я не согласен, макет из трех столбцов - это часть того, что делает Webstorm таким замечательным. Он держит очень аккуратный обзор

То же самое, я всегда переключаюсь на IntelliJ для разрешения конфликтов слияния. Инструмент волшебной палочки «Разрешение простых конфликтов» тоже экономит так много времени!

Я возвращаюсь к Visual Studio 2017 для разрешения конфликтов ...

Во вторник, 25 июня 2019 г., в 8:35 fabb [email protected] написал:

То же самое, я всегда переключаюсь на IntelliJ для разрешения конфликтов слияния.
Инструмент волшебной палочки «Разрешение простых конфликтов» тоже экономит так много времени!

-
Вы получаете это, потому что подписаны на эту ветку.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/microsoft/vscode/issues/37350?email_source=notifications&email_token=AAEN6O3LOPBVEY7PMABVNRDP4I3KZA5CNFSM4EBV5J4KYY3PNVWWK3TUL52HS443DFMVREXWGFWWWK3TUL52HS443DFMVREXW5X3DFMVRXW08B08B2HB08B08B0B08
или отключить поток
https://github.com/notifications/unsubscribe-auth/AAEN6O4AO24V4GB24EWOJGDP4I3KZANCNFSM4EBV5J4A
.

vscode должен изменить инструмент конфликта git, потому что при разрешении конфликтов vscode добавляет <<< , === , что вызывает синтаксическую ошибку языка

@ SupinePandora43 Это не VSCode, это то, как git обрабатывает конфликты, он добавляет <<< , === в конфликтующие строки. WebStorm анализирует эти блоки и создает отличный визуальный инструмент для объединения.

@vedmant тогда ... vscode нужен парсер

Посмотреть здесь. Это то, что вы имели ввиду?
https://github.com/Microsoft/vscode-tips-and-tricks/blob/master/media/resolve_merge_conflicts.gif

@ minkir014 Проверьте прикрепленное изображение к исходному комментарию вверху, это то, что все имеют в виду.

Это советы и уловки по сравнению с кодом, а это значит, что он встроен в код. Итак, почему этот вопрос все еще открыт?

@ minkir014 То, что сейчас находится в коде VS, не имеет ничего общего с функцией IntelliJ, просто сравните это: https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png и то, что вы разместили https://github.com/Microsoft/vscode-tips-and-tricks/blob/master/media/resolve_merge_conflicts.gif вы видите много общего?

@ minkir014, потому что встроенная функция не такая, как мы обсуждаем в этой ветке.

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

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

Я тебя слышу. Это потрясающая функция, которая нам нужна. Я должен держать PHPStorm только по этой причине.

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

Приведенные ниже изменения конфигурации охватывают большинство реальных потребностей в контекстуализации конфликтов слияния лучше, чем настройки VSCode / Git по умолчанию, когда вы хотите иметь возможность понимать контекст двух разных изменений, когда они были внесены, и одновременно согласовывать их различия. Итак, для будущих искателей:

  1. Включите обнаружение общего (отличающегося) предка двух различий, изменив стиль конфликта git на diff3. Сделайте это, отредактировав файл ~ / .gitconfig или используя cli: git config merge.conflictStyle diff3
  2. Установите для параметра VSCode значение Diff View Position значение «Ниже» или «Рядом» "merge-conflict.diffViewPosition": "Below"

Поздравляем, теперь вы можете видеть контекст ваших двух различий как статические ссылки, общую базу, из которой они оба разветвлялись, и все это, при этом все еще редактируя все три контекста (предок, ветвь A и ветвь B), используя встроенное сравнение. Теперь это vimdiff для бедняков.

(добавление статической панели для отображения различий общего предка без бликов было бы простым дополнением, не требующим значительного редактора или обновлений алгоритмов сравнения, говоря о vimdiff)

А если это не изменения в GIT? (Я использую perforce, и сейчас у меня нет выбора.)

Дубликат № 25887

Это двухколоночный вид. Это представление в трех столбцах.

Дубликат № 25887

Это двухколоночный вид. Это представление в трех столбцах.

Я подумал, что стоит связать проблемы вместе, потому что это та же проблема.
Две или три колонки - это часть решения.
Кстати, моя мотивация для связывания состоит в том, чтобы привлечь внимание обеих проблем и как можно скорее добавить недостающее поведение - я бы действительно хотел использовать эту функцию ☺

Но здесь 427 голосов против 310 (# 25887). Может быть, вы можете объединить подсчет голосов вместе, если вы уже хотите объединить. Эта функция войдет в топ-10

Реализация эффективного и удобного для пользователя слияния трех панелей в стиле IntelliJ (иногда называемого трехсторонним слиянием, но это два файла, объединенные в панель результатов) поставит продукт редактора VS Code на первое место. Я уверен в этом - и некоторые из этих обсуждений и многие комментарии рассказывают историю о людях, которые «держатся» за свои продукты Intellij только из-за отсутствия этой функции. Я не понимаю, как запрос функции может быть лучше мотивирован или более четким приоритетом для владельцев / разработчиков продукта. Есть новости о ваших мыслях (разработчиков, менеджеров по vs code) по этому поводу?

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

Именно поэтому я до сих пор использую Meld как свой слитный инструмент.

Именно поэтому я до сих пор использую Meld как свой слитный инструмент.

Возвышенное слияние намного лучше, чем слияние

Именно поэтому я до сих пор использую Meld как свой слитный инструмент.

Возвышенное слияние намного лучше, чем слияние

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

Можно ли хотя бы показать общую БАЗУ как для текущих, так и для предстоящих изменений?

так что нового?

Подождите, пожалуйста, заметьте меня, когда он будет доступен

ждем того же ... иметь этот инструмент будет потрясающе

может мне тоже стоит получить IntelliJ :)

+1 вот, теперь единственная причина, по которой я использую webstorm!
+1
ждем того же ... иметь этот инструмент будет потрясающе
может мне тоже стоит получить IntelliJ :)

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

Проверьте это https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph#review -details. Я думаю, что это расширение имеет почти те же функции, что и в IDE Webstorm.

Это основная причина, по которой я не использую vscode в качестве основного редактора. Было бы здорово увидеть это добавленным, поскольку встроенная интеграция и слияние git намного полезнее в WebStorm. Было бы здорово увидеть это добавлено.

Мне это нужно в моей жизни.

Нет новостей об этой функции? или даже плагин в порядке: D ??

vscode великолепен, но на самом деле все еще использует инструмент слияния intellij только для этого ..)

Все новости, которые у нас есть, - это Дорожная карта на 2020 год, в которой упоминается «полная поддержка слияния (трехсторонняя)»: https://github.com/microsoft/vscode/wiki/Roadmap#scm

О чувак! такой большой промах от VSCode. Интересно, как разработчики выживают без этой функции. Я собираюсь прибегнуть к Webstorm для этого

Проверил расширение Git Graph для кода Visual Studio, но его все еще нет. Я использую vscode для всех версий, кроме слияния, выборочно с pycharm.

_По-прежнему_ использование IntelliJ для слияния. Также панель коммитов, где мы можем выбрать, какие коммиты из того же файла оставить. и т. д. 😐

Чувак, я создал этот запрос 3 года назад :)

Хотя VSCode великолепен, мне все равно приходится использовать Webstorm для задач, связанных с Git :(

я жду этого

почему до сих пор нет поддержки этого? есть ли какой-либо плагин vscode, играющий такую ​​же роль на рынке?

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

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

Вид. Я начал внедрять плагин слияния в свободное время, и единственное, чего мне действительно не хватало, - это https://github.com/microsoft/vscode/issues/85682.

Однако я действительно благодарен за ide vscode с открытым исходным кодом 😍 Так что я буду просто рад всему, что будет добавлено - возможно, мы даже увидим эту функцию в этом году, поскольку это часть дорожной карты 2020 😍😍

Эта функция когда-нибудь появится? Основная линия Visual Studio имеет 3-стороннее слияние в TFS

Возможно, вы захотите опробовать мое новое расширение VS Code как Git Mergetool . В нем есть некоторые недостатки из-за отсутствия API, но я пока не получал никаких отрицательных отзывов, кроме себя. Однако предложенная четырехпанельная компоновка может даже иметь некоторые преимущества по сравнению с трехколоночной компоновкой.

Его еще нет в Marketplace, но его можно установить вручную. _Теперь он доступен на торговой площадке ._

Я удалю webstorm, когда получу эту функцию.

Очень нужно: +1:

Это будет отличная функция <3

В качестве временного решения используйте онлайн-инструменты, такие как https://editor.mergely.com.

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

Я хочу сказать, что это не должно быть «блокировщиком» для всех, кто использует VSCode. Попробуйте вместо того, чтобы возвращаться к IDEA IDE для взаимодействия с git. (Единственное расширение, которое я рекомендую, - это Git Graph)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги