Donc, avec Visual Studio 2015 qui vient de sortir, il existe un lien beaucoup plus intégré avec git.
Cependant, la fonctionnalité qui semble faire défaut est git over SSH. Il existe différents plugins pour 2013 qui permettent cette fonctionnalité (par exemple, GitExtensions), mais je ne peux en voir aucun avec 2015.
Le plugin GitHub ne semble fonctionner qu'avec GitHub et non avec des dépôts génériques git.
Je ne cherche pas à savoir quel est le meilleur. Il suffit de quelques exemples ou d'articles pour voir si quelqu'un a réussi à faire fonctionner Git + SSH sous Visual Studio 2015.
Non. Visual Studio 2015 (RTM) ne prend pas en charge SSH pour les télécommandes Git. Cela est vrai même avec les référentiels GitHub utilisant le plug-in GitHub (qui, à l'heure actuelle, utilise le même mécanisme de connexion pour les référentiels Git que tout autre référentiel Git utilisant Team Explorer.)
C’est regrettable, mais il n’existe pas encore de raisons qui expliquent pourquoi cela n’est pas encore disponible: la réponse courte est qu’à notre avis, fournir SSH médiocre ou insécurité, est pire que ne pas fournir SSH du tout nous aimerions avoir la certitude que toute implémentation SSH que nous fournissons est de haute qualité.
Cela dit, nous y travaillons et faisons des progrès. Microsoft va commencer à inclure OpenSSH dans Windows (et sponsor de ce très beau projet). Cependant, je ne peux pas prédire quand un support pourrait être disponible.
L’extension GitHub est open source. Il est donc possible qu’elle puisse utiliser un mécanisme de connexion différent et commencer à prendre en charge SSH avant la prise en charge principale de Git dans Team Explorer.
Voici quelques instructions de base pour Visual Studio Update 2 et Update 3. Voir le lien dans l'article du BPas pour connaître les éléments de base, par exemple. tu auras besoin:
Construire libssh2
Faites ce qui suit:
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 ..
Ouvrez le libssh2.sln résultant dans le répertoire de construction
Construire libgit2
Faites ce qui suit:
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 ..
Ouvrez le libgit2.sln résultant dans le répertoire de construction
Facultatif: corrigez src/transports/ssh.c pour prendre en charge l'authentification de clé SSH RSA, dans la fonction request_creds (autour de la ligne 444):
if (!t->owner->cred_acquire_cb) {
no_callback = 1;
} else {
avec:
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 {
Remarque: ce correctif a été récupéré dans l'un des commentaires du message de randomswdev, semble bien fonctionner après mes tests limités.
Conforme aux BPas: pour Visual Studio 2015, il est possible de créer une version activée pour SSH. De plus, j'ai un correctif pour le support d'authentification de clé publique/privée:
Il est possible d'activer le support SSH en recompilant la bibliothèque GIT distribuée avec Visual Studio 2015. L'article suivant décrit les étapes requises:
http://randomswdev.blogspot.it/2015/07/adding-ssh-support-to-visual-studio.html
Avant, il était absurde d'ajouter votre git à Visual Studio à l'aide de git bash . Même si l'ajout fonctionnait, créer des commits était également une option, mais leur synchronisation nécessiterait toujours le git bash ..__ un peu inutile.