2010-01-28 4 views
11

Au travail, nous conservons tous les projets des clients dans des dépôts subversion et ne changerons pas cela dans un avenir prévisible. Beaucoup de nos projets utilisent les mêmes plugins/modules et nous en ouvrons également certains et les partageons sur nos propres comptes github.Puis-je utiliser des dépôts git dans svn repos?

Ce que je voudrais faire est:

  1. Tenir à jour un projet client avec tout le code dans la subversion
  2. Tout dev ajouter des plugins/modules de tout repo à distance/github au projet
  3. tout dev pouvoir tirer les modifications apportées aux prises en pension de GitHub et les ajouter au repo svn du projet (sur un projet par projet, pas tout à la fois)
  4. être en mesure de faire quelques réglages spécifiques du projet du code tiré de la github repos qui ne doivent pas être repoussés à github ou impacter l'abi lité de tirer des changements de github
  5. Devs avec des clés ssh nécessaires peuvent pousser les changements locaux au code sur GitHub retour à GitHub si des corrections de bugs ou de nouvelles fonctionnalités qui seraient bénéfiques pour tous les projets utilisant le plugin/module peut les tirer vers le bas aussi.

Est-ce possible? Si c'est le cas, comment?

Puis-je faire cela avec une combinaison de:

  1. fournisseur de branchement dans les prises en pension svn avec un fournisseur pour chacune des mises en pension de GitHub externes pour maintenir la séparation du code réutilisable sur github et peaufiné code pour le projet.
  2. validation du dossier .git dans la branche du fournisseur dans le repo svn pour permettre à quiconque de tirer les dernières modifications.
+0

P.S. Je suis tout à fait familier avec svn, mais pas très avec git - à peu près à gérer pour cloner, ajouter, valider et pousser – neilcrookes

Répondre

2

Je crois que la plupart de ce que vous demandez est possible en utilisant git-svn (http://git.or.cz/course/svn.html) qui vous permet de superposer git au-dessus de la subversion. Vous pouvez repousser dans le dépôt svn quand vous sentez que c'est un bon moment et que vous utilisez git d'une manière normale.

+0

Qu'en est-il de la chose ramification du vendeur? Savez-vous si vous pouvez réaliser ce genre de chose avec git-svn? – neilcrookes

2

Il devrait y avoir aucun problème en combinant les dépôts .git et svn de la manière que vous suggérez.

Je recommande d'ajouter .svn au fichier .gitignore pour chaque git utilisé de cette façon.

Vous avez besoin d'une stratégie pour empêcher les modifications privées en amont du hub git. Par exemple, conservez tous ces éléments dans une branche distincte que vous pouvez faire une fusion rebaser inverse juste avant le téléchargement, puis rétablissez-le.

10

plutôt d'une manière amusante, github added Subversion support comme plaisanterie de non-Avril-Fous. En d'autres termes, il regardé comme une blague des poissons d'avril, mais est entièrement fonctionnel!

Vous pouvez ajouter un dépôt git comme svn: externals en utilisant l'URL de Subversion http://github.com/USER/PROJECT.

+1

GitHub a mis à jour son support SVN, [lisez tout à ce sujet] (https://github.com/blog/966-improved-subversion-client-support). –

Questions connexes