Vscode: Git: используйте VS Code в качестве редактора слияния

Созданный на 25 апр. 2016  ·  96Комментарии  ·  Источник: microsoft/vscode

1.0.0 представила возможность использовать VS Code в качестве git difftool. Соответствующие глобальные строки .gitconfig следующие:

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE

Как я могу использовать VS Code в качестве инструмента слияния git ?

Соответствующие аргументы, которые он должен принять, я полагаю, это $LOCAL , $REMOTE , $BASE и $MERGED .

feature-request git

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

У нас не было бы другого пути. 😉

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

Пока не поддерживается.

Эта функция случайно не включена в следующую итерацию?

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

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

У нас не было бы другого пути. 😉

Не могу проголосовать за это достаточно. Это лучший сценарий для меня, чтобы вернуться к другому редактору / IDE ( кашель * веб-шторм с памятью * кашель ) :)

Если возможно, это было бы находкой по нескольким причинам:

  1. Meld, хотя и функционален, сильно не хватает функциональности в отношении настраиваемых сочетаний клавиш и выделения цветов, и он действительно _действительно_ медленно запускается на моей машине с Windows, даже если он установлен на SSD.
  2. Я бы хотел, чтобы редактор слияния также принимал те же .editorconfig/settings, что и мой основной текстовый редактор, и если vscode заполнит этот пробел, это будет здорово.
  3. На меньших уровнях тема редактора и знакомство с интерфейсом также являются плюсом — иногда я или моя команда допускают ошибки при слиянии из-за отсутствия подсветки синтаксиса, которые, хотя и небольшие, вызывают огромные ошибки в производственных системах. И некоторые из этих ошибок довольно трудно даже понять, пока они не произойдут. _Я предполагаю, что с mergetools всегда будут подобные проблемы_, но, возможно, их будет меньше, если можно будет выполнять слияние в той же среде, в которой вы пишете.

Как я уже сказал, meld — это _ok_, но было бы супер, если бы vscode когда-нибудь использовался в этом сценарии.

Visual Studio всегда был моим выбором для слияния кода. Хотелось бы увидеть эту функцию!

Нет проблем с использованием другого git mergetool, но очень хотелось бы, чтобы собственный пользовательский интерфейс слияния появился очень скоро!

😐 мда.

Я ожидаю эти функции в тяжелых IDE. В классе легковесных редакторов vscode (в которых я бы рассматривал атом, возвышенное и т. д.) я этого не делаю. Для действий, связанных с git, я предпочитаю терминал и vim для разрешения конфликтов. В толпе GUI уже есть отличные однозадачные приложения, такие как объединение, разделение, калейдоскоп и т. д.

@kumarharsh , это хороший момент в отношении немедленной обратной связи (например, linting). Следуя описанному выше маршруту vim, я полагаю, вы можете установить внешний редактор git по умолчанию на vscode ... хотя может быть сложно предоставить контекст для специфичного для проекта linting/ правила синтаксиса/и т.д.

+1

можно ли реализовать эту функцию как расширение vscode? или любые существующие рекомендуемые добавочные.

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

Enviado сделать мой телефон Windows 10

