feat: add --recursive to dvs get (SUPERSEDED — split into #203 + #204 + #205)#154
Closed
CGMossa wants to merge 1 commit into
Closed
feat: add --recursive to dvs get (SUPERSEDED — split into #203 + #204 + #205)#154CGMossa wants to merge 1 commit into
CGMossa wants to merge 1 commit into
Conversation
CGMossa
commented
Apr 24, 2026
Keats
reviewed
Apr 24, 2026
Contributor
Author
|
@Keats I agree with your review. I tuned down my Claude, and now it is not producing better code than what I would. Need to tune again, or work on this a bit manually. Also, this is missing bits; I'll punt this as a draft for now. |
d180797 to
43fc7cf
Compare
CGMossa
added a commit
that referenced
this pull request
Apr 29, 2026
Cargo.lock pins git deps to a resolved commit hash and does NOT auto-refresh on subsequent builds, even after the branch HEAD moves. Symptom: CLI and R diverge on the same repo because they build against different dvs commits. Recovery is `rm -f .cargo/config.toml Cargo.lock && cargo generate-lockfile` (`cargo update -p dvs` does not work — package ID resolution fails). Captures the lesson from PR #154 where the rpkg lockfile sat on the pre-review-feedback dvs commit (2befb2b) for the entire review cycle, so behaviour fixes never reached the R package until the lockfile was bumped. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 tasks
CGMossa
added a commit
that referenced
this pull request
Apr 29, 2026
Cargo.lock pins git deps to a resolved commit hash and does NOT auto-refresh on subsequent builds, even after the branch HEAD moves. Symptom: CLI and R diverge on the same repo because they build against different dvs commits. Recovery is `rm -f .cargo/config.toml Cargo.lock && cargo generate-lockfile` (`cargo update -p dvs` does not work — package ID resolution fails). Captures the lesson from PR #154 where the rpkg lockfile sat on the pre-review-feedback dvs commit (2befb2b) for the entire review cycle, so behaviour fixes never reached the R package until the lockfile was bumped. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35f0e01 to
71023b8
Compare
CGMossa
added a commit
that referenced
this pull request
Apr 29, 2026
Cargo.lock pins git deps to a resolved commit hash and does NOT auto-refresh on subsequent builds, even after the branch HEAD moves. Symptom: CLI and R diverge on the same repo because they build against different dvs commits. Recovery is `rm -f .cargo/config.toml Cargo.lock && cargo generate-lockfile` (`cargo update -p dvs` does not work — package ID resolution fails). Captures the lesson from PR #154 where the rpkg lockfile sat on the pre-review-feedback dvs commit (2befb2b) for the entire review cycle, so behaviour fixes never reached the R package until the lockfile was bumped. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8b4ab9a to
143f9d9
Compare
CGMossa
added a commit
that referenced
this pull request
Apr 29, 2026
Cargo.lock pins git deps to a resolved commit hash and does NOT auto-refresh on subsequent builds, even after the branch HEAD moves. Symptom: CLI and R diverge on the same repo because they build against different dvs commits. Recovery is `rm -f .cargo/config.toml Cargo.lock && cargo generate-lockfile` (`cargo update -p dvs` does not work — package ID resolution fails). Captures the lesson from PR #154 where the rpkg lockfile sat on the pre-review-feedback dvs commit (2befb2b) for the entire review cycle, so behaviour fixes never reached the R package until the lockfile was bumped. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
860d2b1 to
17603ab
Compare
Adds `--recursive` / `-r` to `dvs get` (CLI) and `recursive = NULL` to `dvs_get()` (R), matching the existing flag on `dvs status`. Without the flag, directory paths return only direct children; with it, all descendants.
17603ab to
87cffb2
Compare
This was referenced May 16, 2026
Contributor
Author
|
Closing as superseded — all content now lives in:
The ui-trace cleanup hunks this branch carried are identical to #198 and will land via that PR. Branch |
CGMossa
added a commit
that referenced
this pull request
May 17, 2026
Carved out of #154 as the Rust-only layer. The R binding and the ui walkthrough follow as separate PRs. In dvs/src/globbing.rs: - resolve_paths_for_get gains a `recursive` parameter so that a positional directory argument can be walked recursively without requiring an explicit --glob. Mirrors the existing recursive behavior of `dvs status` for symmetry. - New tests cover: directory + recursive flag, mixed file + directory inputs, and the no-glob default path. In dvs-cli/src/main.rs: - `dvs get` gains `-r, --recursive` (clap short+long) wired through to resolve_paths_for_get. In dvs/src/files/status.rs: - One-line touch propagating the new globbing signature. No behavior change for callers that don't pass --recursive.
CGMossa
added a commit
that referenced
this pull request
May 17, 2026
R-binding layer of `dvs get --recursive`. Carved out of #154; depends on feat/dvs-get-recursive-core (which holds the core globbing change and the CLI flag). - src/rust/lib.rs: `dvs_get` gains `recursive: Option<bool>` (default NULL) wired through to `resolve_paths_for_get`. - src/rust/Cargo.toml: pin `dvs` to the core branch until the core PR lands on main. Re-pin to main before final review. - R/dvs-commands.R: thin pass-through to `dvs_get_impl`. - man/dvs_get*.Rd: regenerated. Includes the clarifying paragraph explaining the recursive flag only constrains descendants of paths passed explicitly — empty `paths` returns every tracked file regardless. - man/dvs_status*.Rd: same clarifying paragraph applied to `dvs_status(recursive=)` for symmetry (the existing one-line description was ambiguous on the same edge case). - tests/testthat/test-get.R: covers the new flag. NB: builds standalone against the companion core PR's branch pin.
CGMossa
added a commit
that referenced
this pull request
May 17, 2026
…get/status Adds ui/main_recursive.sh (550 lines) exercising the matrix: - dvs add: explicitly rejects --recursive (glob is the recursion encoding; flag-based recursion was deliberately excluded for add). - dvs get: positional file, single-dir, single-dir + --recursive, '.' + --recursive, mixed file/dir inputs. - dvs status: same matrix, plus the no-path case where --recursive is a documented no-op (whole-repo iteration is already recursive). Each case logs both the command and the resulting state of the working tree so the CLI/R parity can be eyeballed in the published HTML. ui/CLAUDE.md: adds main_recursive.sh to the script roster + widens the comment column to accommodate the longer name. Carved out of #154. Stacked on the rpkg PR. ui-trace cleanup hunks that #154 used to carry are intentionally NOT here — they land separately via #198 (chore/ui-trace-cleanup).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AI-written details
Status: SUPERSEDED
This PR has been fully split into three focused PRs. Keeping it open temporarily as a reference; will close once the sub-PRs are reviewed. All content here is now somewhere below.
Successor PRs
dvs/src/globbing.rs(+156/−21),dvs/src/files/status.rs,dvs-cli/src/main.rs— the actual--recursiveflag and its testsdvs-rpkg/src/rust/lib.rs, R wrappers, man pages,tests/testthat/test-get.R. Stacked on #203ui/main_recursive.sh(+550),ui/CLAUDE.md. Stacked on #204Also extracted (not unique to this branch)
The ui-trace cleanup hunks (
ui/helpers.shxtrace regex, deferredset -xacross the four ui main scripts) that were hitchhiking on this branch are identical to changes already in #198. They're not duplicated in any of the successor PRs — they'll come via #198.Why split
globbing.rs) inside a wall of binding regen + a 550-line ui demo.--recursivedecision fordvs add(explicit rejection) deserves its own visible review surface (ui/main_recursive.shmakes it tangible).Test plan
See the test plans on #203, #204, #205.
Drafted by Claude (claude-opus-4-7). Reviewed by the author.