10
votes

Subversion - Checkout A Directory Parent

Dans mon référentiel, disons que j'ai ceci:

Animal
  Dog
     Beagle
     Hound
     ...


2 commentaires

Quel est le problème de supprimer et de vérifier à nouveau? Si vous avez déjà apporté des changements, commencez-les, puis recommencez.


Ce n'est pas un problème. C'est ce que j'ai fait et ça a fonctionné. Je me demandais juste si j'avais une meilleure façon, sinon il y a une façon plus correcte de le faire.


4 Réponses :


2
votes

Vous recherchez SVN Commutateur , qui met à jour votre copie de travail pour refléter un nouveau chemin. Les fichiers modifiés ne sont pas touchés, cependant. Dans TortoiseSVN, clic droit et sélectionnez "Switch ..." dans le menu contextuel.

L'étui d'utilisation plus courant pour SVN Commutateur est de basculer entre les branches enracinées du même point, de sorte que vous puissiez avoir des vues différentes du même code. Mais vous pouvez basculer entre les chemins arbitraires de votre référentiel.


3 commentaires

Mais mon annuaire parent, animal, n'est pas sous contrôle de version, donc je ne peux donc pas y basculer, au moins pas de tortue. Peut-être via la ligne de commande?


Je suis confus. Comment votre référentiel peut-il avoir un animal en elle s'il n'est pas sous la version de la version? Est-ce une faute de frappe?


J'ai fait une copie (branche) pour créer un animal. Dans ma copie de travail, l'animal n'a pas le répertoire .SVN. C'est un dossier qui a le même nom que le dossier de référentiel. Donc, mon répertoire de travail est un double dupliqué de la structure du référentiel, mais j'ai vérifié votre chien à votre chien. J'espère que cela a du sens.



4
votes

Ce n'est pas possible directement.

Le moyen le plus simple consiste à supprimer votre copie de travail et à faire une nouvelle commande de animal .

Si vous avez des modifications dans chien que vous souhaitez conserver, déplacer chien à un emplacement temporaire, paiement animal et ensuite Copier chien dans le répertoire animal .


0 commentaires

0
votes

J'ai trouvé pour éviter les téléchargements à partir du serveur SVN Qu'est-ce qui est déjà sur mon disque, la mise à jour ou la commande est terminée à l'aide de - profondeur vide . Alors quelque chose comme: svn co -depth animal vide; cd animal; SVN MISE À JOUR - REPTH Dog vide

Quoi qu'il en soit, l'idée est d'obtenir chien en tant que répertoire de animal / .svn / entrées . .

ceci " - profondeur vide " garde SVN de télécharger le contenu réel, mais SVN effectue le sous-répertoire (dans ce cas, chien ) et svn fait Mettez une entrée pour le Dog Sous-répertoire dans Animal / .svn / Entrées .

Puis remplacez le sous-répertoire du chien avec la copie que vous avez déjà.

Vous pouvez vérifier que cela fonctionne en tapotant l'un des fichiers quelque part dans chien et en faisant une mise à jour SVN dans le répertoire animal . Le fichier whacked doit être retiré du serveur SVN.


2 commentaires

Ne fonctionne pas: alors vous obtenez Mise à jour '.' ': Ignoré' coffre '- une copie de travail obstruante a été trouvée à la révision 13370. Résumé des conflits: Pistes sautés: 1 Lorsque vous effectuez SVN up dans animal .


Été depuis longtemps, donc je ne suis pas sûr de ce que le problème est. SVN devrait faire les annuaires des animaux et des chiens, n'est-ce pas? Donc, il ne devrait y avoir aucune copie de travail obstruant. Une autre idée est peut-être que SVN a changé depuis '13 afin que cette astuce ne fonctionne plus.



0
votes

Oui, vous pouvez cartographier le répertoire parent.

Pour ce faire, il vous suffit de supprimer .svn du répertoire "Chien" (enfant) et do SVN Mettre à jour sur le répertoire parent. Il effectuera le fichier existant comme Versiond Copier et téléchargera Delta Contenu de Dog Directory de SVN Server.

Veuillez noter que vous devez disposer de la structure de répertoire exacte. Structure du répertoire SVN.


0 commentaires