This is mainly achieved by checking the file arguments with
git-ls-files. The patch solves two main issues - the refresh/diff/st
can run properly in subdirectories and commands like diff and status
may no longer get nonexistent files as arguments without complaining.
If one wants to check the status/diff or refresh the files in a
subdirectory, the command arguments should be "." and this is expanded
by git-ls-files to the subdirectory content (recursively).
The patch removes some asserts as they are no longer needed since
checks are performed by git-ls-files.
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>