Débutant en GIT

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

Débutant en GIT

Message par Dominique »

Je vines de faire :

refuges@refuges:~$ cd www.refuges.info
refuges@refuges:~/www.refuges.info$ git pull origin dev

Bien updaté www mais joe n'a pas l'air content:
Et j'ai obtenu:

remote: Counting objects: 28, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 6 (delta 5), reused 6 (delta 5)
Unpacking objects: 100% (6/6), done.
From git://github.com/sletuffe/www.refuges.info
* branch dev -> FETCH_HEAD
Traitement de '/etc/joe/editorrc'...Traitement de '/etc/joe/ftyperc'...Terminé
Terminé
I .git/MERGE_MSG Row 1 Col 1 4:22 Ctrl-K H for help
Merge branch 'dev' of git://github.com/sletuffe/www.refuges.info

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.


** Joe's Own Editor v3.7 ** (utf-8) ** Copyright © 2008 **
I .git/MERGE_MSG Row 1 Col 1 4:23 Ctrl-K H for help
Merge branch 'dev' of git://github.com/sletuffe/www.refuges.info

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
I .git/MERGE_MSG Row 1 Col 1 4:24 Ctrl-K H for help
Merge branch 'dev' of git://github.com/sletuffe/www.refuges.info

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

A vue de nez, tout à l'air bon là non ?

Coté www et dev, j'ai fais un petit script qui se lance comme ça :

Code : Tout sélectionner

./syncho-github.sh 
(il est dans le dossier d'arrivé par défaut du compte "refuges")

et qui va mettre à jour les dossiers www.refuges.info et dev.refuges.info respectivement en fonction de la branche "master" et "dev"

Mais d'habitude, si je veux fusionner dev dans master (genre juste avant une mise en production) je reste dans mon dossier et je fais exactement ce que tu as fais, mais en basculant d'une branche à l'autre, genre :
$ git checkout master (pour se mettre sur la branche de prod)
$ git pull origin dev (pile poil ce que tu as fais, qui fusionne dev dans master)
$ git push (je mets à jour la branche master)

Mais si je lis bien, ce que tu as fais devrais revenir au même
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

OK
J'avais fait un premier git pull origin dev il y a 2 ou 3 jours qui s'était bien passé, mais celui d'aujourd'hui a donné ces messages d'erreur.
Effectivement, ça a l'air bon, c'était juste au cas où

La prochaine fois, j'utiliserai le script
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Après, c'est peut-être ma faute, hier, j'ai ajouté ça :
https://github.com/sletuffe/www.refuges ... 30ff9bf7af

et comme je ne savais pas où tu en étais de la version de dév, je n'ai pas voulu la mettre en ligne "au cas où", j'ai donc bidouillé un truc pour n'appliquer que ce seul commit.
P'tet que c'est ça qui a forcé le "merge"
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Bof:
J'ai mis des modifs sur DEV
utilisé "./syncho-github.sh" qui m'a dit: "Already up-to-date".
Puis "git pull origin dev" m'a sorti les mêmes insanités, mais sans dire qu'il descendait les fichiers
Par contre, mes modifs sont bien en WWW :D c'est l'essentiel

ATTENTION: J'ai relivré l'ensemble de mon package OL, avec des modifs de plusieurs mois. En principe pas de rupture d'interface et j'ai bien tout retesté, mais être vigilent sur les détails des fonctions cartes dans les jours à venir
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit :Bof:
J'ai mis des modifs sur DEV
utilisé "./syncho-github.sh" qui m'a dit: "Already up-to-date".
ha ?

Quand tu dis avoir mis des modifs sur dev, tu as bien fais le push de tes commits locaux ?
sinon, ce script est vraiment simple
il fait :
cd dev.refuges.info
git pull
cd ../www.refuges.info
git pull

donc s'il y a quelque chose de nouveau soit dans dev, soit dans master, il le récupère.
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :Quand tu dis avoir mis des modifs sur dev, tu as bien fais le push de tes commits locaux ?
Yes (sous Windows / Tortoise, qui est un click d'icône)

Sinon, je fais:

cd /dev.refuges.info
git pull

cd /www.refuges.info
git pull origin dev

La première fois, ça avait marché nickel.

Sinon, le GITHUB est sarbi:
- sur la page wri, il mentionne 4 branches
- sur la page des branches, il n'en donne plus que 3, dont DEV est la base et les 2 vielles YIP & avant-pdo
Donc, je ne vois pas à quel merge le pull sur www fait allusion.
Ou y a t'il un trunk caché ?
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : Sinon, le GITHUB est sarbi:
- sur la page wri, il mentionne 4 branches
- sur la page des branches, il n'en donne plus que 3, dont DEV est la base et les 2 vielles YIP & avant-pdo
J'en vois bien 4 : dev, master, avant-pdo et yip-tinyows
Dominique a écrit : Donc, je ne vois pas à quel merge le pull sur www fait allusion.
Ou y a t'il un trunk caché ?
il y a un fichier de config qui peut éventuellement désigner la branche distante comme "remote" de la locale. Si cela est défini, c'est celle là qui sera utilisé par un "git pull" et celle là vers laquelle un push sera dirigée (je l'ai fais au départ)
Actuellement on a pour www :

Code : Tout sélectionner

[remote "origin"]
        url = git://github.com/sletuffe/www.refuges.info.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Grosse galère pour faire mon git pull origin dev aujourd'hui: Il réclame un merge
C'est vrai que mes dernièrs commit dans dev ne sont pas visibles dans le master
git pull origin dev ne doit pas suffire. Il doit falloir faire un commit sur le master après

Fait un merge trunc-> master à partir de mon PC local: à mouliné un bon moment, dit qu'il updatait bien les fichiers concernés par mes derniers commit dev mais toujours la même erreur au git pull origin dev

Fait sur www :
git commit -a
git push
Toujours un message d'erreur "merge requis"

Mais ça a avancé un peu:
Refait un git pull origin dev à ce moment: il me passe sur VI et me demande un message de merge... puis fait le merge et charge bien mes derniers commit dans www
Par contre, ils n'apparaissent toujours pas dans le github master

A suivre
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit :Grosse galère pour faire mon git pull origin dev aujourd'hui: Il réclame un merge
est-ce que ça serait pas par exemple car tu as fais des modifications mais sans avoir fait de commit ? ou de push ?
C'est vrai que mes dernièrs commit dans dev ne sont pas visibles dans le master
git pull origin dev ne doit pas suffire. Il doit falloir faire un commit sur le master après
ça commence à dater la dernière fois que je l'ai fais, mais si je me souviens bien, il faut faire un truc du genre :
0) ma branche active doit être la branche dev (git checkout dev)
1) je fais mes modifs
2) je commits en local sur ma branche dev
3) je push vers la branche dev sur github + tests et reviens à 1) ou, si passage en prod :

