2013-03-16 3 views
19

Quelle est la différence entre Refspec et spécificateur de branche (vide par défaut): dans le dessous de la configuration de l'emploi Jenkins:plug-in Git Jenkins et Refspecs

enter image description here

j'ai essayé de régler le Refspec option dans la configuration de l'emploi:

+refs/heads/master:refs/remotes/origin/master 

dans le repo cloné sur mon esclave construire le fichier .git/config ressemble à ceci:

[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[remote "origin"] 
     url = https://user:[email protected]/scm/PROJECT/project.git 
     fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
     remote = origin 
     merge = refs/heads/master 

Il semble que la valeur de n'est pas chercher correct (lire la configuration du travail de jenkins). En outre, il n'a aucun effet sur la consommation de l'espace disque.

+0

Évidemment, la config du référentiel n'est pas affectée. Je ne suis pas sûr que ce soit le comportement attendu ou non, mais il convient de noter qu'il n'est pas strictement nécessaire puisque refspec peut également être inclus dans la commande git fetch. Ainsi, vous devriez essayer de vérifier quelle commande ** vraiment ** est exécutée. – bigge

Répondre

20

Refspec définit des options pour la aller chercher opération (voir here et here), tandis que le spécificateur de branche définit quelle branche contient le code à construit par Jenkins. En d'autres termes: Refspec définit uniquement comment le code est récupéré tandis que spécificateur de branche quelle partie du code va être compilé.

[Correction:] Correction du lien brisé vers refspec

+0

Ok donc si j'ai juste besoin de construire par exemple. ** branche my-feature ** est-il logique de définir refspec sur ** my-feature **? Est-ce que cela économiserait de l'espace au lieu d'aller chercher le dépôt complet/toutes les branches? – u123

+0

Eh bien, en principe, c'est vrai, mais gardez à l'esprit que git fait un très bon travail en gardant les branches légères. C'est-à-dire, git enregistre seulement les différences et donc le coût de récupération de plusieurs branches ne sera significatif que si les branches sont extrêmement différentes les unes des autres – bigge

+0

Il n'a aucun effet sur la consommation de l'espace disque, mais il semble que l'option n'est jamais définie - Voir la publication éditée. – u123