diff --git a/ORGWEBPAGE/Changes.org b/ORGWEBPAGE/Changes.org index 3b00b8dcb..1e6ebcc86 100644 --- a/ORGWEBPAGE/Changes.org +++ b/ORGWEBPAGE/Changes.org @@ -16,6 +16,15 @@ :END: ** Overview +** Incompatible changes +*** New structure for the timestamp directory for org-publish. + The timestamp directory now uses SHA1 hashed versions of the + path to each publishing file. This should be a consistent + and system-independent way to handle things. The change + means that your next publishing command will publish each and + every file again, but just once, until the timestamps are + updated. + ** Details *** New parameters :prefix and :prefix1 for include files diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2935e6cbf..aaad42363 100755 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2008-07-07 Carsten Dominik + + * org-publish.el (org-publish-timestamp-filename): Use + SHA1-encoded file names in the timestamp directory. + 2008-07-05 Carsten Dominik * org-publish.el (org-publish-needed-p): Be verbose about files diff --git a/lisp/org-publish.el b/lisp/org-publish.el index b1aa6777c..f7dbf19ab 100644 --- a/lisp/org-publish.el +++ b/lisp/org-publish.el @@ -297,10 +297,8 @@ If functions in this hook modify the buffer, it will be saved." (defun org-publish-timestamp-filename (filename) "Return path to timestamp file for filename FILENAME." - (while (string-match - (if (eq system-type 'windows-nt) "~\\|/\\|:" "~\\|/") filename) - (setq filename (replace-match "_" nil t filename))) - (concat org-publish-timestamp-directory filename ".timestamp")) + (concat (file-name-as-direcory org-publish-timestamp-directory) + "X" (if (fboundp 'sha1) (sha1 filename) (md5 filename)))) (defun org-publish-needed-p (filename) "Return `t' if FILENAME should be published."