shelve: allow --patch and --stat without --list for a single shelf
It's annoying having to specify --list and --patch/--stat when all you
really want to do is to dump a patch. This creates an explicit
--patch/--stat command that is executed if --list is not specified. It
ensures that 1) there is only one shelf name specified and 2) that the
shelf exists. Then it redirects to the original listcmd code.
#!/usr/bin/env python
__doc__ = """Same as `echo a >> b`, but ensures a changed mtime of b.
Without this svn will not detect workspace changes."""
import sys, os
text = sys.argv[1]
fname = sys.argv[2]
f = open(fname, "ab")
try:
before = os.fstat(f.fileno()).st_mtime
f.write(text)
f.write("\n")
finally:
f.close()
inc = 1
now = os.stat(fname).st_mtime
while now == before:
t = now + inc
inc += 1
os.utime(fname, (t, t))
now = os.stat(fname).st_mtime