do.go | 4 ++-- doc/news.texi | 9 +++++++++ t/goredo-default.do.t | 17 +++++++++++++++++ diff --git a/do.go b/do.go index 3daea1dd0cacf2c5ac40640972734ce57fc0bef3ef444f6e122cb6bd61ddcda3..3cce3a4c32fb719bbebe190505a94fa6ea8209b244545b04fe5dc2cc6cb98207 100644 --- a/do.go +++ b/do.go @@ -60,7 +60,7 @@ for len(exts) > 0 { doFile = strings.Join(append( []string{"default"}, append(exts, "do")..., ), ".") - if len(levels) > 0 || doFile != doFileOrig { + if len(levels) > 0 || (doFile != doFileOrig && doFile != tgt) { exists, err = existsDo(fdDep, cwd, path.Join(updir, doFile)) if err != nil { return "", 0, err @@ -72,7 +72,7 @@ } exts = exts[1:] } doFile = "default.do" - if len(levels) > 0 || doFile != doFileOrig { + if len(levels) > 0 || (doFile != doFileOrig && doFile != tgt) { exists, err = existsDo(fdDep, cwd, path.Join(updir, doFile)) if err != nil { return "", 0, err diff --git a/doc/news.texi b/doc/news.texi index c907f128c8dfce0b214553d665de025b02b2cab880e595b138e97a8cade35d04..1471d26fd037dab0cb3f09f55cc145fbf376c946bfa9381efb2e0011a1cb1d47 100644 --- a/doc/news.texi +++ b/doc/news.texi @@ -1,6 +1,15 @@ @node News @unnumbered News +@anchor{Release 1_19_0} +@section Release 1.19.0 +@itemize +@item + Skip target itself, when searching for corresponding @file{.do} + file. For example @file{default.do} must use @file{../default.do} + instead of the self. +@end itemize + @anchor{Release 1_18_0} @section Release 1.18.0 @itemize diff --git a/t/goredo-default.do.t b/t/goredo-default.do.t new file mode 100755 index 0000000000000000000000000000000000000000..131bb6fb0a1dfcd13f39b9d629f57f6fc7f9393b9e5fc55d7ac2aba2dfbbe2b9 --- /dev/null +++ b/t/goredo-default.do.t @@ -0,0 +1,17 @@ +#!/bin/sh + +testname=`basename "$0"` +test_description="Building of default.do must not depend on itself" +. $SHARNESS_TEST_SRCDIR/sharness.sh +export REDO_TOP_DIR="`pwd`" REDO_NO_PROGRESS=1 + +mkdir foo +echo echo echo ok > default.do +redo foo/default.do +test_expect_success "repeated" "redo foo/default.do" +test_expect_success "repeated again" "redo foo/default.do" +redo foo/bar +bar=`cat foo/bar` +test_expect_success "default is fine" '[ "$bar" = "ok" ]' + +test_done