2009-03-02 8 views
3

Sur mon lieu de travail, nous utilisons SVN et TortoiseSVN (Windows XP) en tant que client. J'ai un long trajet et travaille hors ligne pendant cela.
Maintenant, j'aimerais avoir une sorte de "extended undo" localement; c'est-à-dire que j'aimerais avoir le contrôle de la version locale de ma copie de travail SVN, afin d'oser refactoriser par exemple.
La commutation complète par ex. git, mercurial etc. n'est pas une option car la société utilise SVN.Expérience avec le contrôle de version locale de la copie de travail SVN?

Ce que je voudrais savoir si quelqu'un a une expérience dans la 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 des dossiers .svn ou similaire)

Répondre

1

que je fais habituellement comme ceci:

  1. Get dépôt SVN comme copie de travail.
  2. Initialisez le référentiel Git dans cette copie de travail.
  3. Hack pirater hack;
  4. Validez mon dépôt Git.
  5. Mise à jour de la part de la société SVN.
  6. Résoudre les conflits.
  7. S'engager auprès de la société SVN repo une fonctionnalité complète.
+0

Effectuez-vous toutes les communications du référentiel SVN en utilisant un client SVN "vanilla", ou utilisez-vous des outils d'intégration git/subversion à un moment donné? – Niklas

+0

TortoiseSVN exactement. Prise en charge de SVN dans Windows MSysGit n'est pas très bien porté. Je ne risquerais pas de détruire quoi que ce soit dans le repo de l'entreprise - donc j'utilise le client SVN "standard" pour "company" et Git pour "me". –

+0

qu'en est-il de l'utilisation d'un système de contrôle de version différent lorsque vous travaillez hors ligne? par exemple. VSS sur local? –

3

J'utilise Git comme un client Subversion local pour le travail et ça marche très bien. Lorsque vous effectuez un git svn clone d'un référentiel Subversion, l'extraction que vous obtenez n'a pas les répertoires cachés .svn, mais est à la place un référentiel Git complet dans son propre droit. La possibilité d'utiliser des branches locales et légères pour organiser mon propre développement est une fonctionnalité qui me tue.

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

+0

Est-ce que c'est sous Windows? – Niklas

+0

En fait, c'est sur OS X et Linux. Je vois que vous utilisez Windows et je sais que git-svn à un moment donné ne fonctionnait pas sur Windows; peut-être que maintenant. –

+0

Non, git-svn ne fonctionne pas très bien sous Windows - du moins en utilisant MSysGit. –

0

La dernière fois que j'ai vérifié le statut de SVN, la prise en charge de l'archivage local était toujours un plan de fonctionnalité à long terme. Git, d'un autre côté, est définitivement une option, avec git-svn. Autrement dit, si votre architecture est Unix, AFAIK, git-svn n'est pas encore supporté sur la plate-forme Windows.

1

Vous pouvez créer un aperçu des travaux, en utilisant svn export, puis créer votre propre dépôt subversion et utiliser l'instantané à partir du référentiel de travail comme checkin initial.

Ensuite, vous pouvez apporter vos modifications et utiliser Subversion (votre copie du dépôt local) jusqu'à ce que vous avez terminé. Bien sûr, vous pouvez effectuer une fusion régulière à partir du référentiel de travail principal pour vous assurer que votre contenu est à jour. Enfin, lorsque votre refectation est terminée, faites simplement un snapshot d'export svn de votre référentiel local et fusionnez-le dans votre référentiel de travail principal.

C'est un peu grossier mais c'est la seule façon de gérer ce type de flux de travail.

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

0

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

0

Git serait une bonne solution (parce que vous pouvez faire et fusionner plusieurs branches très facilement), mais:

  • lors de la réimportation votre modification svn, vous devez nettoyage d'abord les nombreuses branches intermédiaires vous avez créé sous git;
  • git-svn ne fonctionne pas avec la distribution Windows de Git, vous voudrez peut-être utiliser une image virtuelle Linux si vous travaillez sous Windows
  • Si vous pouvez faire courir git-svn, utiliser des scripts Ruby git2svn et svn2git , comme décrit dans this question
1

Vous pouvez essayer SVK qu'un VCS décentralisé basé sur subversion. Il peut être utilisé pour refléter le référentiel officiel sur votre ordinateur portable et synchroniser vos commits avec le tronc officiel.

+0

+1 parce que SVK a été essentiellement conçu pour résoudre ce problème (validations SVN hors ligne). Mais malheureusement, il a un format de copie de travail différent et ne fonctionnera pas avec TortoiseSVN. –

+0

: P Ne savait pas à propos de TortoiseSVN ... eh bien ... –

Questions connexes