Joh*_*ell 44 git visual-studio visual-studio-2015
因此,随着Visual Studio 2015刚刚发布,与git的集成更加紧密.
然而,似乎缺乏的功能是通过SSH的git.2013年有各种插件允许此功能(即GitExtensions)但我在2015年看不到任何插件.
GitHub插件似乎只适用于GitHub而不是通用的git repos.
我不是在寻找一个更好的观点,只有一些例子或文章,看看是否有人在Visual Studio 2015上运行Git + SSH.
Edw*_*son 49
没有.Visual Studio 2015(RTM)不支持用于Git遥控器的SSH.即使GitHub存储库使用GitHub插件(目前使用与Git存储库相同的连接机制,使用团队资源管理器,也是如此).
这是令人遗憾的,但有一些原因导致这种情况尚不可用:简而言之,我们认为,提供SSH 不良或不安全比完全不提供SSH更糟糕,我们希望非常有信心我们提供的任何SSH实现都是高质量的.
也就是说,我们正在努力,并取得进展.微软将开始在Windows中包含OpenSSH(并且是该非常精细项目的赞助商).但是,我无法预测何时可以提供支持.
在GitHub的扩展是开源的,所以这是可能的,它可能是能够使用不同的连接机制,并开始在团队资源管理器的核心Git支持前支持SSH.
以下是Visual Studio Update 2和Update 3的一些基本说明.请参阅BPas帖子中的基本内容链接,例如,您需要:
构建libssh2
请执行下列操作:
cd <libssh2 root dir> (e.g. wherever you extracted the source to)
mkdir build && cd build
cmake -DCRYPTO_BACKEND=WinCNG -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ..
Run Code Online (Sandbox Code Playgroud)在构建目录中打开生成的libssh2.sln
构建libgit2
请执行下列操作:
cd <libgit2 source dir> (e.g. this is wherever you extracted the libgit2 source you got from VS2015's extensions directory, see BPas' link for details)
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DSTDCALL=ON -DSTATIC_CRT=OFF -DUSE_SSH=OFF -DLIBSSH2_FOUND=TRUE -DLIBSSH2_INCLUDE_DIRS=<libssh2 root dir>/include -DLIBSSH2_LIBRARIES=<libssh2 root dir>/build/src/Release/libssh2.lib ..
Run Code Online (Sandbox Code Playgroud)在构建目录中打开生成的libgit2.sln
可选:修补src/transports/ssh.c以支持SSH RSA密钥身份验证,在函数request_creds中(第444行):
if (!t->owner->cred_acquire_cb) {
no_callback = 1;
} else {
Run Code Online (Sandbox Code Playgroud)
有:
if (!t->owner->cred_acquire_cb) {
if (user) {
const char *val = NULL;
val = getenv("USERPROFILE");
if (val)
{
char *szprivfilename = malloc(strlen(val) + 128);
char *szpubfilename = malloc(strlen(val) + 128);
strcpy(szprivfilename, val);
strcat(szprivfilename, "/.ssh/id_rsa");
strcpy(szpubfilename, val);
strcat(szpubfilename, "/.ssh/id_rsa.pub");
git_cred_ssh_key_new(&cred, user, szpubfilename, szprivfilename, "");
free(szprivfilename);
free(szpubfilename);
}
if (!cred) {
giterr_set(GITERR_SSH, "git_cred_ssh_key_new failed to initialize SSH credentials");
return -1;
}
}
else
{
no_callback = 1;
}
} else {
Run Code Online (Sandbox Code Playgroud)
注意:这个补丁是从randomswdev帖子中的评论中抓取的,似乎在我的有限测试中工作正常.
| 归档时间: |
|
| 查看次数: |
28327 次 |
| 最近记录: |