]> Cypherpunks.ru repositories - goredo.git/blobdiff - doc/faq.texi
Ability to rely on mtime, instead of ctime
[goredo.git] / doc / faq.texi
index 3bf832ef88541374f3df71b35688a9bacc90a231..1e399a0b2366ee68fececc93785982a8174dd3da 100644 (file)
@@ -4,9 +4,9 @@
 @anchor{Stamping}
 @section Hashing and stamping
 
-All targets are checksummed if target's @file{ctime} differs from the
-previous one, or @env{REDO_INODE_NO_TRUST} environment variable is set.
-@command{apenwarr/redo} gives
+All targets are checksummed if target's size, @code{ctime}/@code{mtime}
+differs from the previous one (depending on @ref{OOD, @env{$REDO_INODE_TRUST}}
+value). @command{apenwarr/redo} gives
 @url{https://redo.readthedocs.io/en/latest/FAQImpl/#why-not-always-use-checksum-based-dependencies-instead-of-timestamps, many reasons}
 why every time checksumming is bad, but in my opinion in practice all of
 them do not apply.
@@ -19,10 +19,8 @@ them do not apply.
 @item If you really wish to produce an empty target file, just touch @file{$3}
 @end itemize
 
-DJB's proposal with both @file{stdout} and @file{$3} gives that ability
-to control your desired behaviour. Those who do not capture
-@file{stdout} -- failed. Those who create an empty file if no
-@file{stdout} was written -- failed.
+Those who create an empty file if no @file{stdout} was written -- failed
+implementation.
 
 redo is a tool to help people. Literally all targets can be safely
 @code{redo-stamp < $3}-ed, reducing false positive out-of-dates. Of
@@ -56,7 +54,7 @@ then just remove @file{foo/.redo/bar.rec}.
 
 @section Does redo-always always rebuilds target?
 
-By definition, it should be build always, as
+By definition, it should be built always, as
 @url{http://news.dieweltistgarnichtso.net/bin/redo-sh.html#why-built-twice,
 redo-sh} and @command{redo-c} implementations do. But that ruins the
 whole redo usability, potentially rebuilding everything again and again.
@@ -79,7 +77,7 @@ Building of the lower level OOD target first is unfair and dishonest
 thing to do, because probably top level target, being the OOD, won't be
 dependant on lower level target anymore at all. Actually @command{goredo}
 does this as a shameful hack and only for always-targets, still existing
-in the wild. The whole @command{redo-always} idea is wrong.
+in the wild. The whole @command{redo-always} idea is considered harmful.
 
 If you wish to run something and decide if it must OOD the toplevel
 targets, then just run @command{redo} to forcefully rebuild it and then