While git.apply_diff works correctly, the git.switch implementation
doesn't update the index (only the HEAD) and a subsequent 'stg refresh'
would merge all the popped patches into the current one ('stg refresh
--patch' fails in the same way). This patch fixes git.switch to read the
new index (git-read-tree) if keep == True.
Before commit
a77bfa77 (to fix bug #8972), git-apply had the --index
option to automatically update the index but it was failing in many
cases.
The drawback is that a subsequent git-update-index takes longer than
usual, but at least we have a correct behaviour.
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>