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.)

Gars
la source

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.

Commodore Jaeger
la source
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).

crashmstr
la source
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.

Keith
la source
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"

RedWolves
la source
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.


la source
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é.

Martin
la source
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).

BornToCode
la source
4

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

John Boker
la source
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.

aku
la source
1

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

DevelopingChris
la source
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

Anzar Ansari
la source
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.

Danijel
la source