TBR: jiri: Fix GitHooks path.

The project.GitHooks path is relative to JIRI_ROOT/<op.root>.

Fixes https://github.com/vanadium/issues/issues/1062

Change-Id: I1f2657b23efc2132195d6d787ec8543ee61f1d8f
diff --git a/project/project.go b/project/project.go
index d8ee156..85421c1 100644
--- a/project/project.go
+++ b/project/project.go
@@ -1810,8 +1810,9 @@
 		// overriding existing hooks.  Customizing your git hooks with jiri is a bad
 		// idea anyway, since jiri won't know to not delete the project when you
 		// switch between manifests or do a cleanup.
-		gitHookDir := filepath.Join(tmpDir, ".git", "hooks")
+		gitHooksDstDir := filepath.Join(tmpDir, ".git", "hooks")
 		if op.project.GitHooks != "" {
+			gitHooksSrcDir := filepath.Join(jirix.Root, op.root, op.project.GitHooks)
 			// Copy the specified GitHooks directory into the project's git
 			// hook directory.  We walk the file system, creating directories
 			// and copying files as we encounter them.
@@ -1819,11 +1820,11 @@
 				if err != nil {
 					return err
 				}
-				relPath, err := filepath.Rel(op.project.GitHooks, path)
+				relPath, err := filepath.Rel(gitHooksSrcDir, path)
 				if err != nil {
 					return err
 				}
-				dst := filepath.Join(gitHookDir, relPath)
+				dst := filepath.Join(gitHooksDstDir, relPath)
 				if info.IsDir() {
 					return s.MkdirAll(dst, perm).Done()
 				}
@@ -1833,7 +1834,7 @@
 				}
 				return s.WriteFile(dst, src, perm).Done()
 			}
-			if err := filepath.Walk(filepath.Join(op.root, op.project.GitHooks), copyFn); err != nil {
+			if err := filepath.Walk(gitHooksSrcDir, copyFn); err != nil {
 				return err
 			}
 		}