Make rel_repo_dir robust on windows when cwd and the repo are on different drives

This commit is contained in:
Paul Gauthier 2023-07-11 08:40:30 -07:00
parent 59a54f5f83
commit 73f5fb05e5

View file

@ -160,7 +160,7 @@ class Coder:
self.abs_fnames = set([str(Path(fname).resolve()) for fname in fnames]) self.abs_fnames = set([str(Path(fname).resolve()) for fname in fnames])
if self.repo: if self.repo:
rel_repo_dir = os.path.relpath(self.repo.git_dir, os.getcwd()) rel_repo_dir = self.get_rel_repo_dir()
self.io.tool_output(f"Git repo: {rel_repo_dir}") self.io.tool_output(f"Git repo: {rel_repo_dir}")
else: else:
self.io.tool_output("Git repo: none") self.io.tool_output("Git repo: none")
@ -210,6 +210,12 @@ class Coder:
self.root = utils.safe_abs_path(self.root) self.root = utils.safe_abs_path(self.root)
def get_rel_repo_dir(self):
try:
return os.path.relpath(self.repo.git_dir, os.getcwd())
except ValueError:
return self.repo.git_dir
def add_rel_fname(self, rel_fname): def add_rel_fname(self, rel_fname):
self.abs_fnames.add(self.abs_root_path(rel_fname)) self.abs_fnames.add(self.abs_root_path(rel_fname))
@ -265,7 +271,7 @@ class Coder:
new_files.append(relative_fname) new_files.append(relative_fname)
if new_files: if new_files:
rel_repo_dir = os.path.relpath(self.repo.git_dir, os.getcwd()) rel_repo_dir = self.get_rel_repo_dir()
self.io.tool_output(f"Files not tracked in {rel_repo_dir}:") self.io.tool_output(f"Files not tracked in {rel_repo_dir}:")
for fn in new_files: for fn in new_files: