Lorsque j'essaie de faire "basculer" pour changer un répertoire vers une autre branche, j'obtiens un étrange message d'erreur.
C'est ainsi que le référentiel est configuré en le regardant depuis le site Web de l'hôte. J'avais l'habitude d'avoir une branche appelée bugfix-lobby-quirks, mais elle a été supprimée après l'avoir fusionnée dans trunk. Ceci et les nouvelles cartes adversaires dans le jeu ont toutes deux été dérivées du tronc.
Maintenant, je veux prendre ma copie de travail extraite "commutée" de la branche supprimée vers cette nouvelle branche. J'ai la branche bugfix-lobby-quirks déjà vérifiée sur mon ordinateur depuis que je travaillais dessus. Ce que je veux faire, c'est changer tout dans ce dossier pour tout dans la nouvelle branche que je choisis, ce qui est bien car ils ne sont pas vraiment tous ça différents. C'est ce que signifie svn switch, non?
Alors je clique sur le bouton et une fenêtre apparaît. Il reconnaît automatiquement la branche et l'affiche dans la liste ici, donc je la choisis.
Malheureusement, cela entraîne à chaque fois ce message d'erreur.
Ce n'est pas un jour heureux. C'est une triste journée.
D'accord. Alors qu'est-ce que je fais mal?
Cliquez sur la case "ignorer l'ascendance" dans la boîte de dialogue du commutateur svn.
Vous pouvez obtenir cela parce que vous tentiez de basculer l'un de vos sous-dossiers au lieu de faire le dossier de niveau supérieur. Autrement dit, vous tentiez de basculer uniquement le dossier tronc/application au lieu de tronc.
Vous pourrez peut-être basculer une supprimé branchez-vous vers une branche active. Pour Subversion, cette branche n'existe plus. (Et comme il n'existe pas, il ne partage aucune ascendance).
Accédez à votre copie de travail de votre branche supprimée et voyez si vous pouvez faire un pdate à la révision avant la suppression de la branche elle-même. Ensuite, essayez l'interrupteur.
Si cela ne fonctionne pas, vous devrez annuler la suppression votre branche. Ce n'est pas difficile depuis la ligne de commande. Disons que votre branche a été supprimée dans la révision 12345:
$ svn co --set-depth=immediates $URL/branches # Checks out just branch names
$ cd branches
$ svn merge -c -12345 . # Removes branch delete
Le --set-depth=immediates
récupérera toutes vos succursales, mais ne récupérera pas les projets en dessous. Ce sera une vérification assez rapide et vous donnera un répertoire de travail de votre /branches
répertoire. Maintenant, vous pouvez faire une fusion inverse de votre suppression et restaurer la branche.
Si vous ne souhaitez pas effectuer d'extraction et de fusion, vous pouvez effectuer une svn cp
où vous copiez la branche de la révision avant sa suppression dans la révision actuelle:
$ svn cp -r12344 $URL/branches/features_in_opponents_cards@12344 $URL/branches
Cela vous permettra de restaurer la branche sans avoir à effectuer de paiement au préalable.