GithubHelp home page GithubHelp logo

Feedback :) about diffconflicts HOT 6 OPEN

bew avatar bew commented on August 16, 2024 3
Feedback :)

from diffconflicts.

Comments (6)

whiteinge avatar whiteinge commented on August 16, 2024 1

Hi, @bew (and @3ter )! I'm the one who implemented hideResolved (with a good deal of guidance from the awesome folk on the Git mailing list). But I do appreciate the heads-up all the same -- I'm happy to hear that addition got noticed 😀 .

I'm yet uncertain what that means for this project but I think on it from time to time. When implementing hideResolved I unfortunately allowed myself to get distracted by an unrelated discussion and I didn't push hard enough to include the withHistory feature. With hindsight I think that's a critical omission that all mergetools would benefit from. Perhaps this project should adapt to use hideResolved and include the history views, or perhaps the history views should be included upstream and this project retired entirely. The former is (much) easier but the latter feels more "correct".

from diffconflicts.

whiteinge avatar whiteinge commented on August 16, 2024 1

so the plugin can still be used on systems with old version of git

Yeah, good call. That's a good path forward for this project. 👍

Git already provides base/remote/local version of the files, is the history view different from that?

hideResolved was implemented slightly differently than in this Vim plugin. That flag causes Git to overwrite LOCAL and REMOTE, whereas this plugin leaves them intact and only operates on MERGED. (Full explanation here.)

Pros: Many merge tools bindly diff LOCAL and REMOTE, so by overwriting those with each "side" of MERGED all those tools immediately benefit from hideResolved without any modification.

Cons: Overwriting LOCAL and REMOTE causes a loss of that useful historical data. hideResolved does not (currently) provide a way to deliver all versions of the conflicted file (LCONFL, RCONFL, LOCAL, REMOTE, BASE) to the merge tool like this plugin does and I think that should be an option.

from diffconflicts.

whiteinge avatar whiteinge commented on August 16, 2024 1

@danielcarr I'm personally still using this plugin and not currently using hideResolved. Although I don't often reference LOCAL and REMOTE when resolving conflicts, I do like the option to open those versions with a Vim command rather than having to abort the merge and restart it using a different mergetool.

To try and make a recommendation:

  • If you never look at LOCAL and REMOTE then you might as well just use hideResolved. Same end result and doing so will spare you one Vim plugin and ~100 SLOC of Vimscript.
  • If you do look at those (or want to retain the option, like me) then stick with this plugin.

from diffconflicts.

3ter avatar 3ter commented on August 16, 2024

Funny that you right now provide feedback as I just found out about this plugin (way too late 😅) and I do agree, it's 🏅 and I'm thankful for the contributors' efforts!

from diffconflicts.

bew avatar bew commented on August 16, 2024

Oh that was you! Nice 👍✨

I think it's a good idea to keep existing behavior so the plugin can still be used on systems with old version of git (looking at you CentOS..), but mentioning the new option and how to use it to skip processing in the plugin would be good as well, allows to reduce what the plugin does on top of git!

perhaps the history views should be included upstream and this project retired entirely.

I don't understand what you mean by that, how would that work?
Git already provides base/remote/local version of the files, is the history view different from that?

from diffconflicts.

danielcarr avatar danielcarr commented on August 16, 2024

@whiteinge For users who don't usually diff with history, and using recent versions of git, would you recommend continuing to use this plugin, or should we rather set git's mergetool to vimdiff with mergetool.vimdiff.hideResolved set to true?

from diffconflicts.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.