Je ne peux pas valider les modifications après la fusion en SVN
-
03-07-2019 - |
Question
J'ai eu un problème avec la validation des modifications après la fusion de deux branches de mon projet à l'aide de TortoiseSVN.
Voici les détails:
J'ai créé une branche de fusion dans le tronc du projet sur lequel je travaille.
Projet inclut le référentiel principal et les bibliothèques jointes au référentiel principal en tant que svn external (les bibliothèques sont également branchées) en tant que sous-répertoire du projet .
Lorsque j'essayais de valider des modifications, TortoiseSVN a déclaré:
Commit A
re all the targets part of the same working copy?
Unable to lock 'D:\websites\project\lib'
Please execute the "Cleanup" command.
Bien sûr, le nettoyage n'a pas aidé.
Le mot clésvn: external du projet était bien défini. Le dossier lib contenait toujours la version appropriée des bibliothèques (version du coffre).
Le serveur et le client SVN sont tous deux en version 1.5.x (TortoiseSVN est 1.5.3.x).
Du point de vue technique, les projets et les bibliothèques sont des projets du même référentiel SVN.
Avez-vous une idée de ce qui ne va pas?
J'avais un peu cherché Google pour la solution, mais je n'ai rien trouvé d'utile. J'ai donc essayé de valider mes modifications en deux étapes:
- valider les modifications du dossier du projet
- valider les modifications du dossier des bibliothèques
Ce qui s'est passé sans aucun problème.
Mais je me demande toujours pourquoi je ne pouvais pas tout valider en un seul.
ÉDITS:
- (Après la réponse de Ken G) Version corrigée de TortoiseSVN 1.3.x - > 1.5.3.x.
La solution
svn: external obligera Subversion à combiner différents chemins d'accès au référentiel lors de l'extraction, mais ces chemins sont toujours "disjoints", vous devez donc effectuer deux commits. pour appliquer les modifications.
Voici la citation pertinente de Contrôle de version avec Subversion
Et Subversion fonctionne toujours vraiment uniquement sur des copies de travail non jointes. Donc, par exemple, si vous voulez commettre les changements que vous avez apportés dans un ou plus de ces copies de travail externes, vous devez exécuter svn commit explicitement sur les copies de travail qui s’engagent sur le copie de travail principale ne sera pas recurse dans les externes.
Autres conseils
1.3 de TortoiseSVN est très ancien , la dernière révision étant la version 1.5.x. Il y a eu de nombreux changements dans Subversion et TortoiseSVN depuis la version 1.3, donc la mise à niveau de votre client est probablement votre meilleur choix.
Ceci étant dit, TortoiseSVN 1.5 va créer / mettre à jour des copies de travail au format de la version 1.5. Soyez très prudent lorsque vous utilisez TortoiseSVN (ou tout autre client SVN) contre une copie de travail précédente de Subversion.
Je pense que je me souviens d’avoir lu un tort relatif à ce problème dans TortoiseSVN qui a été corrigé dans la dernière version. Consultez les notes de publication les plus récentes.