When auto-choosing a .redo dir, prefer ones uphill that already exist.
So if we're in redo/t/ and running 'redo hello', we'll detect redo/.redo and use that one rather than creating a new redo/t/.redo directory. The downside of this is we get slightly different behaviour if the *first* thing you build isn't from the root. Probably that's bad, but it should hopefully be rare.
This commit is contained in:
parent
690d1dd7f0
commit
2e71e20ce2
2 changed files with 9 additions and 2 deletions
3
clean.do
3
clean.do
|
|
@ -1,2 +1,3 @@
|
||||||
rm -f t/hello t/[by]ellow t/*.o *~ .*~ t/*~ t/.*~ *.pyc t/CC t/LD
|
rm -f t/hello t/[by]ellow t/*.o *~ .*~ t/*~ t/.*~ *.pyc t/CC t/LD
|
||||||
rm -rf .redo
|
rm -rf .redo t/.redo
|
||||||
|
|
||||||
|
|
|
||||||
8
redo.py
8
redo.py
|
|
@ -173,7 +173,13 @@ assert(not (opt.ifchange and opt.ifcreate))
|
||||||
|
|
||||||
if not os.environ.get('REDO_BASE', ''):
|
if not os.environ.get('REDO_BASE', ''):
|
||||||
base = os.path.commonprefix([os.path.abspath(os.path.dirname(t))
|
base = os.path.commonprefix([os.path.abspath(os.path.dirname(t))
|
||||||
for t in targets])
|
for t in targets] + [os.getcwd()])
|
||||||
|
bsplit = base.split('/')
|
||||||
|
for i in range(len(bsplit)-1, 0, -1):
|
||||||
|
newbase = '%s/.redo' % '/'.join(bsplit[:i])
|
||||||
|
if os.path.exists(newbase):
|
||||||
|
base = newbase
|
||||||
|
break
|
||||||
os.environ['REDO_BASE'] = base
|
os.environ['REDO_BASE'] = base
|
||||||
mkdirp('%s/.redo' % base)
|
mkdirp('%s/.redo' % base)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue