Scoop: Git manifest and it's binaries

Created on 15 Nov 2018  ·  7Comments  ·  Source: lukesampson/scoop

Is there any specific reason, why there are no bins added to path from bin folder?

There is already binary git-bash.exe from root directory, but it's opening new window with bash. But bin\sh.exe | bin\bash.exe could be opened in active terminal.

Why is git shim created from cmd folder instead of bin?? What are differences between executables?

    Directory: S:\Scoop\apps\git\2.19.1.windows.1\bin


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        5/10/2018  12:23 AM          40224 bash.exe
-a----        5/10/2018  12:23 AM          39704 git.exe
-a----        5/10/2018  12:23 AM          40224 sh.exe

git-bash

sh and bash

All 7 comments

That’s a great question. We could leverage all the executables in git’s bin folder. See
https://github.com/lukesampson/scoop/blob/01b832f0d9948481d7125de49191b336a1c4e6f1/bucket/openssh.json for just one example

I think your questions are a bit confused to me.

Is there any specific reason, why there are no bins added to path from bin folder?

For bash.exe and sh.exe (they are equal, see below), I would add them, because I missed one of them before too.
For git.exe, its already added from cmd\git.exe, and they are equal, as you can see below.

Why is git shim created from cmd folder instead of bin??

They are equal, but as gitk.exe and git-gui.exe are also in cmd folder, I think the author just linked it from that folder instead of unused bin folder.

What are differences between executables?

Actually there is no difference between the common files.

bin\bash.exe vs bin\sh.exe
bash vs sh
bin\git.exe vs cmd\git.exe
git vs git

That's why I suggest (in my PR #2816) just adding git-sh shim to link to bin\sh.exe and leave everything else as they are.

  1. It follows the convention of git-gui and git-bash.
  2. You can keep open a new terminal from console just like now, but you will have an option to use the active terminal.
  3. It can't be mixed up with git-bash shim or shortcut.

Easier would be adding env_add_path: bin and delete git shim from cmd. Cleaner and more convenient. Everything would be same as before. I don't see reason to rename sh to git-sh.

Yes I agree it would be cleaner, but it would have more disadvantage:

  1. I would use env_add_path only if absolutely necessary due to #2693 and the fact that scoop promises to not to pollute path. Under absolutely necessary I mean if too many executables are in a folder or like nodejs where the program might add some later to a folder (so it works like or is a package manager).
  2. bash and sh are really common terms, other programs might use it and even scoop and scoop-extras bucket has some which does:
❯ scoop search bash
'main' bucket:
    busybox (2358-g25a1bcec7) --> includes 'bash'
    cygwin (2.895) --> includes 'bash.exe'
    #some lines removed
    gow (0.8.0) --> includes 'bash.exe'
❯ scoop search sh
#many lines removed
'extras' bucket:
    easyrsa (3.0.5) --> includes 'sh.exe'

So I would prefer using the git prefix.

@moosad Agree with you, keep PATH clean as possible is what scoop promises (or trying to do). For those who want to add or change a manifest which is trying to pollute path, please think if shims can satisfy the need, before doing that.

So what do you think @Ash258?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Arnavion picture Arnavion  ·  3Comments

nitrocode picture nitrocode  ·  3Comments

klauern picture klauern  ·  3Comments

quantuumsnot picture quantuumsnot  ·  3Comments

vpratfr picture vpratfr  ·  3Comments