Question

J'installe mon premier projet Git Hudson + (déjà fait beaucoup avec SVN Hudson +). Je me attendais à l'étape de clone à être lent, comme notre dépôt est assez grande, mais où builds après une extraction + fusion est utilisé sont tout aussi longtemps. Les options suivantes sont activées:

  • Fusionner avant la construction
  • Nettoyer après votre commande

Je suis pas faire un "Éliminez espace de travail".

...
Fetching changes from the remote Git repository
Fetching upstream changes from git@github.com:username/ProjectFoo.git
[Foo] $ git fetch -t git@github.com:username/ProjectFoo.git +refs/heads/*:refs/remotes/origin/*

À ce stade, il cale pour un temps très long. Une fois qu'il se termine enfin, il semble progresser comme prévu:

[Foo] $ git ls-tree HEAD
[Foo] $ git rev-parse origin/mybranch
Commencing build of Revision c883d59dd5a506a0b586f679a256f539712bfccc (origin/mybranch)
GitAPI created
Checking out Revision c883d59dd5a506a0b586f679a256f539712bfccc (origin/mybranch)
[Foo] $ git checkout -f c883d59dd5a506a0b586f679a256f539712bfccc
[Foo] $ git tag -a -f -m "Hudson Build #2" hudson-Foo-2
Recording changes in branch origin/mybranch
[Foo] $ git whatchanged --no-abbrev -M --pretty=raw c883d59dd5a506a0b586f679a256f539712bfccc..c883d59dd5a506a0b586f679a256f539712bfccc
Cleaning workspace
[Foo] $ git clean -fdx
...

Quand je lance la même commande fetch de la ligne de commande Bash Git, il fonctionne presque instantanément.

Toute idée de ce que pourrait se passer? Ou conseils pour accélérer les choses? Remarque, le dépôt cloné est 210MB. (A propos de la valeur de l'histoire de code d'une dizaine d'années.)

Était-ce utile?

La solution

J'ai rencontré ce problème aussi bien, et un palliatif. Lorsque Hudson fonctionne comme un service, il manque quelque chose que votre environnement de bureau normal a, ce qui provoque quelque chose à voir avec le réseau d'avoir à re-charge pour chaque processus. msys-1.0.dll tente de charger quelque chose dans netapi32.dll qui l'amène à prendre si longtemps. Donc, je viens de télécharger plink.exe de PuTTY, et mis mon env GIT_SSH à utiliser à la place. Problème permis d'éviter.

Autres conseils

Cela pourrait être une réponse tardive. mais il ne résout le problème de l'extrême-lent lorsque Jenkins / Hudson fonctionne comme un service Windows, sur mon environnement.
Le point clé est de faire git obtenir les clés rsa dans un compte de service Windows! Je l'ai fait fonctionne comme suit:

  1. ouvert Panneau de configuration> Outils d'administration> Services, et trouver "Jenkins".
  2. Faites un clic droit pour ouvrir Propriétés-> Ouvrir une session et assign Jenkins Ouvrir une session en tant qu'utilisateur avec accès administrateur.
  3. redémarrer Jenkins, et "git fetch" va la foudre car il est sur linux.

La solution fournie par ccutrer, ne fonctionne pas pour moi dans le premier procès, parce que plink ne peut pas obtenir rsa clé de reconstitution historique (reconstitution historique est dans une autre session utilisateur!). Lorsque mes pas déployées, soit OpenSSH et plink pourraient bien fonctionner alors.

Pouvez-vous essayer un accès anonyme au lieu d'un authentifiées un pour votre chercher?

$ git config remote.origin.url git://github.com/username/ProjectFoo.git   # read-only
$ git config remote.origin.pushurl git@github.com:username/ProjectFoo.git # authenticated

et voir si le Fetch est encore lent dans le travail Hudson?

Voir pour illustration « en utilisant Github avec msysGit de ».

scroll top