git-for-windows / git

A fork of Git containing Windows-specific patches.
http://gitforwindows.org/
Other
8.37k stars 2.54k forks source link

git-extra: stop owning `/etc/inputrc` #4233

Open dscho opened 1 year ago

dscho commented 1 year ago

As of https://github.com/msys2/MSYS2-packages/pull/3493, that file is owned by the libreadline package. This leads to conflicts with the git-extra package.

What we should do, then, is not overwrite that file wholesale but edit it as needed.

lazka commented 1 year ago

I'd be happy to sync in the current git-4-windows version of that file.

dscho commented 1 year ago

I'd be happy to sync in the current git-4-windows version of that file.

I fear we first have to analyze the provenance of that file, and what parts of it are still relevant, and what parts should be patched in (or be integrated into the libreadline's file).

lazka commented 1 year ago

I'm afraid I don't have much experience with that config file :/ . For future reference, here is the history of both:

dscho commented 1 year ago

That's not the complete history ;-) The remainder is here: https://github.com/msysgit/msysgit/commits/master/etc/inputrc

PhilipOakley commented 1 year ago

I just hit this, I think. I hadn't updated my SDK install in a while, and the just released security fix v2.39.2 prompted me to update via update-via-pacman.bat which produced:

 Total (159/159)                                                             399.8 MiB  6.34 MiB/s 01:03 [#############################################################] 100%
(159/159) checking keys in keyring                                                                       [#############################################################] 100%
(159/159) checking package integrity                                                                     [#############################################################] 100%
(159/159) loading package files                                                                          [#############################################################] 100%
(159/159) checking for file conflicts                                                                    [#############################################################] 100%
error: failed to commit transaction (conflicting files)
/etc/inputrc exists in both 'libreadline' and 'git-extra'
Errors occurred, no packages were upgraded.
"End of Pacman (Second Pass) for (non-core) packages"
==
Pacman update failed
Press any key to continue . . .

Is there a temporary/local fix to get around this? - IIUC the problem is in the two packages, rather than any conflict with what I have on disc, but I could easily be mistaken.

SlySven commented 1 year ago

I'm getting the same thing via a pacman -Syuu - so I have temporarily uninstalled git-extra - I'm only an hour and a half into the upgrade so I'll see what happens when I try to put it back after the process completes (I reckon another hour or so) - I suspect something involving the –overwrite glob argument to pacman -S will be required temporarily even though it is not normally recommended.

Update: it is possible to get past this by renaming the /etc/inputrc installed by libreadline (which looks to be the "original") before installing git-extra - though it is worth noting that there are some differences in the latter which seems to have been "cut-down" and made specific to the "git-4-windows" environment....

dscho commented 1 year ago

Is there a temporary/local fix to get around this?

@PhilipOakley the newly-introduced update-via-pacman.ps1 uses --overwrite=\* to get around that.

PhilipOakley commented 1 year ago

he newly-introduced update-via-pacman.ps1 uses --overwrite=\* to get around that.

@dscho is there a Catch-22 issue here, as I don't have that new .ps1 file yet? (currently updates being via pacman and the older .bat version..).

I guess I can download that file and run it directly (once I've checked I think I know what it/I am doing ;-) ...

PhilipOakley commented 1 year ago

I guess I can download that file and run it directly

(for future readers) Follow Dscho's link, [Click on the file you wish to download from GitHub to open the individual file]. From here, right click the Raw button at the top of the file, select Save Link As… , choose the location on your computer where you want to save the file, and select Save.

Didn't know that 'right-click on the Raw button' trick. I saved at C:\git-sdk-64\update-via-pacman.ps1, alongside the update-via-pacman.bat file

dscho commented 1 year ago

How about downloading the .ps1 file individually and dropping it in your local directory?

After that, I would like this ticket to return to its scheduled programming, which is not actually to assist any individual user with updating their Git for Windows SDK, but with resolving the ownership conflict over the inputrc file. Thanks.