Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Erroneous Exclusion of Hidden Files and Folders in --output-dir-mirror #3963

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 0 additions & 3 deletions programs/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -1119,9 +1119,6 @@ static char* mallocAndJoin2Dir(const char *dir1, const char *dir2)
memcpy(outDirBuffer, dir1, dir1Size);
outDirBuffer[dir1Size] = '\0';

if (dir2[0] == '.')
return outDirBuffer;

buffer = outDirBuffer + dir1Size;
if (dir1Size > 0 && *(buffer - 1) != PATH_SEP) {
*buffer = PATH_SEP;
Expand Down
49 changes: 49 additions & 0 deletions tests/cli-tests/file-handling/directory-mirror.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/sh
set -e

# setup
mkdir -p src/.hidden src/dir
mkdir mid dst

echo "file1" > src/file1
echo "file2" > src/.file2
echo "file3" > src/.hidden/.file3
echo "file4" > src/dir/.file4

# relative paths
zstd -q -r --output-dir-mirror mid/ src/
zstd -q -d -r --output-dir-mirror dst/ mid/src/

diff --brief --recursive --new-file src/ dst/mid/src/

# reset
rm -rf mid dst
mkdir mid dst

# from inside the directory
(cd src; zstd -q -r --output-dir-mirror ../mid/ ./)
(cd mid; zstd -q -d -r --output-dir-mirror ../dst/ ./)

diff --brief --recursive --new-file src/ dst/

# reset
rm -rf mid dst
mkdir mid dst

# absolute paths
export BASE_PATH="$(pwd)"

zstd -q -r --output-dir-mirror mid/ "${BASE_PATH}/src/"
zstd -q -d -r --output-dir-mirror dst/ "${BASE_PATH}/mid/${BASE_PATH}/src/"

diff --brief --recursive --new-file src/ "dst/${BASE_PATH}/mid/${BASE_PATH}/src/"

# reset
rm -rf mid dst
mkdir mid dst

# dots
zstd -q -r --output-dir-mirror mid/ ./src/./
zstd -q -d -r --output-dir-mirror dst/ ./mid/./src/./

diff --brief --recursive --new-file src/ dst/mid/src/
Empty file.
Empty file.