Let git cl format be runnable outside of the root

This will also enable git cl format to be more easily runnable by
presubmit within a subdirectory.

BUG=none

Review URL: https://codereview.chromium.org/108353005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@239821 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index bad3e65..c401f0e 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -2248,6 +2248,12 @@
   if args:
     parser.error('Unrecognized args: %s' % ' '.join(args))
 
+  # git diff generates paths against the root of the repository.  Change
+  # to that directory so clang-format can find files even within subdirs.
+  rel_base_path = RunGit(['rev-parse', '--show-cdup']).strip()
+  if rel_base_path:
+    os.chdir(rel_base_path)
+
   # Generate diff for the current branch's changes.
   diff_cmd = ['diff', '--no-ext-diff', '--no-prefix']
   if opts.full: