Subversion permet le renommage et le déplacement de fichiers et de dossiers. Des entrées de menu existent pour supprimer et renommer dans le sous-menu TortoiseSVN.
Utilisez
→ pour enlever des fichiers ou des dossiers de Subversion.Quand vous faites « modifié ». Tant que vous n'avez pas livré la modification, vous pouvez récupérer le fichier en utilisant → sur le répertoire parent.
→ sur un fichier ou un dossier, il est immédiatement effacé de votre copie de travail et marqué pour suppression dans le dépôt à la prochaine livraison. Le dossier parent de l'élément affiche l'icône superposée de l'étatSi vous voulez supprimer un élément dans le dépôt, mais le conserver localement comme un fichier/répertoire non versionné, utilisez Maj enfoncée tout en effectuant un clic droit avec la souris sur l'élément désiré dans le volet de l'explorateur (volet droit) afin de voir cette commande dans le menu contextuel étendu.
→ . Vous devez tenir la toucheSi un élément est effacé depuis l'explorateur au lieu d'utiliser le menu contextuel de TortoiseSVN, la boîte de dialogue de livraison signale ces éléments comme manquants et vous permet de les retirer de la gestion de version avant la livraison. Cependant, si vous faites une mise à jour de votre copie de travail, Subversion détectera l'élément manquant et le remplacera avec la dernière version du dépôt. Si vous avez besoin de supprimer un fichier versionné, utilisez toujours
→ pour que Subversion ne soit pas obligé de deviner ce que vous cherchez réellement à faire.Si vous avez supprimé un fichier ou un dossier et déjà livré cette opération de suppression dans le dépôt, un simple
→ ne pourra plus le ramener. Mais le fichier ou le dossier n'est pas perdu pour autant. Si vous connaissez la révision où le fichier ou le dossier a été supprimé (si vous ne la connaissez pas, utilisez la fenêtre de journal pour la retrouver) ouvrez l'explorateur de dépôt et basculez vers cette révision. Sélectionnez ensuite le fichier ou le dossier que vous avez supprimé, faites un clic droit et sélectionnez → avec comme cible de l'opération de copie le chemin vers votre copie de travail.Si vous voulez faire un simple renommage d'un fichier ou d'un dossier sans changer son emplacement, utilisez
→ Entrez le nouveau nom de l'élément et vous avez terminé.Si vous voulez déplacer des fichiers dans votre copie de travail, peut-être vers un sous-dossier différent, utilisez le glisser-déposer avec le bouton droit :
sélectionnez les fichiers ou les répertoires que vous voulez déplacer
faites-les glisser avec le bouton droit vers le nouvel emplacement dans la copie de travail
relâchez le bouton droit de la souris
dans le menu qui apparaît, sélectionnez
→Puisque les renommages et les déplacements sont gérés comme une suppression suivie d'un ajout vous devez livrer le dossier parent du fichier renommé/déplacé pour que la partie suppression du renommage/déplacement apparaisse dans la boîte de dialogue Livrer. Si vous ne livrez pas la partie suppression du renommage/déplacement, il restera dans le dépôt et une mise à jour par vos collègues ne supprimera pas le vieux fichier. C'est-à-dire qu'ils auront les deux copies, la vieille et la nouvelle.
Vous devez livrer un renommage de dossier avant de changer l'un des fichiers de ce dossier, sinon votre copie de travail peut être vraiment perturbée.
Une autre façon de déplacer ou de copier des fichiers est d'utiliser les commandes copier/couper de Windows. Sélectionnez les fichiers que vous voulez copier, faites un clic droit et choisissez
→Vous pouvez aussi utiliser l'explorateur de dépôt pour déplacer des éléments. Lisez la section intitulée « L'explorateur de dépôt » pour en savoir plus.
Vous ne devriez pas utiliser les commandes Déplacer ou Renommer de TortoiseSVN sur un dossier qui a été créé en utilisant svn:externals
. Cette action causerait la suppression de l'élément externe de son dépôt parent, en dérangeant probablement beaucoup d'autres personnes. Si vous devez déplacer un dossier externe, vous devriez utiliser un déplacement ordinaire, et ensuite ajuster les propriétés svn:externals
des répertoires parents de la source et de la destination.
Si le dépôt contient deux fichiers qui ont le même nom mais qui ne diffèrent que par la casse (par exemple TEST.TXT
et test.txt
), vous ne pourrez pas mettre à jour ou extraire le répertoire parent sous Windows. Bien que Subversion soit sensible à la casse dans les noms de fichiers, ce n'est pas le cas de Windows.
Cela arrive parfois lorsque deux personnes livrent, depuis des copies de travail séparées, des fichiers qui se trouvent avoir le même nom, mais avec une différence de casse. Cela peut également arriver quand les fichiers sont livrés depuis un système d'exploitation qui utilise un système de fichiers sensible à la casse, comme Linux.
Dans ce cas, vous devez décider lequel des deux vous voulez conserver et supprimer (ou renommer) l'autre du dépôt.
Il y a un script hook serveur disponible à l'adresse : https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ qui bloque les livraisons qui créeraient des conflits de casse.
Parfois, votre environnement de développement va renommer des fichiers pour vous dans le cadre d'une restructuration des sources, et bien sûr il ne le dit pas à Subversion. Si vous essayez de livrer vos modifications, Subversion peut voir l'ancien nom de fichier comme manquant et le nouveau comme un fichier non versionné. Vous pourriez simplement livrer le nouveau nom de fichier pour le rajouter dans le dépôt, mais on perdrait alors l'historique, car Subversion ne sait pas que les fichiers sont liés.
Une meilleure solution est d'informer Subversion que ce changement est en fait un renommage, et vous pouvez le faire dans les boîtes de dialogue Livrer et Vérifier les modifications. Il suffit de sélectionner à la fois l'ancien nom (manquant) et le nouveau nom (sans version) et d'utiliser → pour lier les deux fichiers en tant que renommage.
Généralement vous paramétrez votre liste des ignorés pour que tous les fichiers générés soient ignorés dans Subversion. Mais que faire si vous souhaitez effacer tous les éléments ignorés pour produire une génération propre ? Généralement vous définiriez cela dans votre makefile, mais si vous êtes en train de déboguer le makefile ou de changer le système de build, il est utile d'avoir un moyen de nettoyer la plate-forme.
TortoiseSVN fournit précisément une telle option avec Maj tout en effectuant un clic droit sur un dossier dans le volet de l'explorateur (volet droit) afin de voir cette commande apparaître dans le menu contextuel étendu. Cela a pour effet d'ouvrir une boîte de dialogue qui répertorie tous les fichiers non versionnés où qu'ils soient dans votre copie de travail. Vous pouvez ensuite sélectionner ou désélectionner les éléments à enlever.
→ . Vous devez tenir enfoncée la toucheLorsque ces éléments sont supprimés, la corbeille est utilisée, donc si vous faites une erreur ici et supprimez un fichier qui aurait dû être versionné, vous pouvez toujours le récupérer.