Question

Nous avons 2-3 petites équipes de 2-3 personnes. Nous avons tous git utilisation pour les locaux et svn pour dépôt central et git-svn obtenu la synchronisation. Ceci est fonctionne tout le temps, sauf si nous voulons partager notre code entre l'équipe elle-même.

Nous avons donc essayé git pull, cela crée beaucoup de conflits et il ne détecte pas que nous sommes sur le même arbre. Il va chercher tous les changements (le même que clone puis tirer) Bien sûr, je ne veux pas cloner pension complète. chaque fois que je veux partager.

S'il vous plaît suggérer un meilleur flux.

  1. Nous ne pouvons pas se débarrasser de svn central.
  2. On ne peut pas cloner à chaque fois.
Était-ce utile?

La solution

Désigner un membre de l'équipe comme le « hub git », il / elle se synchronise avec le serveur SVN, d'autres membres de l'équipe d'interagir avec eux, plutôt que le serveur SVN directement. Ce git façon saura que tous les membres de l'équipe sont sur le même arbre.

Autres conseils

SubGit semble être une excellente alternative pour vous.

SubGit est une solution côté serveur, il permet d'accéder au dépôt Subversion Git et vice versa. Cela signifie que vous pouvez travailler avec dépôt Git uniquement, en utilisant le client Git de votre choix.

Vous devez installer SubGit dans votre dépôt Subversion une fois. Après cela SubGit se traduit immédiatement en révision svn git commit sur chaque svn commit et git commit en révision svn sur chaque git push.

SubGit est un logiciel fermé source, mais il est gratuit pour les projets open-source. Pour plus d'informations s'il vous plaît se référer à SubGit Documenation .

Pour ajouter à la réponse de Chris Huang-Leaver, vous avez besoin d'un point central à dcommit / rebasage avec le repo svn.
Cela ne nie pas l'aspect « décentralisé » de Git, il permet simplement tout le monde de travailler avec, comme l'un de leurs dépôts distants, un repo de référence « central » (à savoir une synchronisation avec svn)

Il n'y a pas moyen facile d'éviter la charge de cloner tout en provenance de (potentiellement énorme) repo svn, parce que le résultat repo Git ne peut pas être divisé en sous-modules .
Cela laisse au moins une « solution », ce qui impliquerait:

  • créer différents Git à côté de la principale (qui synchronisation avec SVN)
  • l'exportation des correctifs à partir du repo principal
  • pour appliquer ces patches à chaque Git repo représentant un projet dans le principal repo Git.

Il doit évidemment être automatisé, mais une équipe se concentrerait sur un de ces prises en pension git comme son repo, et la personne en charge de la synchronisation SVN « central » mettraient à jour les prises en pension Git plus petites avec patches provenant de la base (et caché) repo Git <=> SVN.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top