From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?S=C3=A9bastien_Vauban?= Subject: Re: Good way to try new org-mode code? Date: Wed, 30 Jun 2010 23:09:37 +0200 Message-ID: <87y6dwp6r2.fsf@mundaneum.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hi Nathan, Nathan Neff wrote: > I'm using git to track org-mode, and would like to know if there's a way > to switch branches / mess with code in org-mode without having to > run make and make install when I want to test the new code. > > Currently, I have org-mode code in my ~/.emacs.d/src/org > directory, and I add this directory to my load-path in my emacs file: > > ;; Add org-mode to path > (setq load-path (cons "~/.emacs.d/src/org/contrib/lisp" load-path)) > (setq load-path (cons "~/.emacs.d/src/org/lisp" load-path)) > > If I switch branches, or change some code in the above directory, > I don't think the new code is used by emacs unless I run > > make clean && make && sudo make install > > Is there a way to have emacs read the org-mode source code "on the > fly" without having to run make, make install, etc? > > Is there a way to run new code without restarting Emacs? My solution -- since I now want to go deeper in Org (and would like to be a= ble to code, help, test, patch, etc.) -- would not address your last point (no restart of Emacs), but is easy to use. I'm using the following to add subdirectories to the `load-path' variable (see [=C2=B9]): --8<---------------cut here---------------start------------->8--- (defun my/add-to-load-path (this-directory &optional with-subdirs recursive) "Add THIS-DIRECTORY at the beginning of the load-path, if it exists. Add all its subdirectories not starting with a '.' if the optional argument WITH-SUBDIRS is not nil. Do it recursively if the third argument is not nil." (when (and this-directory (file-directory-p this-directory)) (let* ((this-directory (expand-file-name this-directory)) (files (directory-files this-directory t "^[^\\.]"))) ;; completely canonicalize the directory name (*may not* begin with `= ~') (while (not (string=3D this-directory (expand-file-name this-director= y))) (setq this-directory (expand-file-name this-directory))) (message "Adding `%s' to load-path..." this-directory) (add-to-list 'load-path this-directory) (when with-subdirs (while files (setq dir-or-file (car files)) (when (file-directory-p dir-or-file) (if recursive (my/add-to-load-path dir-or-file 'with-subdirs 'recursive) (my/add-to-load-path dir-or-file))) (setq files (cdr files))))))) --8<---------------cut here---------------end--------------->8--- and I'm using: --8<---------------cut here---------------start------------->8--- (defvar local-site-lisp-directory (concat (or (getenv "LOCAL_SHARE") "~/Downloads") "/emacs/site-lisp/") "Name of directory where additional Emacs goodies Lisp files (from the Internet) reside.") (my/add-to-load-path local-site-lisp-directory 'with-subdirs 'recursive) --8<---------------cut here---------------end--------------->8--- to load everything under ~/Downloads/emacs/site-lisp/. Everything but the directories beginning with a dot. So, I could have there: - org-mode-git - .org-mode-6.35 - .org-mode-6.34 for example. And only the current Git version of org-mode would be loaded at Emacs startup. For switching to Org-mode 6.34, just remove the dot in front of the directo= ry name, add a dot to the current Org directory, and relaunch Emacs. Note, though, that I'm considering the use of `.el' files only, not byte compiled ones. But does that make a big difference? Hope this helps. Seb [=C2=B9] http://www.mygooglest.com/fni/dot-emacs.html --=20 S=C3=A9bastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode