Quelle est la moins douloureuse pour transférer les changements Subversion locaux à une autre machine?

StackOverflow https://stackoverflow.com/questions/573849

  •  05-09-2019
  •  | 
  •  

Question

Je travaille sur un changement sur mon ordinateur portable. Ce n'est pas prêt à être soumis au référentiel encore, mais je voudrais continuer à travailler sur mon bureau aussi. Mon jeu de changement est assez grand et non seulement il contient des modifications, il contient également de nouveaux fichiers et les fichiers supprimés.

Je pourrais copier la copie de travail locale complète à une autre machine et obtenir les changements en place. Cependant, il sonne comme une solution sale (parce que je les métadonnées polluantes sur une autre machine), et je transférer construire des objets inutilement trop.

J'ai essayé de transférer des fichiers en utilisant TortoiseSVN .patch mais il continue se plaindre de « patch appartient à une version plus ancienne » (pas vrai et pourquoi ça peut vous faire?) Ou « lignes ne correspondent pas » (oui, ils ne le font pas parce que je l'ai changé leur). Je n'ai pas aimé l'expérience « popups d'erreur continue » du tout.

Je ne veux pas installer Cygwin, donc correctif de ligne de commande est hors de question.

Je suppose que la dernière option serait bifurquer une nouvelle branche pour cette fonction et entrer dans une boucle de « checkin / mise à jour ». Cependant ceux-ci sont présentés dans l'histoire de la création il y a la pollution trac.

Les meilleures idées? Ou tout ce que je suis absent?

Était-ce utile?

La solution

Branching est la solution propre. Et a l'avantage supplémentaire de vous donner une copie de sauvegarde pendant que vous travaillez sur ce changement énorme. Sans oublier, la synchronisation facile des futurs changements entre les machines.

Mais, vous pouvez probablement vous en sortir avec juste passer comme un éclair le répertoire de travail ensemble et déverser quelque part sur l'autre machine.

Autres conseils

Avez-vous essayé de créer une nouvelle branche et en utilisant changer svn . Il vous transférer à une autre partie du dépôt et de maintenir vos modifications si vous ramifier de votre révision initiale de travail.

En ce qui concerne d'autres approches, vous pouvez ajouter GIT au mélange. Le modèle de contrôle de code source distribué GIT vous permettra de pousser changesets et-vient entre votre bureau et ordinateur portable. Et puisque GIT gère ses informations sur le système de fichiers changeset local, les commits que vous faisant part et d'autre ne figureraient pas dans le flux que votre système TRAC est suivi.

Alors, vous allez essentiellement « hors ligne avec la subversion » et terminez votre travail en utilisant GIT engage. Une fois que vous avez terminé, vérifiez dans le kit entier et kaboodle à votre tronc de subversion.

branches de fonction sont légers dans Subversion et sont parfaits pour la fonction d'isolation travail spécifique comme celui-ci. Si vous utilisez la subversion 1.5 ou supérieure à la synchronisation tout et processus de fusion est beaucoup plus facile qu'elle ne l'était avec 1.4.

Je voudrais créer une branche temporaire à cet effet. De cette façon, vous utilisez uniquement des outils SVN à votre disposition et vous ne pollue pas la méta-méta ou copier les objets.

De plus, il semble que vous vérifiez dans votre code à intervalles espacés et ayant une branche permettra également d'éviter la perte de données en cas de plantage du disque dur.

Non la dernière option, la première. Vous devez avoir créé il y a déjà longtemps une caractéristique branche, s'il y a vraiment tant de changements

Vous pouvez le faire encore en faisant une copie svn de copie de travail à la branche-répertoire sur le serveur, de sorte que vous n'avez pas besoin d'une « boucle de checkin / mise à jour », juste un checkin, juste un mise à jour / commutateur, vraiment.

Comme     svn copie MyWorkingCopy svn: // leserveur / projet / branches / caractéristiques / my-fonction-branche

Si vous avez juste besoin d'une réplique sur votre bureau, je trouve que Live Sync fonctionne parfaitement pour ce scénario. Je l'ai mis en place pour répliquer mon dossier de la caisse sur mon ordinateur portable et deux ordinateurs de bureau, ce qui me donne exactement le même état sur les trois machines. Et tout cela se passe en permanence sur l'arrière-plan.

Ou vous pouvez opter pour une branche et assurez-vous de ne pas oublier de commettre des modifications sur l'ordinateur portable avant de vous déplacer sur le bureau. : -)

EDIT: Dans le commentaire Reponse - Oui, il est possible d'avoir des ennuis si vous commencez à éditer des fichiers alors que les deux machines sont en train de synchronisation. Le pire qui puisse arriver est de perdre quelques modifications sur l'une des machines. Dans la pratique, les chances pour que cela se produise sont assez petites.

Eh bien, la plupart des gens dire que si votre « jeu de changement est assez grand » vous devriez certainement vérifier les changements (dans une branche nécessaire)!

Vous pouvez SVK . Depuis le blog et le site SVK, scénario d'utilisation typique est de SVK

  • miroir des dépôts distants existants,
  • puis créer des branches sur votre machine,
  • travailler localement sur ces branches, et
  • lorsque vous avez terminé, les fusionner dans votre coffre en miroir,
  • la dernière étape met à jour de manière transparente le dépôt distant.

Je n'ai aucune expérience pratique de l'utilisation SVK. Mais je pense qu'il correspond à votre scénario. Ce billet de blog décrit plus en détail http: //www.bieberlabs .com / Archives / 2004/11/30 / utilisant-SVK /

Je pense une version windows de SVK est disponible ( SVKWin32 ) et TortoiseSVN peut alors utiliser le miroir local du référentiel pour la mise à jour / engage.

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