4) je checkout la branche "master" "git checkout master"
5) je merge la branche dev dans master "git pull origin dev"
6) je met à jour sur le dépot github par "git push"

A cet instant, la version sur github de master est au même niveau que celle de dev (on peut le vérifier graphiquement ici : https://github.com/sletuffe/www.refuges.info/network ou par un "git log") mais ni sur dev.refuges.info ni sur www.refuges.info n'est mise en place la "dernière" version du dépot

Il reste à faire :

7) aller dans le dossier de www.refuges.info et faire "git pull"
8) aller dans le dossier dev.refuges.info et faire "git pull"
7+8 sont automatisable par le script syncho-github.sh


Qui a dit simple ?
Fait un merge trunc-> master à partir de mon PC local: à mouliné un bon moment, dit qu'il updatait bien les fichiers concernés par mes derniers commit dev mais toujours la même erreur au git pull origin dev
A part cette histoire de "trunc" (trunk ?) qui n'existe pas dans ma config, ça ressemble fort à ce que je fais
Par contre, ils n'apparaissent toujours pas dans le github master
A suivre
Ouais, y'a toujours un caca dans le pâté :
https://github.com/sletuffe/www.refuges.info/network

Les deux branches devraient être fusionnées si tu veux en effet que dev et master soit au même niveau

Et ce commit :
https://github.com/sletuffe/www.refuges ... ee9ce7c8ef

"fusion avec DEV" me semble être une magouille qui n'a pas de raison d'être, car cela perd l'info de quels commits il regroupe

Je ne fais rien pour l'instant, le temps que tu me donne ton avis, mais ce que je tenterais c'est d'annuler
https://github.com/sletuffe/www.refuges ... ee9ce7c8ef
sur master
et de "rejouer" ceux de dev un par un
soit, en gros, faire ça :
Sur ma ou ta branche locale :

Code : Tout sélectionner

git checkout master
git reset --hard e8af1b1d2f8143024e058e8e4220e030ff9bf7af   (retour à avant la magouille)
git pull origin dev (application de tous les commits existant sur dev non encore appliqués)
git push (synchro de dev et master sur github)
aller dans www.refuges.info
faire :

Code : Tout sélectionner

(connexion ssh)
cd www.refuges.info
git reset --hard e8af1b1d2f8143024e058e8e4220e030ff9bf7af   (retour à avant la magouille)
git pull
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :4) je checkout la branche "master" "git checkout master"
Voilà: c'est ça qui devait manquer
sly a écrit :Et ce commit :
https://github.com/sletuffe/www.refuges ... ee9ce7c8ef

"fusion avec DEV" me semble être une magouille qui n'a pas de raison d'être, car cela perd l'info de quels commits il regroupe

Je ne fais rien pour l'instant, le temps que tu me donne ton avis, mais ce que je tenterais c'est d'annuler
https://github.com/sletuffe/www.refuges ... ee9ce7c8ef
sur master
Tout à fait d'accord
sly a écrit :Sur ma ou ta branche locale :

Code : Tout sélectionner

git checkout master
git reset --hard e8af1b1d2f8143024e058e8e4220e030ff9bf7af   (retour à avant la magouille)
git pull origin dev (application de tous les commits existant sur dev non encore appliqués)
git push (synchro de dev et master sur github)
Hum. J'ai un gros doute là: le commit foireux, je l'ai fait sur master, pas sur dev. Donc il faudrait faire le --hard sur www ?
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit :Hum. J'ai un gros doute là: le commit foireux, je l'ai fait sur master, pas sur dev. Donc il faudrait faire le --hard sur www ?
Il faut faire le --hard sur la branche master (donc celle en locale de n'importe qui) puis faire un push (peut être avec --force) pour écraser, sur github la version master avec celle sans le commit en question.

Et ensuite, il faudra (je crois) se connecter sur le dossier www de prod et aussi faire le reset --hard avant de refaire un pull (peut-être que ça marche sans, mais je suppose plutôt qu'il va brailler en disant : houlla je vais écraser un truc)
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Voilà. C'est tout propre :D
Il a bien fallu un git push --force
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Est ce qu'il ne serait pas plus simple, tant qu'on est sur de la maintenance légère, de n'avoir qu'un master ?
On débranchera quand on refera des grosses manips
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

pas de problème de mon coté.

Juste pour bien comprendre : on push sur la branche master directement nos modifs c'est ça que tu as en tête ?

Et on ne se sert de la branche dev que si vraiment on doit lancer un nouveau chantier qui risque fort de créer des bugs importants ?