}
depInfo := DepInfo{}
if b := m["Build"]; b == "" {
- return nil, errors.New(".dep missing Build:")
+ return nil, errors.New(".rec missing Build:")
} else {
depInfo.build = b
}
case DepTypeIfcreate:
dep := m["Target"]
if dep == "" {
- return nil, errors.New("invalid format of .dep")
+ return nil, errors.New("invalid format of .rec")
}
depInfo.ifcreates = append(depInfo.ifcreates, dep)
case DepTypeIfchange:
case DepTypeStamp:
hsh := m["Hash"]
if hsh == "" {
- return nil, errors.New("invalid format of .dep")
+ return nil, errors.New("invalid format of .rec")
}
depInfo.stamp = hsh
default:
- return nil, errors.New("invalid format of .dep")
+ return nil, errors.New("invalid format of .rec")
}
}
return &depInfo, nil
@url{https://en.wikipedia.org/wiki/DOT_(graph_description_language), DOT}
graph generator. For example to visualize your dependencies with GraphViz:
@example
-$ redo target [...] # to assure that **/.redo/*.dep are filled up
+$ redo target [...] # to assure that **/.redo/*.rec are filled up
$ redo-dot target [...] > whatever.dot
$ dot -Tpng whatever.dot > whatever.png # possibly add -Gsplines=ortho
@end example
Skein/BLAKE[23] algorithms demonstrate us.
@command{goredo} includes @command{redo-stamp}, that really records the
-stamp in the @file{.dep} file, but it does not play any role later. It
+stamp in the @file{.rec} file, but it does not play any role later. It
is stayed just for compatibility.
@section Can removed .do lead to permanent errors of its non existence?
have no confidence in such behaviour. So it is user's decision how to
deal with it, probably it was just his inaccuracy mistake. If you really
want to get rid of that dependency knowledge for @file{foo/bar} target,
-then just remove @file{foo/.redo/bar.dep}.
+then just remove @file{foo/.redo/bar.rec}.
@section Does redo-always always rebuilds target?
@node News
@unnumbered News
+@anchor{Release 1.2.0}
+@section Release 1.2.0
+@itemize
+@item
+ Dependency files @file{.dep} extension changed to @file{.rec}, to
+ reflect its recfile format nature and editors file type better
+ determination.
+@end itemize
+
@anchor{Release 1.1.0}
@section Release 1.1.0
@itemize
Dependency and build state is kept inside @file{.redo} subdirectory in
each directory related the build. Each corresponding target has its own,
-recreated with every rebuild, @file{.dep} file. It is
+recreated with every rebuild, @file{.rec} file. It is
@url{https://www.gnu.org/software/recutils/, recfile}, that could have
various dependency information. For example:
for _, m := range depInfo.ifchanges {
dep := m["Target"]
if dep == "" {
- return ood, TgtErr{tgtOrig, errors.New("invalid format of .dep: missing Target")}
+ return ood, TgtErr{tgtOrig, errors.New("invalid format of .rec: missing Target")}
}
theirInode, err := inodeFromRec(m)
if err != nil {
- return ood, TgtErr{tgtOrig, fmt.Errorf("invalid format of .dep: %v", err)}
+ return ood, TgtErr{tgtOrig, fmt.Errorf("invalid format of .rec: %v", err)}
}
theirHsh := m["Hash"]
trace(CDebug, "ood: %s%s -> %s: checking", indent, tgtOrig, dep)
RedoDir = ".redo"
LockSuffix = ".lock"
- DepSuffix = ".dep"
+ DepSuffix = ".rec"
TmpPrefix = ".redo."
LogSuffix = ".log"
)
fdDep, err := os.Open(path.Join(redoDir, tgt+DepSuffix))
if err != nil {
if os.IsNotExist(err) {
- err = errors.New("was not built: no .dep")
+ err = errors.New("was not built: no .rec")
}
goto Finish
}
return nil
}
- // Start preparing .dep
+ // Start preparing .rec
fdDep, err := tempfile(redoDir, tgt+DepSuffix)
if err != nil {
lockRelease()
}
}
- // Commit .dep
+ // Commit .rec
if !NoSync {
err = fdDep.Sync()
if err != nil {
stat2=`stat sub/index.html`
test_expect_success "Was not rebuild" '[ "$stat1" = "$stat2" ]'
-tgts=`sed -n "s/^Target: //p" sub/.redo/index.html.dep | sort`
+tgts=`sed -n "s/^Target: //p" sub/.redo/index.html.rec | sort`
tgts=`echo $tgts`
tgts_expected="../default.html.do" # .do itself
tgts_expected="$tgts_expected default.do" # ifcreate
)
const (
- Version = "1.1.0"
+ Version = "1.2.0"
Warranty = `This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3 of the License.