Question

Je travaille avec un logiciel conservé dans svn pour le contrôle de version. Je voudrais utiliser git (git-svn), mais le logiciel nécessite beaucoup de configuration et de configuration avant de pouvoir être utilisé. Il existe des outils qui prennent en charge toute la configuration, y compris la vérification de tout le code via svn.

Toute la documentation de git-svn (que j'ai pu trouver) nécessite un nouveau paiement, en utilisant git-svn.

Existe-t-il un moyen de convertir une commande svn existante afin qu'elle puisse utiliser git-svn?

Était-ce utile?

La solution

Vous pouvez faire quelque chose comme ceci:

  1. Faites un clone complet de votre arbre SVN en utilisant git-svn, dans un répertoire temporaire. Assurez-vous que vous utilisez exactement la même révision que votre commande existante.
  2. Déplacez le " .git " dossier du niveau supérieur de l'extraction git-svn vers le niveau supérieur de l'extraction SVN.
  3. Ensuite, vous devrez soit demander à Git d'ignorer le & "; .svn &"; répertoires, ou vous pouvez tous les supprimer.
  4. Supprimez la commande git-svn.
  5. Là, vous pouvez maintenant manipuler vos fichiers existants avec Git et git-svn.
  6. Faire un " état du git " et espérons que cela indique qu'il n'y a pas de changement.

Autres conseils

Non. Un clone git-svn convertit le référentiel entier en git. Les extractions SVN n'ont pas l'intégralité du référentiel et ne peuvent donc pas être clonées. C’est le principal avantage de passer de SVN ou de CVS à un système distribué (comme git).

Je suppose que vous souhaitez probablement conserver l'historique. Toutefois, si vous (ou toute autre personne qui trébuche sur cette page) n’avez pas besoin d’historique, vous pouvez utiliser le & Quot; export & Quot; fonctionnalité telle qu’expliquée ici: https://stackoverflow.com/a/419475/2437521 .

Un autre moyen de le faire, qui ne modifie pas la copie de travail d'origine de Subversion et ne vous oblige pas à la copier, utilise un patch:

  1. Faites un clone complet de votre arbre Subversion en utilisant git-svn, dans un nouveau répertoire qui sera le référentiel Git. Assurez-vous que vous utilisez exactement la même révision que votre commande existante. Vous pouvez utiliser git reset --hard :/r<revision> pour le forcer à être la même révision après le clonage, où <revision> est la révision à laquelle la copie de travail Subversion est mise à jour (voir ceci en utilisant svn info ici).
  2. cd sur votre copie de travail Subversion.
  3. Utilisez svn status pour vous assurer que tous les nouveaux fichiers sont marqués avec A (ou utilisez svn add pour les ajouter), et tous les fichiers supprimés sont marqués avec D (ou utilisez svn rm pour les supprimer) .
  4. Exécutez svn diff >patch.diff pour créer un fichier de correctif.
  5. Copiez patch.diff en haut du référentiel Git créé auparavant.
  6. git apply -p0 patch.diff en haut du référentiel Git créé auparavant.
  7. Exécutez git status pour appliquer le correctif sur l’arbre de travail du référentiel Git.

Vous pouvez maintenant passer en revue les modifications en utilisant git add et git commit / <=> pour les enregistrer dans votre référentiel local.

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