Question

Sur mon lieu de travail, nous utilisons SVN et TortoiseSVN (Windows XP) en tant que client. J'ai un long trajet à faire et je travaille hors ligne pendant cette période.
Maintenant, j'aimerais avoir une sorte de "undo étendu". localement; Je souhaite avoir un contrôle de version local de ma copie de travail SVN, pour oser par exemple refactoriser.
Passage total à par exemple git, mercurial, etc. n’est pas une option, car la société utilise SVN.

Ce que j'aimerais savoir, c'est si quelqu'un a une expérience dans la gestion de version de la copie de travail SVN locale, peut-être en exécutant un git local ou similaire?
Y a-t-il des inconvénients potentiels? (peut-être jouer avec les dossiers .svn ou similaire)

Était-ce utile?

La solution

Je fais habituellement comme ça:

  1. Obtenir le référentiel SVN en tant que copie de travail.
  2. Initialisez le référentiel Git dans cette copie de travail.
  3. pirater hack pirater;
  4. Engagez-vous dans mon dépôt Git.
  5. Mise à jour de la société SVN.
  6. Résoudre les conflits.
  7. S'engager auprès de la société SVN avec une mise en pension complète.

Autres conseils

J'utilise Git en tant que client Subversion local pour le travail et cela fonctionne très bien. Lorsque vous faites un git svn clone d'un référentiel Subversion, la vérification que vous obtenez ne contient pas les répertoires .svn cachés, mais constitue plutôt un référentiel Git complet. . La possibilité d’utiliser des branches locales légères pour organiser mon propre développement est une fonctionnalité qui me tient à cœur.

Les autres fonctionnalités que j'utilise tout le temps sont stash git , les validations par étapes et git add -p .

Vous pouvez créer un instantané du travail à l'aide de svn export puis créer votre propre référentiel de subversion et utiliser l'instantané du référentiel de travail comme archivage initial.

Ensuite, vous pouvez apporter vos modifications et utiliser Subversion (votre copie du référentiel local) jusqu'à ce que vous ayez terminé. Bien sûr, vous pouvez effectuer des fusions régulières à partir du référentiel de travail principal pour vous assurer que votre contenu est à jour. Enfin, lorsque votre refectorage est terminé, créez simplement un instantané svn export de votre référentiel local et fusionnez-le dans votre référentiel de travail principal.

C’est un peu brut, mais c’est le seul moyen de gérer ce type de flux de travail.

Si vous avez suffisamment accès au travail. Vous pouvez créer une branche du contenu et travailler sur la branche à partir du référentiel de travail exclusivement et utiliser la méthode du référentiel local lorsque vous avez besoin de votre fonctionnalité d'annulation étendue. À ce stade, bien sûr, l’utilisation d’un système de contrôle de version local ne vous limitera pas à la subversion, faites donc votre choix.

Vous voudrez peut-être essayer de SVK un VCS décentralisé basé sur la subversion. Il peut être utilisé pour mettre en miroir le référentiel officiel sur votre ordinateur portable et synchroniser vos commits avec le coffre officiel.

La dernière fois que j'ai vérifié le statut de SVN, l'assistance d'enregistrement local restait un plan de fonctionnalités à long terme. Git, en revanche, est définitivement une option, avec git-svn. Autrement dit, si votre architecture est Unix, autant que je sache, git-svn n’est pas encore pris en charge sur la plate-forme Windows.

Rien n'empêche d'exécuter le serveur SVN local. Je l'utilise de cette façon.

Git serait une bonne solution (car vous pouvez créer et fusionner de nombreuses branches très facilement), mais:

  • lors de la réimportation de votre modification dans svn, nettoyez d’abord les nombreuses branches intermédiaires que vous avez créées sous git;
  • git-svn ne fonctionne pas avec la distribution Windows de Git, vous pouvez donc utiliser une image virtuelle Linux si vous travaillez sous Windows
  • Si vous pouvez rendre git-svn actif, utilisez les scripts ruby ??git2svn et svn2git, comme décrit dans cette question
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top