RepoTree: preserve relative paths in copytree() (#4133)

This commit is contained in:
Peter Rowlands (변기호)
2020-06-30 15:09:22 +09:00
committed by GitHub
parent 1c0f5cdf4b
commit c6a024f83b
2 changed files with 6 additions and 3 deletions
+3 -2
View File
@@ -428,11 +428,12 @@ class RepoTree(BaseTree):
for root, _, files in self.walk(top):
root = PathInfo(root)
makedirs(dest, exist_ok=True)
dest_dir = dest / root.relative_to(top)
makedirs(dest_dir, exist_ok=True)
for fname in files:
src = root / fname
with self.open(src, mode="rb") as fobj:
copy_fobj_to_file(fobj, dest / fname)
copy_fobj_to_file(fobj, dest_dir / fname)
@property
def hash_jobs(self):
+3 -1
View File
@@ -55,7 +55,9 @@ def test_get_git_dir(tmp_dir, erepo):
src = "some_directory"
dst = "some_directory_imported"
erepo.scm_gen({src: {"file.txt": "hello"}}, commit="add a regular dir")
erepo.scm_gen(
{src: {"dir": {"file.txt": "hello"}}}, commit="add a regular dir"
)
Repo.get(os.fspath(erepo), src, dst)