59 votes

Shelve in TortoiseSVN?

J'ai déménagé de TSF pour SVN (TortoiseSVN) avec mon entreprise actuelle. J'ai vraiment manquer le "en Suspens" caractéristique de la TSF. J'ai lu différents articles sur la façon de "mettre en Veilleuse" avec SVN, mais j'ai rien lu qui donne un très simple expérience de "mettre en veilleuse" de travail.

Idéalement, j'aimerais articles supplémentaires ajoutées au menu contextuel TortoiseSVN - "mettre en Veilleuse" & "Unshelve". "Mettre en veilleuse" supprimerait la mettre en veilleuse, et de télécharger le répertoire de travail en vertu d'un chemin d'accès approprié défini par les options de l'utilisateur. "Unshelve" de fusionner avec la copie de travail.

Fait quelque chose comme ça existent? Quelqu'un peut-il suggérer des façons de "hack" cette fonctionnalité dans l'interface?

Remarque: Le lien suivant n'a pas vraiment d'atteindre l'expérience de l'utilisateur que je recherche:

Rayonnage Subversion

Une des plus grandes choses au sujet de TSF en Suspens est de savoir comment il est facile à utiliser...

32voto

OJ. Points 16939

Je ne crois pas que SVN dispose de cette fonctionnalité intégrée dans le serveur. Je ne crois rien de ce genre d'écho dans les clients que j'ai utilisé, y compris TortoiseSVN.

Pour contourner ce problème, j'ai recours à l'aide d'un DVCS comme git ou mercurial, pour me permettre de me branche/fusionner/étagère localement avant de pousser le contenu retour à SVN. C'est sans doute un peu de bidouille, mais ça fonctionne vraiment bien.

J'espère que ça aide. Bonne chance!

28voto

keith Points 1455

Voici un petit article de blog qui explique comment utiliser les correctifs SVN pour imiter les ensembles d'étagères TFS

16voto

zvolkov Points 9673

Si vous comprenez comment les branches du SVN de travail, l'émulation de mettre en Veilleuse dans le SVN est un no-brainer:

  1. Créer une branche dans le référentiel (sur le serveur)
  2. Mettez votre copie locale pour elle
  3. Valider vos modifications apportées à la nouvelle branche
  4. Mettez votre copie locale sur le tronc

Lorsque vous êtes prêt à revenir à votre veilleuse les changements ("unshelve"), il suffit de fusionner la durée de la branche de retour à votre copie locale.

Si vous ne savez pas de ligne de commande SVN ni Tortoise SVN assez bien pour le faire ci-dessus, voici un super détaillé, étape par étape les instructions sur la façon de le faire dans Tortoise SVN:

  1. Faire "SVN Update" pour mettre à jour votre copie de travail vers la version la plus récente du tronc. De cette façon, les seules différences entre votre copie locale et le tronc sont vos modifications.
  2. À partir du menu contextuel, sélectionnez "Branche / Étiquette"
  3. "Version TÊTE dans le référentiel" option est sélectionnée par défaut. De le garder.
  4. Changer la "Url" pour spécifier le nom de la branche, par exemple, http://server/repository/project1/branches/shelf1
  5. Vérifiez le Commutateur "copie de travail vers une nouvelle branche/étiquette de" boîte
  6. Cliquez sur Ok pour créer la branche et l'affiche
  7. Faire "SVN Commit..." et valider vos modifications sur la branche nouvellement créée
  8. À partir du menu contextuel, sélectionnez "Changer..."
  9. Changer la "URL" pour le tronc de l'URL par exemple, http://server/repository/project1/trunk
  10. Cliquez sur Ok pour revenir au tronc

Voir ce lien pour plus de détails et l'équivalent de ligne de commande ci-dessus:
Des étagères dans la Subversion

8voto

Paul Ruane Points 12840

Une autre option consiste à utiliser la fonction «Créer un correctif» dans TortoiseSvn pour créer un fichier de correctif et annuler les modifications. Le fichier de correctif peut ensuite être réappliqué pour revenir là où vous étiez.

Vous pouvez toujours vous retrouver avec des fusions persistantes si vous devez mettre à jour la révision de la copie de travail.

1voto

gbjbaanb Points 31045

Vous pouvez utiliser un DVCS, mais dans un sens, c'est une bidouille. Les "étagères" dans un DVCS stocke vos modifications en local seulement. Utile uniquement si vous souhaitez de point de contrôle de votre travail à la restauration si vous cassez avec plus de travail, mais, de préférence, vous voulez enregistrer votre travail sur le serveur.

Une façon de le faire dans le SVN sans explicite d'une étagère de commande est de passer votre copie de travail vers un autre svn emplacement et de s'engager là, au lieu de sur votre repo. C'est effectivement comme la création d'un temporaire de la branche et de travailler sur cela pendant toute la durée de votre travail. Je ne pense pas que vous aurez même de fusionner SVN va le faire pour vous lorsque vous passez, comme vos modifications locales seront conservés.

Malheureusement, vous ne pouvez pas passer d'un inexistante, de sorte que la première fois que vous faites cela, vous aurez à créer la branche de mise à l'écart. Je suppose que le tout peut être automatisé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X