Pourquoi faut-il prendre beaucoup de temps pour changer de répertoire après l'installation RVM
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?
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.