Comment déplacez-vous un fichier?


219

J'utilise TortoiseSVN contre le référentiel SVN SourceForge. Je souhaite déplacer un fichier d'un dossier à un autre afin de conserver son historique de révision. Est-ce possible? Si oui, comment faites-vous?

(Ma stratégie actuelle consistait à copier le fichier dans le nouveau dossier et à l'archiver, puis à supprimer le fichier du dossier actuel.)

Réponses:


95

Subversion a un support natif pour déplacer des fichiers.

svn move SOURCE DESTINATION

Consultez l'aide en ligne (svn help move) pour plus d'informations.


Ou une autre façon de le dire: svn move <current path/filename> <destination path/filename>
Joe

313

Consultez la section 5.14.2. Déplacer des fichiers et des dossiers (ou consultez "déplacer" dans l'index de l'aide) de l'aide de TortoiseSVN. Vous effectuez un déplacement via un glissement vers la droite. Il mentionne également que vous devez valider à partir du dossier parent pour en faire "une" révision. Cela fonctionne pour effectuer le changement dans une copie de travail.

(Notez que les éléments SVN dans l'image suivante n'apparaîtront que si le dossier de destination a déjà été ajouté au référentiel.)

menu de déplacement de tortue

Vous pouvez également effectuer le déplacement via le navigateur Repo (section 5.23. Le navigateur Repository de l'aide).


Lorsque j'ai mis en surbrillance tous mes fichiers, déplacés vers la droite, le menu normal de l'explorateur Windows est apparu. Cela m'a permis de sélectionner "déplacer" mais ce n'était pas une option SVN, donc je ne suis pas sûr que quelque chose se soit même passé. Quand j'ai vérifié pour voir s'il y avait des modifications, il a dit que 300 fichiers ont été supprimés et 300 n'étaient pas versionnés. Cela ne semble pas avoir fonctionné correctement. J'ai peur de le commettre sans savoir si c'est ainsi que cela est censé fonctionner ou non
Joe Phillips

48
Je viens de réaliser que cela n'a probablement pas fonctionné car je n'avais pas encore ajouté /
Joe Phillips

Je sais que c'est des années plus tard - mais le commentaire de Joe est important. J'ai aussi eu du mal avec ça - j'ai oublié cette petite note dans la réponse. Le dossier de destination doit être sous contrôle SVN, sinon cela ne fonctionnera pas. Heureusement, SVN permet d'ajouter des dossiers vides. Après avoir placé le dossier sous contrôle SVN, le glissement de la souris vers la droite fonctionnera comme décrit ci-dessus. Sinon, le menu générique "Copier ici / déplacer ici / annuler" de Windows est présenté (c'est-à-dire que les choix SVN sont manquants).
ripvlan

C'était parfait. J'ai eu des problèmes pour déplacer plus de 1 500 fichiers en une seule fois. Les déplacer un répertoire à la fois semblait cependant se débarrasser de ce problème.
Michael Murphy

80

Avec TortoiseSVN, je déplace simplement le fichier sur le disque.

Lorsque je viens de valider mes modifications, je sélectionne le fichier manquant et le nouveau et je sélectionne " Réparer le déplacement " dans le menu contextuel:

entrez la description de l'image ici

Cela signifie que je peux laisser mon IDE se déplacer dans les fichiers et l'utiliser avec des outils de refactoring sans perdre l'historique.


3
C'est ma façon préférée de déplacer les fichiers maintenant. Un avertissement; ne faites que <20 fichiers à la fois entre les validations, sinon cela peut prendre beaucoup de temps pour trouver les fichiers qui se rapportent les uns aux autres.
DarrenMB

@DarrenMB a raison: je suis sur le point de migrer un projet Android d'Eclipse vers Android Studio. Tous les fichiers doivent être déplacés. Cette approche n'est pas celle que je souhaite utiliser ici.
Bondax

@Bondax oui, pour les migrations de projets entiers, vous feriez mieux de passer de SVN - cela devrait être quelque chose que vous faites très occasionnellement. J'ai trouvé que c'était la meilleure façon pour la majorité des déplacements de fichiers effectués par la plupart des développeurs au cours d'un projet.
Keith

1
Je n'ai pas non plus Repair Move, utilisant la tortue SVN 1.9.4
Mark Patterson

@Mark Patterson: Je vois l'option et je suis également sur 1.9.4 (TortoiseSVN 1.9.4, Build 27285 et Subversion 1.9.4, -release). Je ne pense pas que votre problème soit lié à la version ... Voici la documentation officielle de cette fonctionnalité: tortoisesvn.net/repairmoves.html
Yosko

37

Dans TortoiseSVN, faites un clic droit quelque part et allez dans TortoiseSVN> Repo Browser pour ouvrir le référentiel.

Il vous suffit alors de glisser-déposer le fichier d'un dossier vers l'endroit où vous le souhaitez. Il vous demandera d'ajouter un message de validation et il sera par défaut "Fichier / dossier déplacé à distance"


22

Utilisation de TortoiseSVN Je viens de cliquer avec le bouton droit et de faire glisser le dossier d'un emplacement à un autre. Lorsque vous relâchez le clic droit, vous aurez la possibilité de "SVN Move Version File". Cependant, je crois que SVN n'y fait rien de "fantaisiste", mais supprime simplement le fichier à l'emplacement précédent et l'ajoute au nouvel emplacement.


18

Pour le client TortoiseSVN:

  1. Sélectionnez les fichiers que vous souhaitez déplacer,
  2. Faites un clic droit et faites glisser les fichiers vers le dossier dans lequel vous souhaitez les déplacer,
  3. Une fenêtre apparaîtra lorsque vous relâcherez le glisser-déposer sur un dossier. Cliquez sur "SVN Move versioned item (s) here" ,
  4. Après avoir cliqué sur le dessus, la boîte de message de la fenêtre de validation apparaîtra. Saisissez un message et soumettez.

Vous avez maintenant terminé.


8

Coupez le fichier via le menu contextuel du système d'exploitation comme vous le faites habituellement, puis au lieu de faire un collage régulier, faites un clic droit pour amener le menu contextuel, puis choisissez TortoiseSVN -> Paste(assurez-vous de valider à partir de la racine pour inclure à la fois les anciens et les nouveaux fichiers dans la validation).


4

je pense que dans le navigateur svn dans tortoisesvn, vous pouvez simplement le faire glisser d'un endroit à un autre.


2

Puisque vous utilisez Tortoise, vous voudrez peut-être consulter ce lien sur LosTechies. Cela devrait être presque exactement ce que vous recherchez.

http://www.lostechies.com/blogs/joshua_lockwood/archive/2007/09/12/subversion-tip-of-the-day-moving-files.aspx


3
Étant donné que ce lien pourrait se rompre, vous souhaiterez peut-être copier les informations pertinentes dans votre réponse.
Cees Timmerman

3
... Et ce lien s'est rompu. Point et cas.
Stuart.Sklinar

1

Si je ne me trompe pas à partir de la version 1.5, SVN peut suivre les fichiers \ dossiers déplacés. Dans TortoiseSVN, l'utilisation peut déplacer des fichiers par glisser-déposer.


1

Peut également être appelé «renommer» par tortoise, mais svn move est la commande du client svn barebones.


la réponse la plus simple et la plus précise est celle-là! l'utilisation des fichiers mobiles de TortoiseSVN se fait avec un clic droit> renommer. c'est tout.
RoeeK

1

Transfert d'un fichier à l'aide de TortoiseSVN:

Étape: 1 Veuillez sélectionner les fichiers que vous souhaitez déplacer, faites un clic droit et faites glisser les fichiers vers le dossier vers lequel vous souhaitez les déplacer, Une fenêtre apparaîtra après avoir suivi les instructions ci-dessous

Option SVN

Étape 2: Après avoir cliqué sur le dessus, validez le fichier comme indiqué ci-dessous

SVN Commit


0

Si vous déplacez des dossiers via le navigateur de référentiel, il n'y a pas d'option Déplacer lorsque vous cliquez avec le bouton droit; la seule façon est de glisser-déposer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.