Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

re: git installation - navigating fork(s) in the road on windows #10

Open
DerekNonGeneric opened this issue Jan 29, 2024 · 23 comments
Open

Comments

@DerekNonGeneric
Copy link
Member

DerekNonGeneric commented Jan 29, 2024

the basic premise around this issue is that unix domain sockets were not designed for compat. w/ those found on windows


fork in the road on windows

image


for those on Windows 11 who have not yet installed Git while going thru and watching for suspicious software, we believe that the image below shows the correct answer one should choose:

image

we believe the correct answer above would alleviate so much pain


here is the last remaining doubt perhaps worth investigating as would be unique per user's machine:

using the native Windows ssh (an OpenSSH port)
https://dev.gnupg.org/T3883#150265

Originally posted by @DerekNonGeneric in OpenINF#1106 (comment)

@DerekNonGeneric DerekNonGeneric changed the title re: git installation - fork in the road on windows re: git installation - navigating fork(s) in the road on windows Jan 29, 2024
@DerekNonGeneric

This comment was marked as resolved.

@DerekNonGeneric

This comment was marked as resolved.

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Jan 31, 2024

very good — so now it's on!

image

i am going to start walking thru it now…

Step 2

0002

Step 3

0003

0003b

Step 4

0004

Step 5

0005

Alternatively, one may prefer VS Code, but let's not assume one even has that installed yet…

Step 6

0006

Step 7

0007

@DerekNonGeneric DerekNonGeneric pinned this issue Jan 31, 2024
@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Jan 31, 2024

[…] we believe that the image below shows the correct answer one should choose:

image

we believe the correct answer above would alleviate so much pain

here is the last remaining doubt perhaps worth investigating as would be unique per user's machine:

using the native Windows ssh (an OpenSSH port)
https://dev.gnupg.org/T3883#150265

Originally posted by @DerekNonGeneric in #1106 (comment)

hmmm, i am seeming to not have any more doubts:

@MathiasMagnus This change is to support Win32-OpenSSH by gpg-agent emulation of ssh-agent; You can use gpg-agent emulation of ssh-agent when you use Win32-OpenSSH. That is, you can use GPG auth subkey for Win32-OpenSSH.

Sorry, It's not related to gpg-agent's Unix domain socket emulation on Windows.

https://dev.gnupg.org/T3883#167481

that issue was finally set to done earlier this month!

Step 8

0008

0008a

Microsoft documentation focuses on how OpenSSH is used on Windows:

@DerekNonGeneric

This comment was marked as off-topic.

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

Step 9

Unless anyone has a good reason, otherwise:

image

Step 10

What ends up happening is that if you want to use Notepad for a quick edit, instead of a file with multiple lines visible on Unix-like machines, you end up seeing everything on the same line and can't do much about it, so this is preferred:

image

Step 11

I don't know whether our goal was to completely remove or stop usage of that Git Bash terminal emulator, but this information seem outdated now… (?)

0011

@DerekNonGeneric
Copy link
Member Author

i am going w/ MinTTY for now (not sure if we can update it later)

/cc @jorgebucaran as likely knows what should be selected here…

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

moving on since he is likely sleeping at this hour…

RE ⬇️:

https://github.com/OpenINF/openinf.github.io/blob/a69e0b86e13b029b85cc8ce8451f478404f841a2/.devcontainer/post-create.fish#L10-L11

Step 12

after recently messing around w/ this setting…

RECONCILE

… i believe the below setting is preferable since merge commits are kinda ugly and if we can avoid them, i think we should (i make efforts to do so1)…

image

trying to think of situations where FF or merge would be necessary and basically if you need to create a merge commit, it seems like something got messed up along the way (?) — there is probably a good explanation, we will get back to this later as it seems like it has to do w/ culture…

Footnotes

  1. https://gist.github.com/DerekNonGeneric/0a1d93edfc564bd86f313f96c159dde0

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

Step 13

image

