[GIT]Erreur merge

Problèmes, bugs et difficultés rencontrés sur le site.
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

[GIT]Erreur merge

Message par Dominique »

Depuis hier soir, j'ai ce genre d'erreurs (bien que les fichiers soient bien uploadés)

Error: Commit failed (details follow):
Error: A MERGE response for
Error: '/sletuffe/www.refuges.info.git/trunk/ol2.12.4/bui ... d.log.html' is not a
Error: child of the destination ('/sletuffe/www.refuges.info.git/branches/dev')

Je précise que je fais un clone + modifs dans les 2 minutes + commit
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

et c'est quelle commande qui créé l'erreur ?

Moi je n'ai pas vu ça, mais en même temps je ne touche pas la zone OL, donc je ne sais pas trop...
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Sinon, j'ai l'impression qu'il doit manquer un truc que je n'ai pas bien expliqué, mais le "git clone" j'en ai fais un seul au tout début il y a 1 mois et demi et depuis je n'ai qu'un seul et unique dossier (www.refuges.info) dans lequel je fais tous mes pull mes push et mes commit
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

La commande, je ne sais pas (je clique sur l'icône Toirtoise "Commit" mais je ne sais pas quelle commande GIT elle émule)

J'ai cette erreur à chaque commit, avec l'un des noms des fichiers remontés (donc jamais le même)
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :Sinon, j'ai l'impression qu'il doit manquer un truc que je n'ai pas bien expliqué, mais le "git clone" j'en ai fais un seul au tout début il y a 1 mois et demi et depuis je n'ai qu'un seul et unique dossier (www.refuges.info) dans lequel je fais tous mes pull mes push et mes commit
En fait, je n'ai pas de répertoire stable sur mon PC
Quand je veux faire des modifs, je crée un répertoire, je clone, je travaille, je commit et je delete le local
Avec Tortoise, tout se ramène à 1 click, alors on prend vite l'habitude
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

N'utilisant pas moi même la tortue, je ne sais pas trop ce qu'il a fait pour créer ça, et l'erreur rapport ne ressemble pas à une erreur donné par l'outil "git"
(le mot error commence par une minuscule)

Je suppose donc qu'il a son propre client git, et je ne sais pas ce qu'il veut dire
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : Quand je veux faire des modifs, je crée un répertoire, je clone, je travaille, je commit et je delete le local
Avec Tortoise, tout se ramène à 1 click, alors on prend vite l'habitude
Tant que ça te va, c'est ce qui compte ;-)

Mais le clone oblige à chaque fois à tout re-télécharger et j'imagine que ça n'est pas instantané...
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Si tu merge dev & master, pourrais tu recréer une nouvelle branche dev ?
J'ai en permanence ce type d'erreur (avec *** = le dernier fichier uploadé):

Error: Commit failed (details follow):
Error: A MERGE response for
Error: '/sletuffe/www.refuges.info.git/trunk/***' is not a
Error: child of the destination ('/sletuffe/www.refuges.info.git/branches/dev')

L'upload des modifs semble bien pris par le GITHUB, mais ça me laisse le répertoire avec un état de "updated" ne reflètant pas la réalité:
je suis obligé de redescendre tout le package à chaque commit

Or j'ai depuis reformaté mon PC (pour d'autres raisons) et tout réinstallé. Il y a donc quelque chose qui ne va pas dans la branche GIT (et qui n'est peut être visible que de ma tortue)

C'est zarbi de chez tout con, mais peut être qu'en recréant une branche ?
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit :Si tu merge dev & master, pourrais tu recréer une nouvelle branche dev ?
J'ai peur de ne pas bien voir l'avantage de la manœuvre, mais voilà, j'ai supprimé "dev" sur github et je l'ai re-créée.
A l'instant où j'écris ces ligne, dev et master sont synchro et au même état.
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

:cry: En effet, c'est pareil. Je ne comprends pas. ça marchait avant
Merci quand même !

Command: Commit
Modified: C:\DC\web\wri\README.md
Sending content: C:\DC\web\wri\README.md
Error: Commit failed (details follow):
Error: A MERGE response for '/sletuffe/www.refuges.info.git/trunk/README.md' is not a
Error: child of the destination ('/sletuffe/www.refuges.info.git/branches/dev')
Completed!:

En fait, le commit est un push + merge. Un push devrait suffire, mais mon icône tortuesque ne me propose que ça
Ce qui est bizarre, c'est qu'il essaye de merger avec le trunk (et ça, c'est dangereux)
Il devrait merger ma version locale avec le dev
Tu es sur qu'il n'y a pas un loup ?
ça me fait le coup sur une partition qui n'a rien à voir avec la première. Donc ce n'est pas un paramètre local

Piste ?
Ma tortue ne voit pas la branche dev
ça confirme: /sletuffe/www.refuges.info.git/trunk is not a child of the destination /sletuffe/www.refuges.info.git/branches/dev'
Image
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : En fait, le commit est un push + merge. Un push devrait suffire, mais mon icône tortuesque ne me propose que ça
En terminologie git (en tout cas du client en ligne de commande) un commit est très différent de push et merge.

Un "commit" consiste à enregistrer un groupe de modification en local dans le dossier .git dans un tout cohérent avec un message de commit et une date et un sha1 mais sans aucun rapport avec une base distante, uniquement celle qui sert à enregistrer localement le versionning.

Ensuite, le push, c'est de transmettre des commit pré-validés localement vers une autre dépot git.
pull c'est l'inverse (et c'est égale à fetch=télécharger les en-tête + merge=appliquer les changements dans la base locale et les fichiers du dossier)
Ce qui est bizarre, c'est qu'il essaye de merger avec le trunk (et ça, c'est dangereux)
C'est même doublement bizarre car le mot "trunk" n'apparait pas avec git et le concept même de branche sans nom me semble inexistant (http://en.wikipedia.org/wiki/Trunk_%28software%29), alors qu'on le voit avec d'autre logiciel comme svn

On sent donc qu'il y a un truc avec ton tortoise qui créé un "trunk" c'est à dire une branche sans nom perdue alors qu'elle devrait s'appeler dev et être intégrée au même niveau que les autres...
Il devrait merger ma version locale avec le dev
Il n'y a pas de "il devrait" c'est à toi de lui dire à un moment que ta version locale de travail s'appelle xx et qu'elle se synchronise avec la version distante "dev"
Tu es sur qu'il n'y a pas un loup ?
Je peux juste te dire que "chez moi ça marche". Par acquis de conscience, je viens de tenter, sur une machine à ma maison qui ne sait rien de refuges.info la séquence suivante :

Code : Tout sélectionner

git clone git@github.com:sletuffe/www.refuges.info.git
cd www.refuges.info/
<edition fichier README>
commit -a &#40;ajout texte de commit&#41;
git push
et ça me répond :

Code : Tout sélectionner

$ git push
Counting objects&#58; 5, done.
Compressing objects&#58; 100% &#40;3/3&#41;, done.
Writing objects&#58; 100% &#40;3/3&#41;, 322 bytes, done.
Total 3 &#40;delta 2&#41;, reused 0 &#40;delta 0&#41;
To git@github.com&#58;sletuffe/www.refuges.info.git
   30f619e..c37857f  dev -> dev
En clair, aucun problèmes.
Piste ?
Ma tortue ne voit pas la branche dev
ça confirme: /sletuffe/www.refuges.info.git/trunk is not a child of the destination /sletuffe/www.refuges.info.git/branches/dev'
Ouais, ça sent la bonne piste, mais pourquoi diable il appel la branche "dev" "trunk", c'est ça qui ait étonnant...

Une deuxième piste : dev c'est la branch par défaut, c'est dire celle qui sera active juste après le git clone (sauf si on précise -b)
Or, avant, c'état la branche master (sur laquelle on ne travaillait pas ?) qui était la par défaut.

Ce que tu peux tenter a partir de github c'est d'utiliser le bouton "fork" et de faire un fork de www.refuges.info, de tenter par exemple de supprimer toutes les branches sauf une et de dire à ton totoise de bosser sur cette version pour voir si ça change quelque chose
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :Une deuxième piste : dev c'est la branch par défaut, c'est dire celle qui sera active juste après le git clone (sauf si on précise -b)
Or, avant, c'état la branche master (sur laquelle on ne travaillait pas ?) qui était la par défaut.
Ouais, je crois que c'est ça: Tortoise se sort très mal d'une branche par défaut qui ne soit pas la branche initiale
Laisse tomber. Je suis passé sous "GitHub for Windows". Moins sexy, mais ça marche du tonnerre !