git-smart
git-smart copied to clipboard
Fix smart-pull hanging when remote repository is up to date.
Running git fetch <remote>
in git 1.8+ outputs nothing to STDOUT or STDERR if the remote is up-to-date. By changing the fetch command to use --verbose, we ensure something is always output when git fetch runs, even if the remote is up-to-date. This will prevent the IO.pipe from hanging when executing the git fetch command.
For bonus points, I switched to using Open3#popen2e instead of using Kernel#exec. Now the handling of sub-processes is abstracted away, and we can wait for, read and handle the exit status of the process more deterministically.