Compare to Git's built-in credential helpers (Windows: wincred, macOS: osxkeychain, Linux: gnome-keyring/libsecret), which provide single-factor authentication support for username/password only.

GCM replaces both the .NET Framework-based Git Credential Manager for Windows and the Java-based Git Credential Manager for Mac and Linux.
https://github.com/git-ecosystem/git-credential-manager

umm, trying to remember what it's like w/o this now…

🔗 https://www.gnupg.org/related_software/pinentry/index.html

@DerekNonGeneric
Copy link
Member Author

Step 14 (extra options)

image

Short version: there is no exact equivalent for POSIX symlinks on Windows, and the closest thing is unavailable for non-admins by default unless Developer Mode is enabled and a relatively recent Windows 10 version is used. Therefore, symlink emulation support is only turned on by default when that scenario is detected. Support can be enabled by the user, via the core.symlinks=true config setting.
https://github.com/git-for-windows/git/wiki/Symbolic-Links

no harm, no foul on the symlinks then since it's only enabled when necessary afaict

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

Step 15 (experimental options)

image

for this one:

  • psuedo consoles: maybe not for my daily driver, but worth looking into soon (?)
  • built-in system monitor: have heard good things about that already

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

Step 16 (done)

finally!

image

i am going to reboot now since plenty of consoles/terminals open

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

Step 5

0005

Alternatively, one may prefer VS Code, but let's not assume one even has that installed yet…

let us begin then — https://code.visualstudio.com/#alt-downloads

System Installer x64 Arm64
System Installer x64 Arm64

otherwise, there is no way to validate options lol

~/Downloads/VSCodeSetup-x64-1.85.2.exe

graphical again!

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

Step 1

image

Step 2

image

Step 3

image

Step 4

image

Step 5

image

Step 6

image

id not launch it, probably best to disable telemtry first…

@DerekNonGeneric

This comment was marked as duplicate.

@DerekNonGeneric
Copy link
Member Author

moving right along, we will evaluate whether the shortcoming of Git Bash are dealbreakers:

🔗 https://github.com/OpenINF/.github/pull/696/files#r1473776867

if so, we will simply disable its use, which is well-documented in the link provided above

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

shell integration of Git Bash is not supported:

🔗 https://code.visualstudio.com/docs/terminal/shell-integration

Removing built-in profiles

To remove a built-in profile and prevent it from showing up in the new terminal dropdown, set the name of the profile to null. For example, to remove the Git Bash profile on Windows, use this setting:

{
  "terminal.integrated.profiles.windows": {
    "Git Bash": null
  }
}

🔗 https://code.visualstudio.com/docs/terminal/profiles#_removing-builtin-profiles


Then we'd have to create the pwsh profile used on windows…

@DerekNonGeneric
Copy link
Member Author

right on, we are super close to the tunneling (my fave part)

pwsh

Add the following to your PowerShell profile. Run code $Profile in pwsh to open the file in VS Code.

if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --locate-shell-integration-path pwsh)" }

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

okay, next we are going to download and install Docker Desktop for Windows — macOS uses OrbStack

🔗 https://www.docker.com/products/docker-desktop/
🔗 https://docs.docker.com/desktop/install/windows-install/

i don't really like the Docker Desktop GUI installer,
so maybe running the following in PowerShell would be preferable:

cd ~\Downloads
Start-Process 'Docker Desktop Installer.exe' -Wait -ArgumentList 'install', '--accept-license'

good, that works:

image

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Feb 1, 2024

image

before we get too ahead of ourselves on this issue,
the main tunneling software should be looked into
the gpg-agent cannot be forgotten about, main ting

@DerekNonGeneric
Copy link
Member Author

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Mar 27, 2024

OK, it is becoming more and more apparent that Git LFS will be necessary…

🔗 https://git-lfs.com

image

@DerekNonGeneric
Copy link
Member Author

DerekNonGeneric commented Mar 27, 2024

image

image

(it was a three-step process; accepting defaults)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant