1
0
Fork 0
mirror of synced 2024-12-04 14:45:36 -05:00

Compare commits

...

13 commits

Author SHA1 Message Date
2e6f7309f9
Merge 9f852c1ad4 into 6ee9b472d1 2024-11-29 23:13:50 +01:00
Erik Flodin
6ee9b472d1
Merge pull request #507 from AVM-Martin/fix/reset-yadm-work-index
fix(clone): reset index of YADM_WORK
2024-11-29 23:10:35 +01:00
AVM.Martin
ae3a149449
style: use pathspec for consistency 2024-11-26 19:22:18 +07:00
AVM.Martin
85e8c1ddfc
docs: fix comment 2024-11-26 19:21:18 +07:00
AVM.Martin
a7939bec7b
style: join arguments 2024-11-26 19:20:59 +07:00
AVM.Martin
aba434274e
fix(clone): reset index of YADM_WORK 2024-07-21 07:02:49 +07:00
AVM.Martin
12c51e130b
test(clone): run inside YADM_WORK sub-directory
Whenever using `clone` command inside YADM_WORK sub-directory, we need
to checkout the correct repo contents.

Steps to reproduce:

```bash
mkdir $HOME/subdir
cd $HOME/subdir

yadm clone --bootstrap "<repo-url>"
yadm status
```
2024-07-21 07:02:49 +07:00
9f852c1ad4
Fixed issue #455-lowercasing checks on both sides - More POSIX friendly 4 2023-05-30 23:17:59 -04:00
8bfc09c0d8
Fixed issue #455-lowercasing checks on both sides - More POSIX friendly 3 2023-05-30 23:07:14 -04:00
a72c566da8
Fixed issue #455-lowercasing checks on both sides - More POSIX friendly 2 2023-05-30 16:50:47 -04:00
630b677269
Fixed issue #455-lowercasing checks on both sides - More POSIX friendly 2023-05-30 13:40:51 -04:00
6d305b2b80
Fixed issue #455-lowercasing checks on both sides - More POSIX friendly 2023-05-30 13:39:42 -04:00
c6b63cf94b
Fixed issue #455-lowercasing checks on both sides 2023-05-30 13:00:08 -04:00
2 changed files with 36 additions and 3 deletions

View file

@ -326,3 +326,31 @@ def test_no_repo(
def verify_head(paths, branch): def verify_head(paths, branch):
"""Assert the local repo has the correct head branch""" """Assert the local repo has the correct head branch"""
assert paths.repo.join("HEAD").read() == f"ref: refs/heads/{branch}\n" assert paths.repo.join("HEAD").read() == f"ref: refs/heads/{branch}\n"
@pytest.mark.usefixtures("remote")
def test_clone_subdirectory(runner, paths, yadm_cmd, repo_config):
"""Test clone from sub-directory of YADM_WORK"""
# clear out the work path
paths.work.remove()
paths.work.mkdir()
# create sub-directory
subdir = paths.work.mkdir("subdir")
# determine remote url
remote_url = f"file://{paths.remote}"
# run the clone command
args = ["clone", "-w", paths.work, remote_url]
run = runner(command=yadm_cmd(*args), cwd=subdir)
# clone should succeed, and repo should be configured properly
assert successful_clone(run, paths, repo_config)
# ensure that no changes found as this is a clean dotfiles clone
run = runner(command=yadm_cmd("status", "-uno", "--porcelain"), cwd=subdir)
assert run.success
assert run.out == ""
assert run.err == ""

11
yadm
View file

@ -204,6 +204,7 @@ function score_file() {
return return
fi fi
elif [[ "$label" =~ ^(d|distro)$ ]]; then elif [[ "$label" =~ ^(d|distro)$ ]]; then
value=$("${AWK_PROGRAM[0]}" '{print tolower($0)}' <<<"$value")
if [ "${value/\ /_}" = "${local_distro/\ /_}" ]; then if [ "${value/\ /_}" = "${local_distro/\ /_}" ]; then
score=$((score + 4)) score=$((score + 4))
else else
@ -211,6 +212,7 @@ function score_file() {
return return
fi fi
elif [[ "$label" =~ ^(f|distro_family)$ ]]; then elif [[ "$label" =~ ^(f|distro_family)$ ]]; then
value=$("${AWK_PROGRAM[0]}" '{print tolower($0)}' <<<"$value")
if [ "${value/\ /_}" = "${local_distro_family/\ /_}" ]; then if [ "${value/\ /_}" = "${local_distro_family/\ /_}" ]; then
score=$((score + 8)) score=$((score + 8))
else else
@ -853,7 +855,7 @@ function clone() {
rm -rf "$wc" rm -rf "$wc"
# then reset the index as the --no-checkout flag makes the index empty # then reset the index as the --no-checkout flag makes the index empty
"$GIT_PROGRAM" reset --quiet -- . "$GIT_PROGRAM" reset --quiet -- ":/"
if [ "$YADM_WORK" = "$HOME" ]; then if [ "$YADM_WORK" = "$HOME" ]; then
debug "Determining if repo tracks private directories" debug "Determining if repo tracks private directories"
@ -1548,7 +1550,7 @@ function query_distro() {
fi fi
done < "$OS_RELEASE" done < "$OS_RELEASE"
fi fi
echo "$distro" "${AWK_PROGRAM[0]}" '{print tolower($0)}' <<<"$distro"
} }
function query_distro_family() { function query_distro_family() {
@ -1559,10 +1561,13 @@ function query_distro_family() {
family="${line#ID_LIKE=}" family="${line#ID_LIKE=}"
family="${family//\"}" family="${family//\"}"
break break
elif [[ -z "$family" && "$line" = ID=* ]]; then
family="${line#ID=}"
family="${family//\"}"
fi fi
done < "$OS_RELEASE" done < "$OS_RELEASE"
fi fi
echo "$family" "${AWK_PROGRAM[0]}" '{print tolower($0)}' <<<"$distro"
} }
function process_global_args() { function process_global_args() {