Thank you for your detailed reply.
>>>>> Tim Cross <theophil...@gmail.com> writes: > Colin Baxter <m43...@yandex.com> writes: >> Recently, if I use C-c C-x ! to refresh org-mode after a git >> pull, I get an error. I then have to close down emacs and launch >> again. This rather defeats the object of C-c C-x !. This appears >> to have happened only recently ----------------- snip --------------------------------- > I wasn't aware that command even existed. However, I suspect it > will cause issues in your use case. I'm not sure it is a good > command to actually have given the complexities associated with > getting a clean org build. > In many cases, you may not run into issues - especially if you do > a git pull frequently. However, I can see various scenarios which > will lead to inconsistent builds. I suspect the error you are > seeing is the result of recent work to try and identify builds > which are likely to result in an inconsistent 'mixed' version > build. That could well be the case here because the technique used to work up until quite recently (~2 weeks) > Detecting such scenarios is difficult and relies on a > number of heuristics, one of which is to flag a problem if the > loaded version and the target build version don't match. > A lot would depend on how you build (re-compile) org mode after > doing a git pull. If you compile it in a separate Emacs instance, > you should have less issues and reloading after the build will > likely work. However, if your trying to build org mode within the > running Emacs where you have already loaded org mode, I suspect > you will run into issues. You have a slight 'chicken and egg' > issue and will run into similar issues as the common mixed build > problems. Normally, I use `M-x vc-dir' to update from git, then `M-x compile' followed by `make clean' and `make'. Finally, update org-mode in the same emacs with an org-mode buffer present. As I said, it used to work well. > One thing which might work would be to ensure you run the reload > command with the option to load from uncompiled sources BEFORE you > run the build process and then re-run the load command after the > build (loading compiled versions this time). Yes, I will try that. And I will also ring all the other changes to see what happens --- if anything. > I have no idea how things might break given the new native > compilation modes in Emacs. I suspect it will cause all sorts of > issue with your workflow. I have avoided problems here by not using native compilation. I did try it once in the past, but I didn't think it was worth the candle since frankly I didn't notice any change in emacs performance, possibly because I only do simple things with emacs. > Personally, I always update org in a fresh instance of Emacs > (before any org functionality is loaded) and I would always > restart Emacs after updating a major packages like org mode. I'm > not sure why we have the reload command - I suspect it may be a > hang over from earlier attempts to work around the mixed build > problem. I do suspect that given new native compilation modes and > the additional complexity ths can cause, combined with increasing > org mode complexity, the notion of being able to pull down a new > version, build and reload it within one emacs instance is perhaps > flawed or at the very least, is more complex than just forcing a > reload of org *.elc files. Indeed. Emacs seems to have became a rather complex beast in recent years. Perhaps it was ever thus. Best wishes, Colin.