De: Танк Суй
Enviado:quarta-feira , 7 декабря 2016 г. 10:41
Пункт: Microsoft/vscode
Копия: Герберт Пиментел; Комментарий
Assunto: Re: [Microsoft/vscode] Использование VS Code в качестве инструмента слияния git (#5770)

можно ли реализовать эту функцию как расширение vscode? или любые существующие рекомендуемые добавочные.

Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub или отключите ветку.

Плагин может предоставлять функции пользовательского интерфейса: посмотрите историю Git. Он отображает веб-просмотр, который «потенциально» можно использовать в качестве инструмента слияния. Но я думаю, что плагину будет очень сложно сделать это без определенного уровня поддержки самого vscode.

Основная проблема с инструментами калейдоскопа, слияния и т. Д. В очень типичном случае использования:
Редактировать результат во время слияния. Например, вы знаете: принять эту строку слева, принять эту строку справа, а также добавить это небольшое исправление, чтобы они оба могли работать вместе.
Капитан очевидно сообщает: инструменты слияния хороши для слияния :D
Но редактирование с помощью iemeld — это совсем больно, особенно когда вы привыкли к такому удобному инструменту, как vscode. Вот почему большинство разработчиков хотят, чтобы инструмент слияния был интегрирован в их редактор.

4-панельный 3-сторонний интерфейс слияния P4merge превосходен.
http://naleid.com/blog/2013/10/29/how-to-use-p4merge-as-a-3-way-merge-tool-with-git-and-tower-dot-app

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

Расширение VS Code идеально подходит для слияния конфликтов.

+1

Git параллельный преобразователь конфликтов не работает в последнем коде VS.

Версия 1.10.2
Зафиксировать 8076a19fdcab7e1fc1707952d652f0bb6c6db331
Дата 2017-03-08T14:02:52.799Z
Оболочка 1.4.6
Рендерер 53.0.2785.143
Узел 6.5.0

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

Это обязательная функция, позволяющая полностью перейти на VSCode при работе над Agile Development Projects. Интегрированный инструмент слияния значительно экономит время, без которого функция git просто неполна. Я надеюсь, что мы сможем получить это в ближайшее время.

+1

мне нужен инструмент слияния

Я могу порекомендовать расширение «лучшее слияние» на данный момент...

Да, это то, что я использую его сейчас, и довольно хорошо!

Значит, этот вопрос я думаю можно закрыть?
Вс, 30 апреля 2017 г., 16:58, Али Робертсон, [email protected]
написал:

Я могу порекомендовать расширение «лучшее слияние» на данный момент...


Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/5770#issuecomment-298222866 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/AAU8Q2JVio1PlIvEb8S1zg2cf5tzxxciks5r1Fs9gaJpZM4IPCMA
.

>

Отправлено с айфона

@alirobe лучше объединить, не иметь трех версий окон, таких как meld
Похоже, у vsc всего три окна, но никто не реализует инструмент слияния?

Привет @nchamas , @joaomoreno и всем заинтересованным людям,
Сегодня я настроил использование VS Code в качестве моего git mergetool и объяснил это на StackOverflow: Как использовать Visual Studio Code в качестве редактора по умолчанию для Git MergeTool (он объясняет это более подробно, так что проверьте!).

Вот скоростная версия:
Вы можете напрямую отредактировать .gitconfig и вставить

[merge]
    tool = vscode
[mergetool "vscode"]
    cmd = code --wait $MERGED

или из командной строки введите

  1. git config --global merge.tool vscode
  2. git config --global mergetool.vscode.cmd "code --wait $MERGED"

Затем используйте git mergetool из каталога git с конфликтом слияния, и та-да 😄!

Вы должны увидеть строку с надписью Accept Current Change | Принять оба изменения |

Просто не забудьте сохранить файл перед закрытием VS Code!

Мне нравится, что у него есть кодовая линза «Принять текущее изменение | Принять входящее изменение | Принять оба изменения | Сравнить изменения», и мне нравится параллельная разность, когда вы нажимаете «Сравнить изменения», но это не позволяет мне ничего редактировать в линию или с третьей комбинированной панелью, которую вы видите в инструменте слияния Visual Studio или других инструментах, таких как Meld, Winmerge или Beyond Compare. Я хотел бы увидеть эту третью панель в параллельном сравнении, чтобы я мог делать больше пользовательских слияний.

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

«Настоящая» Visual Studio действует как отличный инструмент слияния, FWIW. Я бы хотел увидеть эту функцию в VS Code.

+1 к @zneak

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

Ложные срабатывания при изменении файла также являются проблемой при перемещении по веткам.

Я люблю инструмент, этой области просто не хватает.

Привет
в VScode должен быть инструмент слияния по умолчанию.
У нас классный diff-tool, а vsc умеет делить на три части, так что... нужно просто его реализовать.
Мы могли бы реализовать это сообществом с ext, но мы не разрешаем менять UI. Мы не можем создавать пользовательские кнопки в пользовательском интерфейсе, поэтому помогите нам

Я использую kdiff3 в Windows и Mac по умолчанию git mergetool . Он имеет 4-просмотровое 3-стороннее слияние, очень хорошее автоматическое разрешение, бесплатный и кроссплатформенный.

В мае было интегрировано лучшее слияние. Это эффективно решило проблему, добавив пользовательский интерфейс слияния.
https://code.visualstudio.com/updates/v1_13

Ericop предоставил инструкции по настройке vscode для использования интерфейса «лучшего слияния» в качестве инструмента слияния выше.

Поэтому этот вопрос следует закрыть, решить.

@alirobe Я не думаю, что это слияние хорошо, может быть, это может показаться слиянием, три редактора показывают LOCAL, BASE, REMOTE

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

Это одно из лучших расширений, которые я когда-либо использовал https://marketplace.visualstudio.com/items?itemName=letmaik.git-tree-compare#review -details.

@joaomoreno Следуя вашему комментарию, увидим ли мы трехстороннее слияние в будущем?

@zjjott kdiff3 делает это очень хорошо (локальные, базовые, удаленные и результаты). Я действительно не уверен, почему людям нужны/желаются дополнительные функции в vscode, когда этот существующий кросс-платформенный инструмент уже настолько хорош.

@RoyTinker, потому что я обычно не просто «сливаюсь». Вы должны что-то редактировать (когда возникают конфликты), и когда вы что-то редактируете, вам нужен лучший редактор, а не то, что есть в kdiff3 (это нормально, но vscode намного лучше)

Почему бы вам не поговорить с @eamodio и не импортировать его замечательную работу над GitLens для VSCode ?
Я очень доволен этим, особенно при просмотре конфликтующего файла, когда у меня есть изменения из обоих потоков в одном представлении, и я могу принять текущее изменение, входящее изменение, оба изменения или даже отредактировать их за один раз.
Это довольно близко к идеалу, только иногда сходит с ума с окончаниями строк в Windows, тогда на помощь приходит только полноценная Visual Studio.
В противном случае, лучший GUI-интерфейс git из IDE, который у меня когда-либо был.

@m-wilczynski Хотя я очень ценю добрые слова - поддержка конфликтов слияния не является частью GitLens - она ​​встроена непосредственно в сам vscode (изначально это было другое расширение, которое было добавлено в ядро)

@eamodio - извините, не знал. 😄 Не меняет того факта, что для меня (и большинства моих коллег, которые используют VSCode @ работают по моей рекомендации) VS Code бесполезен для работы с git без GitLens.
С GitLens мне не терпится открыть VSCode, даже если я не пишу в нем код (в основном использую его для TypeScript и JavaScript), просто чтобы ясно увидеть, что происходит в этом слиянии.
Все дело в пользовательском опыте.
Даже если в VSCode все это было включено, и вам нужно было только правильно его визуализировать — вы сами виноваты в моем потрясающем пользовательском опыте. 😉

@m-wilczynski Очень скромно. Спасибо-мне очень приятны добрые слова!

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

@tracker1 Эта проблема технически решена: https://github.com/Microsoft/vscode/issues/5770#issuecomment -308533904. Не знаю, почему его до сих пор не закрыли.

@joaomoreno, можно этот вопрос закрыть?

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

Да, и у нас есть сценарии, когда у git есть конфликт (переименование/переименование), а файл $MERGED становится пустым, и все еще необходимо редактировать команду diff $LOCAL $REMOTE, я использую эту команду ниже для этой проблемы.

code --wait --diff $REMOTE $LOCAL | cp $LOCAL $MERGED

Но их можно выделить в отдельные вопросы - основная работа по этому конкретному вопросу выполняется ИМО.

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

В настоящее время я использую Visual Studio (собственно) в качестве инструмента MERGE/DIFF и MELD, когда Visual Studio (собственно) не установлена. Они выполняют свою работу, но было бы здорово иметь возможность редактировать код с помощью того же инструмента, который использовался для его написания в первом дворце.

Если они захотят его закрыть, это нормально, так как его _можно_ использовать в качестве инструмента слияния, но тогда у нас должна быть немедленно создана проблема, чтобы захватить возможность параллельного трехстороннего сравнения.

Теперь у vscode есть возможность отображать более двух окон. (начиная с версии 1.24.0). Я сам не пробовал 3-стороннее слияние, но теперь это, безусловно, должно быть возможно.

Это, безусловно, самый большой недостаток этого замечательного редактора.

Трехстороннее слияние является обязательным. Текущий способ выполнения слияния git очень груб в использовании.

Пожалуйста, добавьте трехстороннее слияние

@michaelKurowski Да, недавно я слышал, как коллеги жалуются на возможности слияния VScode, но не вдавался в подробности. Короче говоря, если этот аспект можно улучшить, это пойдет на пользу vscode.

Пожалуйста, добавьте трехстороннее слияние

Я не уверен, что полностью понимаю. Люди здесь, кажется, просят трехстороннее слияние, но похоже, что VSCode уже имеет трехстороннее слияние, как на этом снимке экрана.

image

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

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

Должна ли эта проблема называться чем-то вроде «Добавить параметр командной строки для вызова существующей функции трехстороннего слияния», или есть что-то, что я неправильно понимаю в текущей реализации слияния в VSCode, помимо отсутствия использования командной строки, что делает его неподходящим для трехстороннего слияния git?

Я не уверен, что полностью понимаю. Люди здесь, кажется, просят трехстороннее слияние, но похоже, что VSCode уже имеет трехстороннее слияние, как на этом снимке экрана.

image

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

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

Должна ли эта проблема называться чем-то вроде «Добавить параметр командной строки для вызова существующей функции трехстороннего слияния», или есть что-то, что я неправильно понимаю в текущей реализации слияния в VSCode, помимо отсутствия использования командной строки, что делает его неподходящим для трехстороннего слияния git?

Я считаю, что они хотели бы видеть что-то вроде этого:
https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png

@michaelKurowski Понятно . Возможно, тогда есть две разные проблемы,

  • Визуализация трехсторонних слияний. (текущая реализация отображает встроенные слияния, тогда как некоторые люди просят представление в три столбца)
  • Возможность использовать VSCode в качестве трехстороннего инструмента слияния, вызываемого из командной строки. (для чего потребуется параметр командной строки, аналогичный текущему --diff file1 file2 но с поддержкой слияния, например, --merge basefile revision1file revision2file mergedfile

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

Хорошо, спасибо за разъяснения @uglycoyote и @michaelKurowski , так что, по вашему мнению, мы должны создать новую проблему/запрос функции, посвященную просмотру

Было бы хорошо, если бы @joaomoreno мог прокомментировать вопрос @JeanPerriault и мое предложение о том, следует ли разделить эту проблему на две части, поскольку он, похоже, входит в команду VSCode. Но, судя по его предыдущим ответам о том, что «необходимо реализовать пользовательский интерфейс слияния» и «у нас не было бы другого пути (кроме трехстороннего слияния)», кажется, что он видит обе проблемы, о которых я упоминал. как одно.

@joaomoreno , не имело бы смысла сначала в краткосрочной перспективе реализовать параметр командной строки, чтобы раскрыть существующее поведение слияния? Я лично был бы в порядке с использованием текущего встроенного слияния и не считаю, что представление в 3 столбца необходимо (хотя это может быть приятно). Но если подключить существующее слияние к командной строке — простая задача, то я бы не хотел, чтобы оно застопорилось на неопределенный срок из-за отсутствия у команды VSCode желания реализовать более причудливую трехстороннюю визуализацию слияния.

да, дайте нам визуальное представление/редактор слияния, например http://meldmerge.org/

WinMerge работает как босс
after-3way-merge

да, дайте нам визуальное представление/редактор слияния, например http://meldmerge.org/

Я использую Meld, и хотя я хотел бы, чтобы VSCode делал то же самое, я не вижу проблемы в использовании Meld для этого, честно говоря.

@lig, почему тогда я должен использовать vscode для редактирования? Я могу просто использовать блокнот

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

@lig Я просто хочу объяснить, почему люди просят интегрировать инструмент слияния в vscode
Потому что им нравится vscode и не нравятся другие инструменты. Слияние также является редактированием. И вы хотите редактировать файлы в своем прекрасном редакторе, даже если редактирование является частью процесса слияния.

Взгляните на этот комментарий: https://github.com/Microsoft/vscode/issues/5770#issuecomment -265497516

@josser, как упоминалось ранее в этой теме много раз, первоначальный запрос можно выполнить, настроив git для использования VSCode в качестве инструмента слияния и запустив git mergetool во время конфликтов, что открывает поток слияния VSCode, который работает нормально для меня и других пользователей.

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

@lig Я просто хочу объяснить, почему люди просят интегрировать инструмент слияния в vscode
Потому что им нравится vscode и не нравятся другие инструменты. Слияние также является редактированием. И вы хотите редактировать файлы в своем прекрасном редакторе, даже если редактирование является частью процесса слияния.

Взгляните на этот комментарий: # 5770 (комментарий)

Просто и легко! Это именно то, чего хотят люди. Почему это так трудно понять? Я запускаю diff, и следующим шагом является слияние. Это связано друг с другом, и любое разделение полностью противоречит хорошему рабочему процессу и просто стоит времени. Я хочу использовать редактор кода Visual Studio, а не внешний инструмент.

Я также хотел бы, чтобы VS Code можно было использовать в качестве трехстороннего редактора слияния. Примите или отклоните изменения слева или справа и измените результат перед фиксацией изменений. Это значительно улучшит VSCode. На самом деле нет смысла использовать столько мощных функций git, кроме одной из важных: слияния.

Сделайте это как JetBrains. (https://github.com/Microsoft/vscode/issues/37350)

И, честно говоря, слияние слияния выглядит довольно уродливо. Это с 2012 года, да? И похоже, что это из 2003 года. Почему я должен путешествовать во времени каждый раз, когда хочу сделать трехстороннее слияние?

Была создана новая проблема, чтобы иметь трехстороннее представление слияния: https://github.com/Microsoft/vscode/issues/37350.

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

@mofahead похоже, что тот, который я создал, был дубликатом # 37350 .. хотя в закрытии упоминалась эта проблема.

Было бы неплохо улучшить https://github.com/Microsoft/vscode/issues/8226 , прежде чем включать его в качестве редактора слияния.

Всем привет!

Вы можете следовать руководству по настройке VSCode в качестве официального git.mergetool:

https://stackoverflow.com/a/44549734

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

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

Для тех, у кого Mac, есть обходной путь.

  • Установить Диффмердж
  • Установите VSCode Git Diff и инструмент слияния
  • Изменить ~/.gitconfig
    добавлять
[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
        tool = diffmerge
[mergetool "diffmerge"]
        cmd = diffmerge -merge \"$LOCAL\" \"$BASE\" \"$REMOTE\"
        trustexitcode = true
        keepbackup = false
  • В VSCode перейдите в Source Control, щелкните файл правой кнопкой мыши и выберите Launch merge tool

Единственное, я не могу заставить файлы автоматически объединяться обратно в VSCode во всех сценариях.

Уже много лет использую diffmerge на Mac и Windows. Перешел на Sublime Merge пару месяцев назад. Я очень, очень люблю это. Это быстро, это современно. Я также использую его в Windows вместо Visual Studio, когда мне нужно работать в этой среде.

вернуться к emacs для сравнения и слияния каталогов, не контролируемых VCS :(

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

Таким образом, diff-directories emacs создает сеанс, а затем выборочно объединяет то, что я хочу, для этой задачи. Я пытаюсь выйти из emacs, но иногда нахожу то, что он может сделать, чего не может Code.

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

У вас есть ссылка на L13D?

@christarczon Плагин называется L13 Diff - https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-diff

Я не уверен, что полностью понимаю. Люди здесь, кажется, просят трехстороннее слияние, но похоже, что VSCode уже имеет трехстороннее слияние, как на этом снимке экрана.

image

Это работает для совершенно тривиальных конфликтов слияния, но я сталкиваюсь с людьми в компаниях, которые используют только VSCode, и вся их идея «конфликтов слияния» основана на чрезвычайно упрощенном diff VSCode. И когда они получают нетривиальный конфликт слияния, они всегда «выбирают одну сторону» (по сути, удаляя чьи-то изменения в нескольких строках вместо того, чтобы объединять их) по крайней мере один раз.

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

Это не просто «младшие разработчики». Я программирую уже 20 лет, и слияние с тремя панелями просто лучше. Вы будете делать ошибки со встроенными различиями, которые вы бы заметили, если бы могли сразу увидеть всю полноту каждой версии кода.

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

@lig Я просто хочу объяснить, почему люди просят интегрировать инструмент слияния в vscode
Потому что им нравится vscode и не нравятся другие инструменты. Слияние также является редактированием. И вы хотите редактировать файлы в своем прекрасном редакторе, даже если редактирование является частью процесса слияния.

Потому что VSCode — это больше, чем прославленный текстовый редактор. Это IDE с linter и intellisense. Он даже анализирует мой код Python на наличие неопределенных переменных. И я считаю очень полезным при слиянии иметь возможность видеть в режиме реального времени намеки на то, что linter+intellisense+etc. предлагает, когда я выбираю, какие линии принять.

Использование «тупого» инструмента слияния затрудняет поиск ошибок в слиянии и даже исправление ошибок после слияния и возврата в VSC.

Это одна из двух или трех вещей, которые мешают мне вернуться к VS Code.

Это в дорожной карте 2020-

Обеспечить полную поддержку слияния (3-сторонняя)

См. https://github.com/microsoft/vscode/wiki/Roadmap#scm .

Я только что выпустил свое расширение VS Code как Git Mergetool . Он не такой многофункциональный, как другие редакторы конфликтов слияния, но его можно использовать. По умолчанию я настроил макет с 4 панелями, который показался мне более практичным, чем классический макет с 3 столбцами. Жду отзывов!

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

Привет @zawys ,

Поддерживает ли он сравнение 3 или 4 папок, в которые я буду объединять файлы oprhan?

Привет @gusbemacbe ,

В своем нынешнем состоянии расширение в первую очередь считалось «трехсторонним» инструментом слияния файлов, подходящим для интерфейса git mergetool . Это по-прежнему основная цель. Тем не менее, я планирую расширить функциональность, чтобы не запускать процесс git-mergetool, поскольку этот небольшой скрипт оболочки имеет некоторые собственные недостатки UX. Вместо этого я хочу больше интегрировать расширение с VS Code.

В этом процессе я буду клонировать некоторые функции git-mergetool, например, разрешать конфликты удаления и слияния символических ссылок. Я не уверен, насколько это покрывает ваш вариант использования. Возможно, я мог бы также добавить, например, команду «принять все входящие в папку». Пожалуйста, откройте вопрос для
расширение для дальнейшего обсуждения.

Мое расширение теперь можно найти на Marketplace .

Мое расширение теперь можно найти на Marketplace .

202010-04_0859_27__

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

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