2016-05-26 6 views
1

J'ai maintenant un problème entre git et svn.
Pour le projet interne, nous utilisons git comme référentiel.
Mais notre client utilise svn comme référentiel.Cloner un Ordner de git, commettre le changement dans le même ordner en git

Nous avons régulièrement publié pour notre client. Nous devons engager 4 modules (en fait 4 Ordner) dans svn client.
Les 4 ordner ont la même structure en git et svn.

Ma question: est-ce que je peux cloner ces ordner de notre git et les commettre svn fondamentalement? Si oui, comment puis-je faire cela?

J'ai entendu qu'il y a Git-SVN dans la commande git. Puis-je utiliser cet outil?

Répondre

0

qu'il existe git svn dans la commande git. Puis-je utiliser cet outil?

Vous pourriez avoir, si votre repo git a été créé à partir du SVN. Mais comme il s'agit d'un dépôt indépendant, le plus simple est de copier (simplement le système de fichiers) vos ordonnées au bon endroit dans le svn repo, et svn commit là: cela n'importera pas l'historique de git, mais de la perspective du client, cela pourrait être suffisant.

Parfois, notre client change notre code pour corriger les bogues. Ensuite, je dois copier le code modifié dans mon dossier git et le pousser dans notre git. Je pense, cet événement de copie entre mon dossier git local et le dossier svn est gênant et que peut être erreur-source.

Cela signifie avant de copier vos ordners vous devez faire le repo svn du client,:

cd /path/to/git/repo/myordner 
git checkout -b import 
git --work-tree=/path/to/updated/svn/repo/ordner add . 

Depuis les ordners ont la même structure dans git et svn, demandez git d'ajouter le ordner de la svn repo (qui est considéré par git comme un simple arbre de travail) dans une importation de branche, puis fusionnez cette branche d'importation dans votre branche principale.
Aucune copie requise ici. git gère l'importation.

Une fois cette importation terminée, vous pouvez réexporter vers le repo svn comme décrit précédemment.

+0

Parfois, notre client change notre code pour la correction de bugs. Ensuite, je dois copier le code modifié dans mon dossier git et le pousser dans notre git. Je pense que cet événement de copie entre mon dossier git local et le dossier svn est gênant et peut être source d'erreurs. Par conséquent je veux éviter cet événement de copie. Je veux essayer de créer un dossier local pour les deux resttories. S'il y a un changement dans git, je peux le vérifier depuis git et le valider dans svn. Si certains changements dans svn, je peux le vérifier à partir de svn et le pousser dans git. Ma première question est, si c'est possible sans copyevent local? –

+0

@JiaMu J'ai modifié ma réponse pour inclure une phase d'importation préliminaire. – VonC