Make more tests pass on Windows.

Also fix a few issues found along the way.

Tests had regressed a lot. Add a lot of tweaks to make most test pass.

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6792060

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@80618 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/scm.py b/scm.py
index 67dd747..31b18f6 100644
--- a/scm.py
+++ b/scm.py
@@ -74,14 +74,16 @@
   """
   if os.path.isdir(os.path.join(root, '.svn')):
     return 'svn'
-  elif os.path.isdir(os.path.join(root, '.svn')):
+  elif os.path.isdir(os.path.join(root, '.git')):
     return 'git'
   else:
-    if (0 == subprocess.call(
+    try:
+      subprocess2.check_output(
           ['git', 'rev-parse', '--show-cdup'],
-          stdout=subprocess.PIPE, cwd=root)):
+          stdout=subprocess2.VOID,
+          cwd=root)
       return 'git'
-    else:
+    except (OSError, subprocess2.CalledProcessError):
       return None