Eclipse Neon eGit 集成提供异常 401 需要授权

Eclipse Neon eGit Integration gives Exception 401 Authorization Required

升级到 Neon 后,我的 Egit 集成失败并出现以下异常

更新:See eclipse bug

i.errors.TransportException: https://github.com/[REPOSITORY]/SCA: 401 Authorization Required at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:169) at org.eclipse.egit.core.op.PushOperation.run(PushOperation.java:217) at org.eclipse.egit.ui.internal.push.PushOperationUI.execute(PushOperationUI.java:167) at org.eclipse.egit.ui.internal.push.PushOperationUI.run(PushOperationUI.java:229) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: org.eclipse.jgit.errors.TransportException: https://github.com/SCASoftware/SCA: 401 Authorization Required at org.eclipse.jgit.transport.TransportHttp$Service.openResponse(TransportHttp.java:855) at org.eclipse.jgit.transport.TransportHttp$MultiRequestService.execute(TransportHttp.java:956) at org.eclipse.jgit.transport.TransportHttp$Service$HttpExecuteStream.read(TransportHttp.java:882) at org.eclipse.jgit.util.io.UnionInputStream.read(UnionInputStream.java:145) at java.io.FilterInputStream.read(Unknown Source) at org.eclipse.jgit.util.io.TimeoutInputStream.read(TimeoutInputStream.java:112) at org.eclipse.jgit.util.IO.readFully(IO.java:247) at org.eclipse.jgit.transport.PacketLineIn.readLength(PacketLineIn.java:186) at org.eclipse.jgit.transport.SideBandInputStream.needDataPacket(SideBandInputStream.java:154) at org.eclipse.jgit.transport.SideBandInputStream.read(SideBandInputStream.java:136) at org.eclipse.jgit.util.IO.readFully(IO.java:247) at org.eclipse.jgit.transport.PacketLineIn.readLength(PacketLineIn.java:186) at org.eclipse.jgit.transport.PacketLineIn.readString(PacketLineIn.java:138) at org.eclipse.jgit.transport.BasePackPushConnection.readStringLongTimeout(BasePackPushConnection.java:395) at org.eclipse.jgit.transport.BasePackPushConnection.readStatusReport(BasePackPushConnection.java:328) at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:203) at org.eclipse.jgit.transport.TransportHttp$SmartHttpPushConnection.doPush(TransportHttp.java:786) at org.eclipse.jgit.transport.BasePackPushConnection.push(BasePackPushConnection.java:155) at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:167) at org.eclipse.jgit.transport.Transport.push(Transport.java:1250) at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:158) ... 4 more

我已经在 gitHub 网络界面中检查了我的凭据,但一直失败。更多信息:

eclipse.buildId=4.6.1.M20160907-1200 java.version=1.8.0_101 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=es_ES Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

这个变通方法不是最理想的解决方案,但至少对我有用。我有旧的工作区和旧的 Eclipse Marte 版本。我尝试以相同的方式设置相同的凭据,不出所料,旧的 eclipse 起作用了。但它也警告我其他应用程序修改了密码存储并要求我更改它们。用旧的日食修改它使霓虹灯工作。他们似乎至少在 Windows.

共享密码存储

短版。这是一个 Eclipse 错误。修复该问题的新版本可通过执行以下操作获得:

长版:我只是想克隆。但是我注意到一个微妙的行为,这可能是每个人的解决方法,就是当你看到密码提示时(提示没有复选框来保存它并且没有在对话框中预先填写你的用户 ID),它真的是 MPC提示输入密码。如果您输入有效的密码,那么 EGit 将看不到 401 响应代码,因此 EGit 在与该服务器通信时不会填写您保存的密码,因此下一次 EGit/JGit 访问将导致 401,因为保存的凭据没有被使用。我注意到的一个棘手的事情是,如果我只是在出现伪造密码提示时按下转义键或按下取消键,那么 EGit 就会开始工作。

Eclipse 论坛中有一个讨论:Eclipse Community Forum - Reply and a bug