I thought I understood how .profile, .bashrc, .login worked, but it has evidently faded from memory. After years of relying on sensible defaults in debian etc., I'm using mercurial/hg for source code management. A big advantage of mercurial is that it does not need to be centrally managed; I can install it in ~/bin. But then I want to use it across an ssh connection, so $PATH has to get setup somehow. I've got that working, using .bashrc.
But I have to manually . ~/.bashrc before I can use mercurial in interactive logins. That's tolerable, but I have to remember to do it before I start up emacs, or else I get the dreaded:
Traceback (most recent call last): File "/Users/connolly/bin/hg", line 10, in ? from mercurial import commands ImportError: No module named mercurial
when I try to use hg/emacs integration. I rely heavily on emacs/cvs integration, and working this out will be critical to moving to hg, for me.
update: Well, I got it working by symlinking .bash_profile to .bashrc; I would have thought I could do it within POSIX-standard facilities, but I can't see how. I guess I can rely on bash being on all the machines I use.