Que dois-je faire avec le répertoire des fournisseurs en ce qui concerne la subversion?

StackOverflow https://stackoverflow.com/questions/119006

  •  02-07-2019
  •  | 
  •  

Question

J'ai donc un problème. J'ai vérifié mes pierres précieuses gelées et mes rails même si tu n'étais pas censé le faire. Je pensais que c'était facile et que ça ne serait pas un gros problème de toute façon. Eh bien, plus tard, j'ai mis à jour rails et, ce faisant, j'ai supprimé tous les fichiers .svn des répertoires vendor / rails. J'ai entendu dire que ce que je devrais faire, c'est simplement faire quelque chose à faire avec svn: externals dans mon répertoire de fournisseurs. Qu'est-ce que je dois faire exactement et Capistrano utilisera-t-il toujours mes pierres précieuses congelées si elles ne sont pas dans mon repo? S'il ne veut pas utiliser mes gemmes figées, comment puis-je régénérer correctement ces fichiers .svn, car cela se produira à nouveau .

Merci!

Était-ce utile?

La solution

  1. Pour récupérer vos .svn répertoires supprimés, exécutez simplement un svn update. Ils reviendront.

  2. Je viens d’archiver les gemmes exportées. J'utilise gem unpack <gemname> dans le répertoire vendor/gems et svn add et commit à partir de là.

  3. Quelque chose dans vendor/plugins ou vendor/rails je suis en utilisant un piston. Par exemple, voici comment je place les rails ici:

    % piston import http://dev.rubyonrails.org/svn/rails/tags/rel_2-0-2/ vendor/rails

Pour obtenir un piston, utilisez gem install piston.

Note Je vais devoir trouver une solution différente / meilleure pour remplacer piston car Rails continue à utiliser git et risque de ne pas mettre à jour le référentiel de subversion.

Autres conseils

Personnellement, je préfère utiliser Piston pour gérer le répertoire des fournisseurs.

Je devrais déconseiller svn: externals pour deux raisons

  1. vous êtes en train de déployer dans un environnement qui ne peut pas atteindre ces services svn

  2. que se passe-t-il lorsque vous souhaitez déployer et que les svn external sont en panne?

Mon conseil est d'utiliser le décompression piston ou bijou et de gérer vos dépendances de production dans votre arborescence des fournisseurs.

Clause de non-responsabilité: je ne connais pas Ruby / Rails, je ne sais donc pas ce que sont les gemmes congelées (bien que je suppose qu'elles sont des fichiers binaires compilés ou une source symbolisée), mais je connais bien Subversion.

Les répertoires

.svn ne contiennent que Subversion & "; comptabilité <<>>.". Il n'y a rien là-dedans qui soit irrécupérable.

La suppression de vos fichiers .svn ne pose aucun problème. Si les répertoires avec les répertoires manquants .svn se trouvent quelque part dans une arborescence de répertoires de votre copie de travail de subversion (le répertoire dans lequel vous avez effectué votre extraction), supprimez ces répertoires, effectuez une mise à jour svn et ils seront recréés.

Si tous les fichiers .svn sont manquants dans l’arborescence, supprimez-les et effectuez une nouvelle vérification svn.

svn: externals est comme un & "lien symbolique &"; Vous avez le projet A et le projet B, qui utilisent le projet A. Ce que vous faites est d'ajouter une propriété svn: external qui fait référence au répertoire de bibliothèque du projet A. Ainsi, chaque fois que vous extrayez le projet B, il sera automatiquement placé dans le répertoire de la bibliothèque du projet A. en elle. Par exemple, j'ai souvent un répertoire appelé & Quot; thirdparty & Quot; qui contient les références externes aux bibliothèques d’ailleurs, y compris evn: références externes à d’autres projets de Subversion.

Une astuce pour résoudre des problèmes de version comme celui-ci consiste à créer des répertoires de version distincts pour les bibliothèques (ou les gems gelés). Pour les projets qui en ont besoin, utilisez une référence svn: external au répertoire de version approprié. Au fur et à mesure que de nouvelles versions sortent, modifiez simplement la propriété svn: external pour qu'elle pointe vers le nouveau répertoire de publication et svn update.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top