Pourquoi faut-il prendre beaucoup de temps pour changer de répertoire après l'installation RVM

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

  •  22-09-2019
  •  | 
  •  

Question

Je viens d'installer RVM et il semble la commande cd prend un couple supplémentaire de secondes, pourquoi est ce qui se passe? Est-ce qu'il y a un moyen de réparer ceci?

Était-ce utile?

La solution

Cela a été résolu dans 0.1.39 et versions ultérieures de RVM. Le comportement maintenant des sources que le fichier .rvmrc lorsque vous entrez pour la première fois une arborescence de répertoires de projets. des CD ultérieures effectuées dans cet arbre de répertoire ne lit pas le fichier .rvmrc. Si vous vous trouvez en sautant constamment dans et hors de vos projets arborescence, je vous conseille d'utiliser plusieurs terminaux:)

Un autre avantage de ceci est que vous pouvez maintenant mettre plus d'actions chronophages, comme assurer toutes vos pierres précieuses dans votre gemset sont à jour, en .rvmrc pour maintenir votre projet sans vous coûter du temps à chaque fois que vous cd.

Pour obtenir la dernière version de RVM, exécutez: mise à jour de RVM --head

Une fois qui est installé, tous les nouveaux obus auront le meilleur comportement -. Pour les coques existantes que vous ne voulez pas fermer, vous pouvez exécuter « reload RVM » pour fournir le nouveau comportement

Cordialement, -Dennis

Autres conseils

Cela se produit parce que sources d'un fichier qui intercepte l'opération de cd.

prompt:$ cat ~/.rvm/scripts/cd
#!/usr/bin/env bash

# Source a .rvmrc file in a directory after changing to it, if it exists.
 cd() {
   builtin cd "$@"
   if [[ "$rvm_project_rvmrc" != 0 ]] ; then
     local cwd ; cwd=$(pwd)
     while : ; do
       if [[ -z "$cwd" ]] || [[ "$HOME" = "$cwd" ]] || [[ "/" = "$cwd" ]] ; then
         if [[ "$rvm_project_rvmrc_default" != 0 ]] ; then
           rvm default 1>/dev/null 2>&1
         fi
         break
       else
         if [[ -f "$cwd/.rvmrc" ]] ; then
           source "$cwd/.rvmrc"
           break
         else
           cwd=$(dirname "$cwd")
         fi
       fi
     done
   fi
 }

Ce fichier vérifie pour un fichier .rvmrc dans le répertoire que vous changez pour, et mettre en place un environnement. De cette façon, vous pouvez avoir dir Une course sous Ruby 1.8 et exécutez dir B sous Ruby 1.9.

Si vous êtes heureux de faire disparaître cette commodité, vous pouvez commenter ce fichier et être fait avec commutation de répertoire lent.

Sinon, vous pouvez contribuer un patch qui effectue une mise en cache donc c'est rapide.

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