Ihor Radchenko <p...@gwene.org> writes: > - weary-traveler asked to add a new feature to Org publishing system. > > The use case is publishing using CI tasks, where a new, fresh image > is created every time a website is re-published. Such image does > not preserve the original modification times of the source Org > files, making Org publish re-generate everything every single time. > > The new suggested feature is (optionally) using last git commit time > instead of file modification time.
> - Conclusion: the feature request is to be submitted to mailing list > for more detailed discussion. The requested feature is for the notion of "modification time" to be configurable by the user. Even in the specific situation quoted above, different users may desire different alternative notions of "modification time". For instance, - the value of the DATE keyword - if using git as vc, the "git author date" - if using git as vc, the "git commit date" It would help for the notion of "modification time" (currently hard-coded as file-attribute-modification-time ) to be configurable in the following functions: - org-publish-cache-mtime-of-src: this is used to decide whether or not a particular file needs to be republished. I.e., the function at the heart of the motivating situation discussed during the meetup. - org-publish-find-date: this is used during the publishing of sitemaps where the modification time is used as the default value (for directories the filesystem modification time is the only value ever used). The user-supplied "modification time" function would take the FILE as an input and its output would be in the style of `current-time'. A default value could be provided for above cases which preserves current semantics. Additional inputs to such a "modification time" function that may be helpful (though may not be necessary) are the PROJECT-PLIST and the PUB-DIR. > - Org already has somewhat similar functionality in a form of > ={{{modification-time ...}}}= macro. See > [[info:org#Macro Replacement][org#Macro Replacement]] section > of Org manual. I believe the modification-time macro for git uses the "author date". This may not always be the desirable "vc-modification-time" notion. However, when it's not, the user has the freedom to create (and use) their own macro. > - Also, several other places in Org are relying on file modification > time and might need to be considered. org-html-format-spec is one such place that may additionally benefit. However, in that case it may be sufficient to simply mirror what's done for the modification-time macro. I.e., consider only one notion of "vc-modification-time" and have it be the "author date" semantics. -- Suhail