Skip to content

Commit

Permalink
Merge pull request #507 from AVM-Martin/fix/reset-yadm-work-index
Browse files Browse the repository at this point in the history
fix(clone): reset index of YADM_WORK
  • Loading branch information
erijo authored Nov 29, 2024
2 parents 30fa6f0 + ae3a149 commit 6ee9b47
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
28 changes: 28 additions & 0 deletions test/test_clone.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,3 +326,31 @@ def test_no_repo(
def verify_head(paths, branch):
"""Assert the local repo has the correct head branch"""
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 == ""
2 changes: 1 addition & 1 deletion yadm
Original file line number Diff line number Diff line change
Expand Up @@ -853,7 +853,7 @@ function clone() {
rm -rf "$wc"

# 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
debug "Determining if repo tracks private directories"
Expand Down

0 comments on commit 6ee9b47

Please sign in to comment.