-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Include the new Git Credential Manager #466
Comments
@linquize please. Use the correct forum for questions: the mailing list. Do not abuse an only remotely related ticket for your questions. Thanks. |
cc @haacked |
Please note that I had some back-channel discussions about this ticket. The preliminary outcome is:
Will keep y'all updated. @shiftkey welcome back to the workforce ;-) |
Windows XP support isn't that much important as it's support by Microsoft has ended anyway (there are still stubborn people living with a possible insecure OS and those shouldn't really affect a project like this) Installing a .NET framework is very easy, there's even a good chance that many using git (or github) already have the required package installed due to C#. Installing .NET via Inno Setup What's more important is that it's still in pre-release state and I'd at least wait for the first public release before going deeper into that, after all this will change how passwords are stored and therefore has security considerations for end users and will most likely invalidate all existing stored passwords. |
As of GCM v0.9-beta.2, it's behaviour is more compatible with |
Please note that your opinion on that matter counts less than the opinion of active contributors who might be stuck with XP for the time being. So while I appreciate your participation, I have to point out that I always value code over comments :-)
Yes, that was the plan. However, before including the credential manager in the end user installer, we should package it as Pacman packages. And we can do that sooner rather than later. Ther are nice examples to follow, e.g. https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-connect/PKGBUILD @neico how about giving it a shot? |
@dscho If you're asking me to provide such a file for MINGW-packages then this is the best I can think of: http://puu.sh/kJsLH/4927ea92d6.txt I have totally no idea what I'm doing there neither do I like environments like mingw, cygwin and whatnot, therefore my knowledge about them is very limited |
To avoid forcing everybody to follow a link that might be broken in the future:
@neico I thought you might be interested enough in this issue to drive it forward. The next step would be to install the Git for Windows SDK and then to follow the steps outlined in https://github.com/git-for-windows/git/wiki/Package-management#rebuild-packages, then verify that the package you built actually works. |
Probably a good idea to use tasks and call a shell script using cURL to download the installer and launch it with the appropriate parameters. |
Would not this Microsoft's Git Credential Manager slow fetch/push down? If it is .NET application it will definitely start up slower than plain C. Also, is there anything missing from wincred for regular user? I mean, two-factor authentication to GitHub is nice, but is it popular? |
@whut first of all, it will be optional (not decided yet whether it will be opt-in or opt-out). Second: why don't you just perform some tests and report back the results as to the speed? Lastly, you already mentioned what is missing from wincred most notably: two-factor authentication. If you do not need it, just don't use it. Due to being much more secure than one-factor authentication, it is pretty much standard, though. |
If that PC does not have the required .NET framework version, the credential helper won't run. |
How much this matters depends on how far back support should go:
cc @whoisj for any additional input |
I correct @shiftkey |
@linquize I am not sure we should wholly concern ourselves with what technology operating systems ship with, but what technology is readily available and can rightfully be expected to be present. Microsoft pushes updates to the .Net Framework via its Windows Update service, therefore any user who accepts patches from the OS vendor (and this should be all of them) can rightfully assume to have access to the necessary framework. Despite not officially supporting versions of Windows older than Windows 7, Microsoft has published (and made available via Windows Update) framework version 4.5.2. This is the primary reason behind the requirement decision. .Net Framework version use the third version numeral to indicate correctness and security patches. Then "yummy" changes included in each patch version are semantic only (language improvements, but not runtime changes). Therefore, any user who has framework 4.5.0, absolutely should have 4.5.2 instead. As for the performance consequences of create_process on a non-NGEN assembly, I'm fairly certain they are minimal at best. What is the cost of any activity of a network? Especially when many of those calls require the Internet to be part of that network. That, and the fact that a rather largish part of Git's runtime is still authored in shell script which requires an entire ecosystem with interpreter to be invoked, makes any cost incurred by using the CLR on Windows negligible at best in my opinion. As for "why .NET"? We choose .NET because of the need for Azure Directory Authentication Library (ADAL) support. So far, and as far as I know, the only support for client applications which includes multi-factor authentication support is with Azure's .NET client. |
@whoisj does the Git Credential Manager Setup check the available .NET version and download the framework installer if its requirements aren't met? This is what most Setups for .NET software do. If this is the case, do we really have to care about the .NET framework here? The performance hit should not be a concern, as long as this stays optional. The same applies to support for Windows XP. |
@rimrul it does check for the existence of the required version (or better) of the .NET Framework. It how ever, assumes Win7 support and not Win XP support. I'd need to update the installer to change its behavior when running on Win XP. |
So we could just do a checkbox "Install Git Credential Manager" with some info text about it being a .NET application created and maintained by Microsoft as open source and about it's purpose. This could be an opt in or opt out option (IMHO preferably opt in) that downloads and runs the official Setup for the Credential Manager. As long as it assumes Windows 7 we could just disable that option on Vista/Server 2008(R2?) and older. |
Yeah, I think we could easily show / hide the task based on the OS (and maybe a trivial registry check?). i still have to play with InnoSetup's tasks, been too busy with upstreaming patches recently. And yeah, I'd like to stay up-to-date with the latest known good build, if we can maybe have a link somewhere on http://microsoft.github.io/Git-Credential-Manager-for-Windows/ (via the |
... if the .NET framework 4.5.1 or later is detected. This feature can be turned off if desired. This closes git-for-windows/git#466 Signed-off-by: Johannes Schindelin <[email protected]>
After considerable consideration, I think makes for a better user experience to bundle the Credential Manager and add an opt-out option when the .NET framework (4.5.1 or later) was detected. |
…ager See git-for-windows/git#466. Signed-off-by: Johannes Schindelin <[email protected]>
There is a new Git Credential Manager that supports really cool features such as 2-factor-authorization with GitHub as well as with Visual Studio Online.
The best way might be to auto-package the releases.
The text was updated successfully, but these errors were encountered: