J'utilise une installation derrière le pare-feu de Gitorious.
Je peux aller dans l'application Web et créer une demande de tirage à partir d'un clone et cibler le référentiel maître à partir duquel il a été cloné.
J'aimerais pouvoir le faire sur la ligne de commande. Plus précisément, j'aimerais pouvoir ouvrir des demandes de fusion à partir de la ligne de commande d'une branche à une autre (plutôt que du clone au dépôt de semences).
Comme je n'utilise pas Github, je ne peux pas utiliser outils ou bibliothèques spécifiques à Github . Est-ce possible?
Il n'y a pas de "demande de fusion" dans git lui-même. Donc, si cela était possible, cela nécessiterait des outils spécifiques à Gitorious. Ce n'est pas possible en pur git.
La réponse donnée par svick n'est pas correcte. Il est possible.
Il y a git request-pull
qui fait partie de la suite Git. À l'aide de cet outil de ligne de commande, vous pouvez créer une demande d'extraction qui pourrait être envoyée par e-mail.
Exemple:
votre Origin
contient une branche master
. Maintenant, vous créez une branche locale de correction de bogue fix
, implémentez le correctif de bogue et poussez cette branche fix
vers Origin
:
git Push Origin fix:fix
Ensuite, vous voulez que quelqu'un fusionne les modifications apportées dans la branche fix
dans master
. Créez la demande d'extraction avec
git request-pull master Origin
Cela créera un texte formaté comme suit:
The following changes since commit <SHA of master>:
<commit message of SHA of mster>
are available in the git repository at:
<repo location> fix
<User Name> (<Number of Commits>):
<messages of the commits>
...
<changed files>
...
<file statistics>
Si la demande de fusion doit aller à quelqu'un qui ne peut pas accéder à votre référentiel où vous avez poussé vos modifications, il y a toujours la possibilité de le faire avec git format-patch
.
Après avoir poussé votre branche fix
vers Origin
(vous n'avez même pas besoin de le faire), tout en étant sur la branche fix
créez le patch en utilisant
git format-patch master..
Cela créera un fichier de correctif pour chaque commit que vous avez fait dans fix
depuis la dérivation master
. Vous pouvez regrouper les fichiers .patch
Générés avec
tar czf fix.tgz *.patch
puis envoyer à quelqu'un, par exemple via E-Mail pour vérifier et postuler.
Par souci d'exhaustivité: l'application des correctifs pourrait se faire avec git am
.
Vous pouvez utiliser cet outil de ligne de commande: https://github.com/brauliobo/gitorious-merge-request
./gitorious-merge-request -e [email protected] -s 'test' -r '~brauliobo/noosfero/brauliobos-noosfero' -a easysafeinstall -b master -t 'noosfero/noosfero'
Gitlab ajoute cette fonctionnalité à partir de la v11.10. Après avoir validé vos dernières modifications, au lieu de Push
, utilisez simplement:
git Push -o merge_request.create
pour créer une demande de fusion. Plus de détails dans doc .