make_file: always return a fresh file handle that can be closed
Currently, cmdutil.make_file() will return a freshly made file handle,
except when given a pattern of '-'. If callers would want to close the
handle, they would have to make sure that it's neither sys.stdin or
sys.stdout. Instead, returning a duplicate of either of the two
ensures that make_file() lives up to its name and creates a new
file handle regardless of the input.
$ "$TESTDIR/hghave" inotify || exit 80
$ hg init
$ echo "[extensions]" > .hg/hgrc
$ echo "inotify=" >> .hg/hgrc
$ hg inserve -d --pid-file .hg/inotify.pid
$ echo a > a
$ hg ci -Aqm0
$ hg co -q null
$ hg co -q
$ hg st
$ cat a
a
$ kill `cat .hg/inotify.pid`