Is your feature request related to a problem? Please describe.
At times I need to manually step through a regression and see what commit caused the change in behavior. When the condition is easily handled programmatically, then git-bisect is a great way to go, but sometimes it's more nuanced and benefits from "human inspection".
Describe the solution you'd like
devtools::load_all("path/to/mypackage", ref="23eeb01")
It feels (to me) like this is more than what remotes:: offers, since I'm looking for the same "current environment side-effect" that devtools::load_all() provides. I imagine it might benefit from git2r if present (fallback to shell git).
Describe alternatives you've considered
(1) I tried remotes::install_git(repo, ref), but it has the undesired side-effect of installing an older version into my R library. I could use a temporary library to do this, but (1) it's a little slower, and (2) it doesn't load the package the same way that load_all() does. Further, if I had already load_all()'d (from the filesystem alone, no ref) the package into my R session, I'm "looking" at the wrong version.
(2) I was able to get the effect I wanted by using git worktrees:
$ cd path/to/mypackage
$ git worktree add _23ee 23eeb01
and in R
devtools::load_all("path/to/mypackage/_23ee")
(A more-advanced extension of this functionality would enable in-R git bisecting, perhaps iterating over head(git2r::commits(repo)), running R code after each load_all(repo, ref). While that's out of scope for this FR, I think there is value-added to be able to do that "in R" at times, even if it is not the first-stop recommendation.)
Is your feature request related to a problem? Please describe.
At times I need to manually step through a regression and see what commit caused the change in behavior. When the condition is easily handled programmatically, then git-bisect is a great way to go, but sometimes it's more nuanced and benefits from "human inspection".
Describe the solution you'd like
It feels (to me) like this is more than what
remotes::offers, since I'm looking for the same "current environment side-effect" thatdevtools::load_all()provides. I imagine it might benefit fromgit2rif present (fallback to shellgit).Describe alternatives you've considered
(1) I tried
remotes::install_git(repo, ref), but it has the undesired side-effect of installing an older version into my R library. I could use a temporary library to do this, but (1) it's a little slower, and (2) it doesn't load the package the same way thatload_all()does. Further, if I had alreadyload_all()'d (from the filesystem alone, no ref) the package into my R session, I'm "looking" at the wrong version.(2) I was able to get the effect I wanted by using git worktrees:
$ cd path/to/mypackage $ git worktree add _23ee 23eeb01and in R
(A more-advanced extension of this functionality would enable in-R git bisecting, perhaps iterating over
head(git2r::commits(repo)), running R code after eachload_all(repo, ref). While that's out of scope for this FR, I think there is value-added to be able to do that "in R" at times, even if it is not the first-stop recommendation.)