Question

J'ai extrait un référentiel svn externe auquel j'ai appliqué quelques correctifs.
(L'application des correctifs ne peut être effectuée que manuellement en raison de conflits.)

Je souhaite maintenant pouvoir gérer correctement cette copie locale du référentiel distant.
(Je n'ai aucun autre droit d'accès que celui lu sur le référentiel distant.)

Tout d'abord, je dois pouvoir enregistrer mes modifications locales dans une sorte de système de contrôle de source, car l'application des correctifs impliquait des étapes manuelles.

Et deuxièmement, je souhaite toujours pouvoir recevoir les mises à jour du référentiel distant.

Quel est le meilleur moyen d'y parvenir?

Était-ce utile?

La solution

Je suppose que je pourrais utiliser un système de contrôle de source différent pour ma copie locale que svn?
Par exemple. archiver ma copie locale complète, y compris les dossiers .svn dans cvs.

Je pourrais aussi utiliser git-svn , mais je ne sais pas si c'est la meilleure solution.

De meilleures suggestions?

Mise à jour: Oui, git-svn semble être la solution préférée.

Mais pour mémoire, on pourrait aussi utiliser hg avec svn .

Autres conseils

Une méthode classique consiste à extraire une version exportée du code et à l’archiver dans votre propre référentiel. S'il y a des mises à jour sur le code, vous les fusionnez dans votre référentiel. Vous pouvez aider à la fusion en utilisant des branches astucieuses (branches de fournisseurs de recherche). Marquez le code dans votre référentiel en fonction des versions du code exporté que vous avez archivé.

Je comprends que SVK peut le faire dans un environnement purement Subversion (je l'ai utilisé pour quelque chose comme ceci a il y a quelques années). Toutefois, si vous souhaitez essayer Git, git-svn peut être un choix encore meilleur. C'est ce que j'utiliserais aujourd'hui.

Une mise en garde, cependant - si vous utilisez Windows, vous rencontrerez peut-être des problèmes pour que git-svn fonctionne. J'ai eu un succès limité dans ce domaine et n'utilisez pas git-svn sous Windows à cause de cela.

Avec svnsync, vous pouvez conserver une copie d'un référentiel svn, mais dès que vous modifiez votre copie locale, vous ne pouvez plus continuer à vous synchroniser.

Je suggérerais d'utiliser git pour votre dernier travail quotidien. Conservez une copie de travail locale du dépôt svn et mettez-la sous le contrôle de git. Ce sera git master. Clonez ce référentiel dans un emplacement différent, branchez le maître et travaillez dessus, en appliquant vos correctifs directement à la branche.

Mettez régulièrement à jour votre svn wc et extrayez-le dans votre référentiel git en tant que maître. Fusionnez ensuite maître avec votre branche.

Le problème, c’est que vous aurez "deux utilisateurs git", l’une sera la copie de travail svn repo locale et l’autre votre branche corrigée.

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