[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#74509: Feature request - smerge-mode
From: |
Eli Zaretskii |
Subject: |
bug#74509: Feature request - smerge-mode |
Date: |
Sat, 21 Dec 2024 10:47:23 +0200 |
> From: Branislav ZahradnĂk <happy.barney@gmail.com>
> Date: Tue, 3 Dec 2024 07:39:30 +0100
> Cc: Eli Zaretskii <eliz@gnu.org>, 74509@debbugs.gnu.org
>
> On Tue, 3 Dec 2024 at 04:26, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>
> >> >> # keybinding
> >> >> would be nice to provide default keybinding for smerge-swap: C-c ^ s
> >> Interesting. I've never found a use for that command, personally.
> >> Could you give some hint for the situations where you found it handy?
> > Example:
> > I keep my functions alphabetically ordered.
> > When I merge two changes which added function in same alphabetical place,
> > I often need to change their order.
>
> I see; makes sense!
>
> >> >> # smerge-extend
> >> >> Helpful when user intent to keep both.
> >> Sorry: to keep both what?
> >
> > Both = lower + upper.
> >
> > Using above example:
> > when I intent to keep both functions, end of block (eg: C, Java, Perl, ...)
> > will currently not appear twice,
>
> Really? Here, when I merge two changes which both add a function at the
> same place I get a conflict with the complete functions (with their
> respective closing brace and trailing space if applicable).
>
> >> Hmm... Why just one line and why only from the end?
> > One line - one can use it multiple times to add more.
> > And yes, you are right, it should accept numeric argument (negative for
> > preceding line).
> > Though I still believe common use case will be to extend with following.
>
> I guess a numeric argument could be handy (e.g. to handle the case of
> extending from the front rather than from the end).
> I had in mind a different UI where you move point to the "end" of the
> extension (i.e. to right after the one-or-two lines you want to add to
> the ends), but I guess that would be more clunky than what you have.
>
> >> [ Unless you specifically chose 2-way conflicts, I recommend you
> >> investigate how to get 3-way conflicts, because they give a lot more
> >> information and allow for example `smerge-resolve` to "just work" in
> >> more cases. YMMV, but personally whenever I'm faced with a 2-way
> >> conflict, I'm frustrated. ]
> > Different experiences - I for example run mostly into 2-way conflicts
>
> Maybe it's because of
>
> % grep -B1 diff3 ~/.gitconfig
> [merge]
> conflictstyle = diff3
> %
>
> 🙂
>
> As I said, everyone has different preferences and experiences.
> I'm trying to organize my code (diff-friendly programming) that way
> so only minimum number of lines / informations is changed so conflicts
> are usually easier to solve, including punctuation characters used by
> given programming language. That leads to small diffs, easy to solve,
> but with necessity of having this extend functionality.
How should we go about this bug report? Can we make some progress
here? Or should we close it as wontfix?