Au travail, nous cherchons à améliorer notre façon de travailler actuelle et nous pensons que Git pourrait peut-être résoudre notre problème.Comment migrer vers Git à partir de cette configuration (svn)
Notre repo actuel est hébergé dans SVN et ressemble à ceci:
MAIN ---trunk
---bugfix
CUSTOMER1
---trunk
---bugfix
CUSTOMER2
---trunk
---bugfix
Maintenant vient ici la blague :) Customer1 et 2 sont basiquement basés sur les principaux, mais le projet principal personnalisations nécessaires et ils ont décidé de diviser les en deux branches et retravailler plusieurs codes partagés de MAIN.
Il est arrivé au point que vous ne pouvez pas fusionner MAIN en client1 ou 2. Parce que beaucoup de code a été écrasé. Lorsque nous appliquons une nouvelle fonctionnalité ou un nouveau correctif, nous devons éditer manuellement le code de MAIN, customer1, customer2 et EVEN dans certains cas, les branches de correction de bug seperatly. Nous passons 30 minutes à coder un correctif et 30 minutes à le coller dans les autres branches. Oui, nous sommes conscients qu'il s'agit d'une mauvaise façon de travailler, mais nous voulons changer cela. J'ai quelques connaissances git décent et je sais que plusieurs autres projets fonctionnent comme ça, regardez @ chiliproject par exemple. Basiquement, nous aimerions une telle configuration peut-être:
MAIN --- develop
--- feature
--- master
--- bugfix
\
customer1
--- ...
\
customer2
Peut-être 3 dépôts au total, où le client 1 et 2 sont basés hors MAIN. Lorsque nous appliquons un nouveau code à MAIN, nous pouvons simplement l'insérer dans customer1 et customer2. Quelqu'un pourrait-il faire une suggestion sur la façon dont nous pouvons résoudre ce problème?
J'ai également essayé d'ajouter un repo à distance à client1, la télécommande MAIN. quand je récupère la dernière révision, j'obtiens tous les diffs de MAIN. Évidemment, puisque le code est assez différent pour le moment, je ne veux pas fusionner cela. Cependant je voudrais tirer dans la future revision1, qui contient seulement un patch à hello.php par exemple.
Merci
Pourquoi voulez-vous que customer1 et customer2 soient des repos séparés plutôt que des branches sur le principal repo? Vous pouvez facilement utiliser des branches de branches dans git. –
Oui, vous avez raison. C'est vraiment une exigence que je pensais juste que ce serait une bonne idée;) – Sam
Pouvez-vous fournir la disposition réelle du répertoire du repo SVN? SVN ne fait que copier des opérations pour les branches, donc c'est très flexible, mais git traite les branchements et les copies différemment, donc vous devez lui dire quelles sont vraiment les branches. –