C'est une solution en effet, mais il va falloir penser à transférer tout ce
qu'il y a actuellement sur le Trac (tickets, …).
Là non plus ça va pas se faire en deux clics.
De toute façon j'insiste sur le fait d'avoir une solution complète sur un
de nos serveurs (dépôt + bugtracker + …), avec un ou plusieurs miroirs
ailleurs (bitbucket, github, …)
Le 3 mai 2015 16:32, Mathieu Recchia <mathieu.recchia(a)gmail.com> a écrit :
Bonjour,
Juste une remarque par rapport a Bitbucket et la possibilité de faire des
dépôts privés.
Pourquoi ne pas utiliser GitLab dans ce cas :
https://about.gitlab.com/ ?
En effet, dans ce cas on aurait pas à se préoccuper de la survie de tel ou
tel prestataire, des possibilités offertes par les un ou les autres.
Z'en pensez quoi ?
Mathieu
Le 03/05/2015 15:21, Kozlika a écrit :
> Hello,
>
> Un grand merci pour le taf, Julien, et pour le mail très complet.
>
> Pour ce que je peux en dire, quelques éléments qui comptent à mes yeux :
> - rester autonomes par rapport aux plate-formes / conserver une version
> sur
> nos serveurs
> - n'avoir qu'un lieu pour les pull-request
>
> Sinon je suis ok pour passer à git, avec une préférence pour bitbucket,
> qui
> permet d'avoir des dépôts privés.
>
>
>
>
> Le 3 mai 2015 13:25, Nicolas <nikrou77(a)gmail.com> a écrit :
>
> Merci Julien.
>> Quelques remarques :
>> - si le problème est de conserver les "bons" hash pour ceux ayant
forkés
>> par rapport à ce que tu as fait en 2013, je pense qu'on peut s'en
passer.
>> Il y a 7 forks et on les connait tous ! :-)
>> - j'utilise quotidiennement git-remote-hg mais je ne sais pas si les hash
>> sont bien conservés et s'il fonctionne de manière itérative. En revanche
>> je
>> l'utilise pour commiter sur bitbucket/dotclear sans aucun soucis.
>>
>> Nicolas
>>
>> Le 3 mai 2015 13:11, Julien Wajsberg <felash(a)gmail.com> a écrit :
>>
>> Salut !
>>>
>>> Comme promis à de nombreuses reprises, j'ai repris la conversion de
>>> mercurial vers git.
>>>
>>> j'avais déjà fait un premier essai en 2013 qui se trouve là:
>>>
https://github.com/dotclear/dotclear
>>>
>>> Voici quels étaient mes buts:
>>>
>>> * ne pas péter le dépôt git existant qui a quelques forks.
>>> * permettre les imports itératifs (pour mettre à jour facilement).
>>> * que ce soit répétable par n'importe qui.
>>> * qu'on retrouve toutes les branches.
>>>
>>>
>>> Voici pour commencer quelques informations importantes sur git pour bien
>>> comprendre la suite. Je simplifie un peu donc si certains lecteurs sont
>>> bien versés dans git, ne m'en veuillez pas.
>>>
>>> * format des auteurs: Mercurial n'a pas de contrainte même s'il
>>>
>> recommande
>>
>>> le format "Auteur <email>". En revanche git force ce format.
>>>
>>> * référence d'un commit (ça va être plus long)
>>> Dans git, un commit est identifié de manière unique par son "commit
>>>
>> hash",
>>
>>> une suite de chiffres hexadécimaux. Ce qu'il faut savoir, c'est que
ce
>>> "commit hash" est réellement un "hash" issu de
différentes informations,
>>> notamment: son ou ses parent(s) (le(s) commit(s) sur lequel ce nouveau
>>> commit est basé), son contenu (y compris l'auteur donc).
>>>
>>> En pratique, pour nous, ça signifie que si l'une de ces informations
>>> change, le hash change... ainsi que tous ses "enfants", puisque,
>>> rappelez-vous, leurs "hashes" respectifs sont basés sur le
"hash" de
>>> leur
>>> parent. Bref.
>>>
>>> Quelle est l'implication, me dites-vous ? Simple: si d'autres
personnes
>>>
>> ont
>>
>>> basé des changements sur un commit hash qui change... les changements
>>> doivent être "portés" vers le nouveau. Et si on ne connait pas si
bien
>>>
>> que
>>
>>> ça git, c'est un peu pénible pour trouver les bonnes commandes
>>> (notamment
>>> les bons hashes de base, etc, je rentre pas dans les détails).
>>>
>>> * les merges: c'est tout simplement un commit avec 2 parents. (papa ou
>>> maman, on s'en fout).
>>>
>>>
>>> Voici les différents moyens pour convertir de hg vers git:
>>>
>>> * le plus simple: github permet de convertir depuis un dépôt mercurial.
>>> J'ai vérifié: ça marche bien depuis le dépôt sur bitbucket. En revanche
>>>
>> je
>>
>>> ne crois pas que ce soit répétable.
>>> Par ailleurs le dépôt obtenu a des différences par rapport au dépôt
>>> existant (la première différence est un commit de "Frank" converti
en
>>> "Frank <Frank@localhost>" par github et "Frank
<devnull@localhost>" par
>>> mon
>>> outil précédent. Et donc... et oui, des hashes différents à partir de ce
>>> commit.
>>>
>>> * fast-export:
https://github.com/frej/fast-export/
>>> C'est de loin le plus rapide. Il existe aussi des outils un peu plus
>>> simples d'utilisation qui l'utilisent (je crois que c'est Kevin
qui en
>>> avait partagé un récemment). Je suis à peu près sûr que c'est celui que
>>> j'avais utilisé en 2013.
>>>
>>> Guide sommaire d'utilisation:
>>>
>>> hg clone
https://hg.dotclear.org/dotclear dotclear-hg
>>> mkdir dotclear-git && cd gotclear-git && git init
>>> hg-fast-export.sh -r ../dotclear-hg --force
>>>
>>> Le problème est qu'en faisant cette manip j'obtiens encore des
hashes
>>> différents à partir d'un commit de merge... il semble que l'ancienne
>>> version de fast-export que j'avais utilisée n'avait pas utilisé le
même
>>> ordre pour les parents, et que ça suffise pour changer les hashes. À
>>>
>> noter
>>
>>> que l'ordre utilisé par la version courante de l'outil ressemble plus
à
>>>
>> ce
>>
>>> qu'on ferait "à la main", donc a ma préférence.
>>>
>>> Il utilise des fichiers de mapping qu'il ajoute dans le répertoire .git
>>>
>> (et
>>
>>> qui ne sont donc pas commités... et que j'ai donc perdus depuis mon
>>> essai
>>> de 2013 ;) ).
>>>
>>> * hg-git:
http://hg-git.github.io/
>>> Assez lent, et je n'ai pas réussi à récupérer toutes les branches. Mais
>>>
>> je
>>
>>> n'ai pas insisté énormément encore.
>>> Il consiste à "pusher" et "fetcher" directement dans git
depuis un dépôt
>>> mercurial. Ça semble marcher tant localement que à distance. Et semble
>>> prévu pour fonctionner de manière itérative.
>>>
>>> * git-remote-hg:
https://github.com/felipec/git-remote-hg
>>> Non encore essayé. C'est le pendant du précédent: il permet de
"pusher"
>>>
>> et
>>
>>> "fetcher" directement dans hg depuis git. Il a un mode de
compatibilité
>>> avec l'outil précédent également. Il est prévu pour fonctionner de
>>>
>> manière
>>
>>> itérative.
>>> Je crois (non vérifié) qu'il fonctionne avec un dépôt local caché (si le
>>> dépôt spécifié est distant).
>>>
>>> * Outils de Mozilla:
>>>
https://wiki.mozilla.org/ReleaseEngineering/VCSSync/HowTo
>>> Assez complexe car historiquement Mozilla a plusieurs dépôts distants
>>>
>> pour
>>
>>> ses différentes branches (c'était ainsi que fonctionnaient les anciennes
>>> versions de Mercurial). Et du coup l'outil doit prendre ça en compte
>>>
>> alors
>>
>>> que nous on s'en fout.
>>> Pas encore essayé. Mais il a l'avantage non négligeable d'être
maintenu
>>>
>> et
>>
>>> utilisé en production tous les jours.
>>>
>>>
>>> Voilà en gros où j'en suis. J'ai pas mal poussé l'outil
"fast-export"
>>>
>> déjà,
>>
>>> j'aimerais bien pousser mieux les autres avant de décider de
l'outil,
>>>
>> pour
>>
>>> les raisons de permanence du "hash" dont j'ai parlé plus haut.
>>>
>>>
>>> NOTE: si on décide de tout passer sur git une bonne fois pour toutes, et
>>> abandonner mercurial une bonne fois pour toutes, le problème devient
>>> immensément plus simple.
>>>
>>> On pourrait alors utiliser l'outil de github pour convertir, puis
>>> l'importer sur bitbucket et/ou
https://git.framasoft.org/. Une fois
>>>
>> qu'on
>>
>>> a
>>> du git partout c'est trivial de synchroniser des dépôts ensemble (et
>>> d'ailleurs celui de framasoft a un outil pour le faire automatiquement).
>>> Voir
>>>
>>>
>>>
>>
http://framablog.org/2015/03/13/google-code-ferme-ses-portes-nous-on-les-...
>>
>>> pour le dépôt de framasoft.
>>>
>>> Si on est prêt à le faire, ce serait la solution que je préconiserais
>>> par
>>> simplicité + utiliser le dépôt de framasoft parce qu'on aime bien ce
>>>
>> qu'ils
>>
>>> font, et c'est du libre.
>>>
>>> Avoir une présence sur github me semble nécessaire car c'est là que tout
>>>
>> se
>>
>>> passe aujourd'hui, mais on ne pourrait n'y avoir qu'une présence
en
>>>
>> miroir.
>>
>>> Bon dimanche !
>>> --
>>> Julien
>>> --
>>> Dev mailing list - Dev(a)list.dotclear.org -
>>>
http://ml.dotclear.org/listinfo/dev
>>>
>>> --
>> Dev mailing list - Dev(a)list.dotclear.org -
>>
http://ml.dotclear.org/listinfo/dev
>>
>>
>
>
--
Dev mailing list - Dev(a)list.dotclear.org -
http://ml.dotclear.org/listinfo/dev