X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/16e951065e43cd3217f77541184b2d07492a1e70..ba682e0f9a55ffd74584aa3b8abb0087c7762317:/doc/forum/How_does_ikiwiki_remember_times__63__.mdwn diff --git a/doc/forum/How_does_ikiwiki_remember_times__63__.mdwn b/doc/forum/How_does_ikiwiki_remember_times__63__.mdwn index ff588fe6c..6ce576db1 100644 --- a/doc/forum/How_does_ikiwiki_remember_times__63__.mdwn +++ b/doc/forum/How_does_ikiwiki_remember_times__63__.mdwn @@ -24,3 +24,86 @@ Do I have it right? > true modification times out of the VCS, but I haven't found it a big > deal in practice for the last modification times to be updated to the > current time when rebuilding a wiki like this. --[[Joey]] +> +> > Thanks for the clarification. I ran some tests of my own to make sure I understand it right, and I'm satisfied +> > that the order of posts in my blog can be retrieved from the VCS using the `--getctime` option, at least if I +> > choose to order my posts by creation time rather than modification time. But I now know that I can't rely on +> > page modification times in ikiwiki as these can be lost permanently. +> > +> > I would suggest that there should at least be a `--getmtime` option like you describe, and perhaps that +> > `--getctime` and `--getmtime` be _on by default_. In my opinion the creation times and modification times of +> > pages in ikiwiki are part of the user's content and are important to protect, because the user may be relying +> > on them, especially if they use blogging or lists of recently modified pages, etc. Right now the modification +> > times can be lost permanently. +> > +> > Is there a typo in the description of `--getctime` in the man page? +> > +> > > --getctime +> > > Pull **last changed time** for each new page out of the revision +> > > control system. This rarely used option provides a way to get +> > > the real creation times of items in weblogs, such as when build‐ +> > > ing a wiki from a new Subversion checkout. It is unoptimised and +> > > quite slow. It is best used with --rebuild, to force ikiwiki to +> > > get the ctime for all pages. +> > +> > Surely it is not the _last changed time_ but the _first seen time_ of each page that is pulled out of the VCS? +> > If the aim is to get the real creation times of items in weblogs, then the last times that the items were +> > changed in the VCS is not going to help. -- [[seanh]] +>>> Typo, fixed. --[[Joey]] + +> > > If you want to preserve the date of a page, the best way to do it is to +> > > use [[ikiwiki/directive/meta]] date="foo". This will survive checkouts, +> > > VCS migrations, etc. -- [[Jon]] +> > > +> > > > That's a good tip Jon. That would also survive renaming a page by renaming its mdwn file, which would +> > > > normally lose the times also. (And in that case I think both times are irretrievable, even by +> > > > `--getctime`). I might start using a simple script to make blog posts that creates a file for +> > > > me, puts today's date in the file as a meta, and opens the file in my editor. -- [[seanh]] + +>>>>> I use a script that does that and also sets up templates and tags +>>>>> for a new item: + + #!/bin/sh + set -u + set -e + + if [ $# -ne 1 ]; then + echo usage: $0 pagename >&2 + exit 1 + fi + + pagename="$1" + + if [ -e "$pagename" ]; then + echo error: "$pagename" exists >&2 + exit 1 + fi + + date=$(date) + echo '\[[!template id=draft]]' >> "$pagename" + echo "\[[!meta date=\"$date\"]]" >> "$pagename" + echo "\[[!tag draft]]" >> "$pagename" + git add "$pagename" + $EDITOR "$pagename" + +>>>>> -- [[Jon]] + +> A quick workaround for me to get modification times right is the following +> little zsh script, which unfortunately only works for git: + + #!/usr/bin/env zsh + + set +x + + for FILE in **/*(.); do + TIMES="`git log --pretty=format:%ai $FILE`" + MTIME="`echo $TIMES | head -n1`" + + if [ ! -z $MTIME ]; then + echo touch -m -d "$MTIME" $FILE + touch -m -d "$MTIME" $FILE + fi + + done + +> --[[David_Riebenbauer]]