2009-01-13 7 views
1

Nous avons un sous-dossier qui est un relatif svn external (../project/subfolder). Dans une caisse récente, elle pointe vers (... TRUNK/project/subfolder) et dans une nouvelle branche, elle pointe vers (... BRANCH/branchName/project/subfolder). Mais si vous faites un changement sur le projet contenant le sous-dossier, le sous-dossier reste pointé sur TRUNK. Alternativement, si vous faites une extraction de BRANCH et passez à TRUNK, elle reste pointée sur BRANCH.svn: le commutateur ne fonctionne pas avec svn: relatif?

Un svn: switch ne devrait-il pas mettre à jour les externes relatifs? Y at-il une sorte de svn: commutateur récursif que je devrais courir?

Répondre

1

Vous pouvez essayer svncopy.pl. svn: les externes ne sont pas mis à jour lorsque vous branchez ou basculez.

1

Subversion considère généralement les entités externes comme distinctes de leur projet conteneur. Par exemple, "svn commit" ne regarde que les fichiers du projet, et non les fichiers des externals contenus dans le projet. "svn switch" fonctionne de la même manière; vous pouvez changer le projet principal, mais vous devrez lancer un "svn switch" séparé sur chaque external.

3

La réponse correcte à la question est "oui, il devrait mettre à jour ces externals." Le fait qu'il n'est un bug:

voir: http://subversion.tigris.org/issues/show_bug.cgi?id=3390

Fix étape cible est 1.6.10. Le correctif est apparemment terminé, mais la version actuelle au moment où j'écris ceci est toujours 1.6.6.

1

Hélas, je crois que ce n'est pas encore fixé, malgré que le bugfix mentionné ci-dessus a été mis en œuvre il y a longtemps.

J'ai un externe dont le nom a des espaces incorporés et utilise un double chemin relatif. Mes références externes un fichier dans la même branche, mais plus bas, comme ceci: fichier ../../myOriginFolder/itsSubfolder/my name.pdf

Une fois que je la branche renommé, maintenant mon repo est rompu à l'aide TortoiseSVN 1.7.8 (ou sa ligne de commande SVN 1.7.6). L'ancienne copie de travail ne peut pas être mise à jour correctement après son basculement, pas plus que je ne peux extraire une nouvelle copie de l'ancienne branche! Toutes les commandes - checkout-old-revision, update-to-old-revision et switch-and-update - échoueront. La seule chose qui fonctionne est de faire une nouvelle caisse, puis d'avancer, jamais de retour.

Cela semble être un très mauvais bug! Cela signifie que en raison de mon utilisation des chemins externes relatifs, je ne peux plus renommer/passer/inverser mes branches.

Je me demande si quelqu'un a vu cela et a une solution de contournement? Je me demande si je devrais coder en dur ces références. Même cela pourrait être mieux que cet échec.

Je me demande également si le correctif référencé ci-dessus peut maintenant échouer car entre 1,6 et 1,7 le format de copie de travail a été changé. Maintenant, il n'y a qu'un seul fil d'Ariane de niveau supérieur; peut-être que cela pourrait se rapporter à la question? Si je pouvais toujours vérifier ce dossier, je comparerais l'information /.svn/ pour la nouvelle commande du dernier vs pour le nom antérieur.

Voici les détails de l'erreur que je vois. TortoiseSVN dit: Échec de c: \ myRepo-keyword \ myDestinationFolder \ mon nom de fichier.pdf Rapport d'erreur de '/ svn/myrepo /! svn/me': Impossible de lire la taille du bloc: la connexion a été fermée par le serveur.

Le journal des événements Apache/VisualSVN indique; Source: VisualSVN Server 2.5 Date: 21/08/2012 11:20:57 ID d'événement: 4000 Niveau: Informations Description: commutateur/myrepo-Path/myOriginFolder/itsSubfolder/mon fichier name.pdf/mon dossier nom.pdf/myRepo-Path/mySubfolder/mon fichier [email protected]

Voici l'erreur d'une nouvelle extraction du dossier externe-ed d'une révision antérieure au renommer. externe a échoué: C: \ VcsSvn \ 3.7.8.6328.RuntimeRefs \ Stroz Critique User Guide.pdf
Erreur: URL
Erreur: 'http://myurl/svn/myOldRepo-Path/myOriginFolder/itsSuubfolder/my fichier name.pdf'
Erreur: à la révision 7179 n'existe pas
Terminé: À la révision: 6328

// modifier Merci à un autre utilisateur de stackoverflow, j'ai trouvé ce ticket ouvert qui peut être lié; http://subversion.tigris.org/issues/show_bug.cgi?id=4150

// éditer2; Une autre affiche recommande d'éviter les externes: How can I branch in SVN and have it branch my svn:external folders as well?

Questions connexes