GNU bug report logs -
#60126
30.0.50; vc-git-checkin: Offer to unstage conflicting changes
Previous Next
Reported by: Sean Whitton <spwhitton <at> spwhitton.name>
Date: Fri, 16 Dec 2022 18:34:01 UTC
Severity: normal
Found in version 30.0.50
Done: Sean Whitton <spwhitton <at> spwhitton.name>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 24/12/2022 20:22, Sean Whitton wrote:
> Now that we understand clearly what we want it to do, I bet the code in
> vc-checkin-git could be simplified (vc-git--stash-staged-changes is
> fine). So I'll see about doing that, with some tests, as you suggest.
>
> Let me ask you about the parsing of the 'diff --git' lines.
...
> Do you have any better ideas of how to extract the filename from the git
> --diff line, or perhaps a proof that my approach can't fail? :)
I don't know. You could try
(and (looking-at diff-file-header-re) (match-string 1))
instead, but it matches a different line (one that starts with "---").
> I wasn't
> happy with my regexp approach to extracting the filename. I'm not sure
> it can actually fail, but the current codes assumes it can, and that
> adds complexity.
Not sure which failure you are referring to, but the process of removing
already-staged hunks from vc-git-patch-string can indeed fail, because
the hunks might be staged, or might be not. The idea was to support both
situations.
> The --src-prefix, --dst-prefix and --no-prefix options to git-diff(1)
> might be relevant, but then we couldn't use a simple string-match to
> find hunks in vc-git-patch-string.
Right.
This bug report was last modified 2 years and 150 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.