tar_git_snapshot {gittargets} | R Documentation |
Snapshot the data repository (Git).
Description
Snapshot the Git data repository of a targets
project.
Usage
tar_git_snapshot(
message = NULL,
ref = "HEAD",
code = getwd(),
script = targets::tar_config_get("script"),
store = targets::tar_config_get("store"),
stash_gitignore = TRUE,
reporter = targets::tar_config_get("reporter_outdated"),
envir = parent.frame(),
callr_function = callr::r,
callr_arguments = NULL,
status = interactive(),
force = FALSE,
pack_refs = TRUE,
verbose = TRUE
)
Arguments
message |
Optional Git commit message of the data snapshot.
If |
ref |
Character of length 1, reference (branch name, Git SHA1 hash, etc.) of the code commit that will map to the new data snapshot. Defaults to the commit checked out right now. |
code |
Character of length 1, directory path to the code repository,
usually the root of the |
script |
Character of length 1, path to the
target script file. Defaults to |
store |
Character of length 1, path to the data store of the pipeline.
If |
stash_gitignore |
Logical of length 1, whether to temporarily
stash the |
reporter |
Character of length 1, name of the reporter to user. Controls how messages are printed as targets are checked. Choices:
|
envir |
An environment, where to run the target R script
(default: The |
callr_function |
A function from |
callr_arguments |
A list of arguments to |
status |
Logical of length 1, whether to print the project status
with |
force |
Logical of length 1. Force checkout the data branch of an existing data snapshot of the current code commit? |
pack_refs |
Logical of length 1, whether to run |
verbose |
Logical of length 1, whether to print R console messages confirming that a snapshot was created. |
Details
A Git-backed gittargets
data snapshot is a special kind of
Git commit. Every data commit is part of a branch specific to
the current code commit.
That way, when you switch branches or commits in the code,
tar_git_checkout()
checks out the latest data snapshot
that matches the code in your workspace.
That way, your targets can stay up to date even as you
transition among multiple branches.
Stashing .gitignore
The targets
package writes a .gitignore
file to new data stores
in order to prevent accidental commits to the code Git repository.
Unfortunately, for gittargets
, this automatic .gitignore
file
interferes with proper data versioning. So by default, gittargets
temporarily stashes it to a hidden file called .gittargets_gitignore
inside the data store. If your R program crashes while the stash
is active, you can simply move it manually back to .gitignore
or run tar_git_status_data()
to restore the stash automatically
if no .gitignore
already exists.
See Also
Other git:
tar_git_checkout()
,
tar_git_init()
,
tar_git_log()
,
tar_git_ok()
,
tar_git_status_code()
,
tar_git_status_data()
,
tar_git_status_targets()
,
tar_git_status()
Examples
if (Sys.getenv("TAR_EXAMPLES") == "true" && tar_git_ok(verbose = FALSE)) {
targets::tar_dir({ # Containing code does not modify the user's filespace.
targets::tar_script(tar_target(data, 1))
targets::tar_make()
gert::git_init()
gert::git_add("_targets.R")
gert::git_commit("First commit")
tar_git_init()
tar_git_snapshot(status = FALSE)
})
}