[R/DDGCheckpoint.R:1:2:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L1) *style:* **Commented code should be removed.**
```r
########### Checkpoint/Restore functions for DDGs #############
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:2:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**
```r
	# Increment data counter.
^
```
[R/DDGCheckpoint.R:2:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**
```r
	dname <- basename(filename)
^
```
[R/DDGCheckpoint.R:2:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.checkpoint.num <- RDataTracker:::.ddg.get("ddg.checkpoint.num")
^
```
[R/DDGCheckpoint.R:2:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**
```r
	if (!RDataTracker:::.ddg.is.init()) return(invisible())
^
```
[R/DDGCheckpoint.R:2:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.checkpoints <- RDataTracker:::.ddg.get("ddg.checkpoints")
^
```
[R/DDGCheckpoint.R:2:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c("filename", "original")))
^
```
[R/DDGCheckpoint.R:2:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**
```r
	if (!RDataTracker:::.ddg.is.init()) return(invisible())
^
```
[R/DDGCheckpoint.R:3:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.inc("ddg.dnum")
^
```
[R/DDGCheckpoint.R:3:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.checkpoints <- RDataTracker:::.ddg.get("ddg.checkpoints")
^
```
[R/DDGCheckpoint.R:3:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**
```r
	nRow<-which(ddg.checkpoints$filename == filename)
^
```
[R/DDGCheckpoint.R:3:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**
```r
	saved.names <- ls (saved.env, all.names = TRUE)
^
```
[R/DDGCheckpoint.R:4:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**
```r
	# Create output file node where name = filename.
^
```
[R/DDGCheckpoint.R:4:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.checkpoints$filename[ddg.checkpoint.num] <- filename
^
```
[R/DDGCheckpoint.R:4:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) print("Creating checkpoint")
^
```
[R/DDGCheckpoint.R:4:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**
```r
	return(ddg.checkpoints$checkpoint.name[nRow])
^
```
[R/DDGCheckpoint.R:4:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**
```r
	# Mark the data that was in the checkpointed table to be consistent
^
```
[R/DDGCheckpoint.R:4:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**
```r
	for (saved.name in saved.names) {
^
```
[R/DDGCheckpoint.R:4:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**
```r
	# Remove the directories.
^
```
[R/DDGCheckpoint.R:5:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**
```r
	# Get checkpoint file location.
^
```
[R/DDGCheckpoint.R:5:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**
```r
	saved.file <- .ddg.checkpoint.file.node(filename, dname, checkpoint.name)
^
```
[R/DDGCheckpoint.R:5:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.checkpoints$checkpoint.name[ddg.checkpoint.num] <- checkpoint.name
^
```
[R/DDGCheckpoint.R:5:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.checkpoint.num <- RDataTracker:::.ddg.get("ddg.checkpoint.num")
^
```
[R/DDGCheckpoint.R:5:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**
```r
	# with the checkpoint.
^
```
[R/DDGCheckpoint.R:5:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**
```r
		saved.value <- saved.env[[saved.name]]
^~
```
[R/DDGCheckpoint.R:5:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**
```r
	file.name <- basename(file.path)
^
```
[R/DDGCheckpoint.R:6:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**
```r
	file.name <- basename(fname)
^
```
[R/DDGCheckpoint.R:6:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.set("ddg.checkpoints", ddg.checkpoints)
^
```
[R/DDGCheckpoint.R:6:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**
```r
	file.name <- paste(ddg.checkpoint.num, ".RData", sep="")
^
```
[R/DDGCheckpoint.R:6:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.dnum <- checkpointed.env[["ddg.dnum"]]
^
```
[R/DDGCheckpoint.R:6:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**
```r
		ddg.env[[saved.name]] <- saved.value
^~
```
[R/DDGCheckpoint.R:7:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**
```r
	file.loc <- dirname(normalizePath(fname, winslash="/", mustWork = FALSE))
^
```
[R/DDGCheckpoint.R:7:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**
```r
	# Create data flow edge from operation node to file node.
^
```
[R/DDGCheckpoint.R:7:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**
```r
	file.path <- paste(RDataTracker:::.ddg.path(), "/", file.name, sep="")
^
```
[R/DDGCheckpoint.R:7:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.data.nodes <- checkpointed.env[["ddg.data.nodes"]]
^
```
[R/DDGCheckpoint.R:7:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**
```r
	}
^
```
[R/DDGCheckpoint.R:7:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**
```r
	# Remove the node number.
^
```
[R/DDGCheckpoint.R:8:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.proc2data(checkpoint.name, dname)
^
```
[R/DDGCheckpoint.R:8:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**
```r
	if (is.null(checkpoint.name)) checkpoint.name <- file.name
^
```
[R/DDGCheckpoint.R:8:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.saved.data.nodes <- saved.env[["ddg.data.nodes"]]
^
```
[R/DDGCheckpoint.R:8:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**
```r
	return (ddg.env)
^
```
[R/DDGCheckpoint.R:8:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**
```r
	file.name.start <- regexpr("-", file.name) + 1
^
```
[R/DDGCheckpoint.R:9:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**
```r
	# Add number to file name.
^
```
[R/DDGCheckpoint.R:9:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.proc.node("Checkpoint", checkpoint.name)
^
```
[R/DDGCheckpoint.R:9:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**
```r
	for (i in 1:ddg.dnum) {
^
```
[R/DDGCheckpoint.R:9:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**
```r
	file.name.end <- nchar(file.name)
^
```
[R/DDGCheckpoint.R:10:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.dnum <- RDataTracker:::.ddg.dnum()
^
```
[R/DDGCheckpoint.R:10:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**
```r
	return (saved.file)
^
```
[R/DDGCheckpoint.R:10:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**
```r
		ddg.saved.data.nodes$ddg.current[i] <- ddg.data.nodes$ddg.current[i]
^~
```
[R/DDGCheckpoint.R:10:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**
```r
	file.name <- substr(file.name, file.name.start, file.name.end)
^
```
[R/DDGCheckpoint.R:11:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L11) *style:* **Use two spaces to indent, never tabs.**
```r
	dfile <- paste(ddg.dnum, "-", file.name, sep="")
^
```
[R/DDGCheckpoint.R:11:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L11) *style:* **Use two spaces to indent, never tabs.**
```r
	# Create control flow edge from preceding procedure node.
^
```
[R/DDGCheckpoint.R:11:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L11) *style:* **Use two spaces to indent, never tabs.**
```r
	checkpoint.name <- .ddg.lookup.checkpoint.name(file.name)
^
```
[R/DDGCheckpoint.R:12:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L12) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.proc2proc()
^
```
[R/DDGCheckpoint.R:12:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L12) *style:* **Use two spaces to indent, never tabs.**
```r
		# Determine the most recent version of each file at the time the
^~
```
[R/DDGCheckpoint.R:12:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L12) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.proc.node("Restore", checkpoint.name)
^
```
[R/DDGCheckpoint.R:13:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L13) *style:* **Use two spaces to indent, never tabs.**
```r
	# Get path plus file name.
^
```
[R/DDGCheckpoint.R:13:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L13) *style:* **Use two spaces to indent, never tabs.**
```r
	checkpoint.file <- .ddg.checkpoint.out(checkpoint.name, file.path)
^
```
[R/DDGCheckpoint.R:13:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L13) *style:* **Use two spaces to indent, never tabs.**
```r
		# checkpoint was taken.
^~
```
[R/DDGCheckpoint.R:14:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**
```r
	dpfile.out <- paste(RDataTracker:::.ddg.path(), "/", dfile, sep="")
^
```
[R/DDGCheckpoint.R:14:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.set("ddg.checkpoint.num", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)
^
```
[R/DDGCheckpoint.R:14:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**
```r
		if (ddg.saved.data.nodes$ddg.type[i] == "File") {
^~
```
[R/DDGCheckpoint.R:14:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**
```r
	# Create control flow edge from preceding procedure node.
^
```
[R/DDGCheckpoint.R:15:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L15) *style:* **Use two spaces to indent, never tabs.**
```r
	.ddg.record.checkpoint(file.name, checkpoint.name)
^
```
[R/DDGCheckpoint.R:15:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L15) *style:* **Use two spaces to indent, never tabs.**
```r
			nRow<-which(ddg.files.to.restore[,"original"] == ddg.saved.data.nodes$ddg.loc[i])
^~~
```
[R/DDGCheckpoint.R:15:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L15) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.proc2proc()
^
```
[R/DDGCheckpoint.R:16:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) print(paste("Saving checkpoint in", dpfile.out))
^
```
[R/DDGCheckpoint.R:16:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**
```r
	return (checkpoint.file)
^
```
[R/DDGCheckpoint.R:16:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**
```r
			if (length(nRow) > 0) {
^~~
```
[R/DDGCheckpoint.R:16:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.data2proc(file.name, "undefined", checkpoint.name)
^
```
[R/DDGCheckpoint.R:17:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L17) *style:* **Use two spaces to indent, never tabs.**
```r
				ddg.files.to.restore[nRow,"filename"] <- paste(ddg.saved.data.nodes$ddg.num[i], "-", ddg.saved.data.nodes$ddg.name[i], sep="")
^~~~
```
[R/DDGCheckpoint.R:18:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L18) *style:* **Use two spaces to indent, never tabs.**
```r
	# Create checkpoint.
^
```
[R/DDGCheckpoint.R:18:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L18) *style:* **Use two spaces to indent, never tabs.**
```r
			}
^~~
```
[R/DDGCheckpoint.R:18:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L18) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) print(paste("Restoring from", file.path))
^
```
[R/DDGCheckpoint.R:19:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L19) *style:* **Use two spaces to indent, never tabs.**
```r
	toSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))
^
```
[R/DDGCheckpoint.R:19:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L19) *style:* **Use two spaces to indent, never tabs.**
```r
			else {
^~~
```
[R/DDGCheckpoint.R:20:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L20) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(toSave) }
^
```
[R/DDGCheckpoint.R:20:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L20) *style:* **Use two spaces to indent, never tabs.**
```r
				newfile = c(paste(ddg.saved.data.nodes$ddg.num[i], "-", ddg.saved.data.nodes$ddg.name[i], sep=""), ddg.saved.data.nodes$ddg.loc[i])
^~~~
```
[R/DDGCheckpoint.R:20:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L20) *style:* **Use two spaces to indent, never tabs.**
```r
	# Update the ddg tables so that the ddg will get extended to
^
```
[R/DDGCheckpoint.R:21:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L21) *style:* **Use two spaces to indent, never tabs.**
```r
				ddg.files.to.restore <- rbind(ddg.files.to.restore, newfile)
^~~~
```
[R/DDGCheckpoint.R:22:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L22) *style:* **Use two spaces to indent, never tabs.**
```r
	# toSave <- ls(envir=.GlobalEnv)
^
```
[R/DDGCheckpoint.R:22:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L22) *style:* **Use two spaces to indent, never tabs.**
```r
			}
^~~
```
[R/DDGCheckpoint.R:23:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L23) *style:* **Use two spaces to indent, never tabs.**
```r
	# save (list = toSave, file = dpfile.out, envir = parent.frame(3))
^
```
[R/DDGCheckpoint.R:23:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L23) *style:* **Use two spaces to indent, never tabs.**
```r
		}
^~
```
[R/DDGCheckpoint.R:24:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L24) *style:* **Use two spaces to indent, never tabs.**
```r
	save (list = toSave, file = dpfile.out)
^
```
[R/DDGCheckpoint.R:25:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L25) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.dpfile.out <- paste(dpfile.out, "ddg", sep=".")
^
```
[R/DDGCheckpoint.R:25:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L25) *style:* **Use two spaces to indent, never tabs.**
```r
		else if (ddg.saved.data.nodes$ddg.type[i] == "Checkpoint") {
^~
```
[R/DDGCheckpoint.R:25:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L25) *style:* **Use two spaces to indent, never tabs.**
```r
	saved.ddg.env <- RDataTracker:::.ddg.env
^
```
[R/DDGCheckpoint.R:26:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L26) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }
^
```
[R/DDGCheckpoint.R:26:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L26) *style:* **Use two spaces to indent, never tabs.**
```r
			ddg.saved.data.nodes$ddg.current[i] <- TRUE
^~~
```
[R/DDGCheckpoint.R:26:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L26) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) load (file.path, .GlobalEnv, verbose=TRUE)
^
```
[R/DDGCheckpoint.R:27:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L27) *style:* **Use two spaces to indent, never tabs.**
```r
	save (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)
^
```
[R/DDGCheckpoint.R:27:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L27) *style:* **Use two spaces to indent, never tabs.**
```r
		}
^~
```
[R/DDGCheckpoint.R:27:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L27) *style:* **Use two spaces to indent, never tabs.**
```r
	else load (file.path, .GlobalEnv)
^
```
[R/DDGCheckpoint.R:28:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L28) *style:* **Use two spaces to indent, never tabs.**
```r
	}
^
```
[R/DDGCheckpoint.R:28:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L28) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.file.path <- paste(file.path, "ddg", sep=".")
^
```
[R/DDGCheckpoint.R:29:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L29) *style:* **Use two spaces to indent, never tabs.**
```r
	# Create the node.
^
```
[R/DDGCheckpoint.R:29:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L29) *style:* **Use two spaces to indent, never tabs.**
```r
	checkpointed.ddg.env <- new.env()
^
```
[R/DDGCheckpoint.R:30:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L30) *style:* **Use two spaces to indent, never tabs.**
```r
	dtime <- RDataTracker:::.ddg.timestamp()
^
```
[R/DDGCheckpoint.R:30:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L30) *style:* **Use two spaces to indent, never tabs.**
```r
	# Mark the data entries made after the checkpoint to be not current
^
```
[R/DDGCheckpoint.R:30:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L30) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) load(ddg.file.path, checkpointed.ddg.env, verbose=TRUE)
^
```
[R/DDGCheckpoint.R:31:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L31) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.append("CheckpointFile", " d", ddg.dnum, " \"", ddg.dnum, "-", file.name, "\" Value=\"", dpfile.out, "\" Time=\"", dtime, "\";\n", sep="")
^
```
[R/DDGCheckpoint.R:31:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L31) *style:* **Use two spaces to indent, never tabs.**
```r
	ddg.saved.dnum <- saved.env[["ddg.dnum"]]
^
```
[R/DDGCheckpoint.R:31:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L31) *style:* **Use two spaces to indent, never tabs.**
```r
	else load(ddg.file.path, checkpointed.ddg.env)
^
```
[R/DDGCheckpoint.R:32:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L32) *style:* **Variable or function name should be snake_case.**
```r
.ddg.checkpoint.file.node <- function(fname, dname, checkpoint.name) {
^~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:32:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L32) *style:* **Use two spaces to indent, never tabs.**
```r
	if (ddg.dnum < ddg.saved.dnum) {
^
```
[R/DDGCheckpoint.R:32:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L32) *style:* **Use two spaces to indent, never tabs.**
```r
	.ddg.mark.stale.data(saved.ddg.env, checkpointed.ddg.env)
^
```
[R/DDGCheckpoint.R:32:53:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L32) *style:* **Variable or function name should be snake_case.**
```r
.ddg.checkpoint.file.node <- function(fname, dname, checkpoint.name) {
                                                    ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:33:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L33) *style:* **Use two spaces to indent, never tabs.**
```r
	# Record data node information.
^
```
[R/DDGCheckpoint.R:33:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L33) *style:* **Use two spaces to indent, never tabs.**
```r
		for (i in (ddg.dnum+1):ddg.saved.dnum) {
^~
```
[R/DDGCheckpoint.R:33:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L33) *style:* **Use two spaces to indent, never tabs.**
```r
	assign("RDataTracker:::.ddg.env", .ddg.restore.ddg.state(saved.ddg.env, checkpointed.ddg.env))
^
```
[R/DDGCheckpoint.R:34:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L34) *style:* **Use two spaces to indent, never tabs.**
```r
	RDataTracker:::.ddg.record.data("Checkpoint", file.name, dfile, "undefined", dtime, file.loc)
^
```
[R/DDGCheckpoint.R:34:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L34) *style:* **Use two spaces to indent, never tabs.**
```r
			if (ddg.saved.data.nodes$ddg.type[i] != "Checkpoint") {
^~~
```
[R/DDGCheckpoint.R:35:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L35) *style:* **Use two spaces to indent, never tabs.**
```r
				ddg.saved.data.nodes$ddg.current[i] <- FALSE
^~~~
```
[R/DDGCheckpoint.R:35:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L35) *style:* **Use two spaces to indent, never tabs.**
```r
	invisible()
^
```
[R/DDGCheckpoint.R:36:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L36) *style:* **Use two spaces to indent, never tabs.**
```r
	if (RDataTracker:::.ddg.debug()) print(paste("file.copy: Checkpoint", fname))
^
```
[R/DDGCheckpoint.R:36:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L36) *style:* **Use two spaces to indent, never tabs.**
```r
			}
^~~
```
[R/DDGCheckpoint.R:37:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L37) *style:* **Use two spaces to indent, never tabs.**
```r
	return (dpfile.out)
^
```
[R/DDGCheckpoint.R:37:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L37) *style:* **Use two spaces to indent, never tabs.**
```r
		}
^~
```
[R/DDGCheckpoint.R:37:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L37) *style:* **Variable or function name should be snake_case.**
```r
	file.name <- basename(fname)
        ^~~~~~~~~
```
[R/DDGCheckpoint.R:37:19:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L37) *style:* **Put spaces around all infix operators.**
```r
	file.name <- basename(fname)
                 ~^~~
```
[R/DDGCheckpoint.R:38:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L38) *style:* **Use two spaces to indent, never tabs.**
```r
	}
^
```
[R/DDGCheckpoint.R:38:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L38) *style:* **Variable or function name should be snake_case.**
```r
	file.loc <- dirname(normalizePath(fname, winslash="/", mustWork = FALSE))
        ^~~~~~~~
```
[R/DDGCheckpoint.R:38:18:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L38) *style:* **Put spaces around all infix operators.**
```r
	file.loc <- dirname(normalizePath(fname, winslash="/", mustWork = FALSE))
                ~^~~
```
[R/DDGCheckpoint.R:38:58:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L38) *style:* **Put spaces around all infix operators.**
```r
	file.loc <- dirname(normalizePath(fname, winslash="/", mustWork = FALSE))
                                                        ~^~
```
[R/DDGCheckpoint.R:38:73:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L38) *style:* **Put spaces around all infix operators.**
```r
	file.loc <- dirname(normalizePath(fname, winslash="/", mustWork = FALSE))
                                                                       ~^~
```
[R/DDGCheckpoint.R:39:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L39) *style:* **Use two spaces to indent, never tabs.**
```r
	saved.env[["ddg.data.nodes"]] <- ddg.saved.data.nodes
^
```
[R/DDGCheckpoint.R:41:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L41) *style:* **Use two spaces to indent, never tabs.**
```r
	# Restore files that have been modified or deleted since the
^
```
[R/DDGCheckpoint.R:41:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L41) *style:* **Variable or function name should be snake_case.**
```r
	ddg.dnum <- RDataTracker:::.ddg.dnum()
        ^~~~~~~~
```
[R/DDGCheckpoint.R:41:18:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L41) *style:* **Put spaces around all infix operators.**
```r
	ddg.dnum <- RDataTracker:::.ddg.dnum()
                ~^~~
```
[R/DDGCheckpoint.R:42:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L42) *style:* **Use two spaces to indent, never tabs.**
```r
	# checkpoint.
^
```
[R/DDGCheckpoint.R:42:15:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L42) *style:* **Put spaces around all infix operators.**
```r
	dfile <- paste(ddg.dnum, "-", file.name, sep="")
             ~^~~
```
[R/DDGCheckpoint.R:43:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L43) *style:* **Use two spaces to indent, never tabs.**
```r
	num.files.to.restore <- nrow(ddg.files.to.restore)
^
```
[R/DDGCheckpoint.R:44:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L44) *style:* **Use two spaces to indent, never tabs.**
```r
	if (num.files.to.restore > 0) {
^
```
[R/DDGCheckpoint.R:45:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L45) *style:* **Use two spaces to indent, never tabs.**
```r
		# ddg.path <- RDataTracker:::.ddg.path()
^~
```
[R/DDGCheckpoint.R:45:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L45) *style:* **Variable or function name should be snake_case.**
```r
	dpfile.out <- paste(RDataTracker:::.ddg.path(), "/", dfile, sep="")
        ^~~~~~~~~~
```
[R/DDGCheckpoint.R:45:20:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L45) *style:* **Put spaces around all infix operators.**
```r
	dpfile.out <- paste(RDataTracker:::.ddg.path(), "/", dfile, sep="")
                  ~^~~
```
[R/DDGCheckpoint.R:46:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L46) *style:* **Use two spaces to indent, never tabs.**
```r
		ddg.path <- saved.env[["ddg.path"]]
^~
```
[R/DDGCheckpoint.R:47:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L47) *style:* **lines should not be more than 80 characters.**
```r
	if (RDataTracker:::.ddg.debug()) print(paste("Saving checkpoint in", dpfile.out))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:47:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L47) *style:* **Use two spaces to indent, never tabs.**
```r
		for (i in 1:num.files.to.restore) {
^~
```
[R/DDGCheckpoint.R:47:12:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L47) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	if (RDataTracker:::.ddg.debug()) print(paste("Saving checkpoint in", dpfile.out))
           ^
```
[R/DDGCheckpoint.R:48:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L48) *style:* **Use two spaces to indent, never tabs.**
```r
			original <- ddg.files.to.restore[i, 2]
^~~
```
[R/DDGCheckpoint.R:49:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L49) *style:* **Use two spaces to indent, never tabs.**
```r
			saved <- paste(ddg.path, ddg.files.to.restore[i, 1], sep="/")
^~~
```
[R/DDGCheckpoint.R:50:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L50) *style:* **Variable or function name should be snake_case.**
```r
	toSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))
        ^~~~~~
```
[R/DDGCheckpoint.R:50:16:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L50) *style:* **Put spaces around all infix operators.**
```r
	toSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))
              ~^~~
```
[R/DDGCheckpoint.R:50:31:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L50) *style:* **Put spaces around all infix operators.**
```r
	toSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))
                             ~^~
```
[R/DDGCheckpoint.R:50:55:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L50) *style:* **Put spaces around all infix operators.**
```r
	toSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))
                                                     ~^~
```
[R/DDGCheckpoint.R:51:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L51) *style:* **Use two spaces to indent, never tabs.**
```r
			# Original file is newer than the one to be restored from the
^~~
```
[R/DDGCheckpoint.R:51:12:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L51) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(toSave) }
           ^
```
[R/DDGCheckpoint.R:51:42:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L51) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(toSave) }
                                         ^
```
[R/DDGCheckpoint.R:51:75:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L51) *style:* **Closing curly-braces should always be on their own line, unless it's followed by an else.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(toSave) }
                                                                          ^
```
[R/DDGCheckpoint.R:52:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L52) *style:* **Use two spaces to indent, never tabs.**
```r
			# DDG. Save the original file in a special place before
^~~
```
[R/DDGCheckpoint.R:53:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L53) *style:* **Use two spaces to indent, never tabs.**
```r
			# restoring the DDG file.
^~~
```
[R/DDGCheckpoint.R:53:4:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L53) *style:* **Commented code should be removed.**
```r
	# toSave <- ls(envir=.GlobalEnv)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:54:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L54) *style:* **Use two spaces to indent, never tabs.**
```r
			if (file.exists(original)) {
^~~
```
[R/DDGCheckpoint.R:54:4:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L54) *style:* **Commented code should be removed.**
```r
	# save (list = toSave, file = dpfile.out, envir = parent.frame(3))
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:55:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L55) *style:* **Use two spaces to indent, never tabs.**
```r
				modTime.original <- file.info(original)$mtime[1]
^~~~
```
[R/DDGCheckpoint.R:55:20:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L55) *style:* **Put spaces around all infix operators.**
```r
	save (list = toSave, file = dpfile.out)
                  ~^~
```
[R/DDGCheckpoint.R:55:35:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L55) *style:* **Put spaces around all infix operators.**
```r
	save (list = toSave, file = dpfile.out)
                                 ~^~
```
[R/DDGCheckpoint.R:56:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L56) *style:* **Use two spaces to indent, never tabs.**
```r
				modTime.saved <- file.info(saved)$mtime[1]
^~~~
```
[R/DDGCheckpoint.R:56:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L56) *style:* **Variable or function name should be snake_case.**
```r
	ddg.dpfile.out <- paste(dpfile.out, "ddg", sep=".")
        ^~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:56:24:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L56) *style:* **Put spaces around all infix operators.**
```r
	ddg.dpfile.out <- paste(dpfile.out, "ddg", sep=".")
                      ~^~~
```
[R/DDGCheckpoint.R:57:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L57) *style:* **lines should not be more than 80 characters.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:57:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L57) *style:* **Use two spaces to indent, never tabs.**
```r
				if (modTime.original >= modTime.saved) {
^~~~
```
[R/DDGCheckpoint.R:57:12:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L57) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }
           ^
```
[R/DDGCheckpoint.R:57:42:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L57) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }
                                         ^
```
[R/DDGCheckpoint.R:57:104:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L57) *style:* **Put spaces around all infix operators.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }
                                                                                ~^~
```
[R/DDGCheckpoint.R:57:112:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L57) *style:* **Closing curly-braces should always be on their own line, unless it's followed by an else.**
```r
	if (RDataTracker:::.ddg.debug()) { print("Saving"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }
                                                                                ^
```
[R/DDGCheckpoint.R:58:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L58) *style:* **lines should not be more than 80 characters.**
```r
	save (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:58:20:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**
```r
	save (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)
                  ~^~
```
[R/DDGCheckpoint.R:58:59:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**
```r
	save (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)
                                                         ~^~
```
[R/DDGCheckpoint.R:58:71:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**
```r
	save (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)
                                                                     ~^~
```
[R/DDGCheckpoint.R:58:93:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**
```r
	save (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)
                                                                                ~^~
```
[R/DDGCheckpoint.R:59:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L59) *style:* **Use two spaces to indent, never tabs.**
```r
					# Windows does not allow colons in the names of directories
^~~~~
```
[R/DDGCheckpoint.R:60:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L60) *style:* **Use two spaces to indent, never tabs.**
```r
					modTime.original.str <- gsub(" ","T", gsub(":",".",as.character(modTime.original)))
^~~~~
```
[R/DDGCheckpoint.R:61:15:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L61) *style:* **Put spaces around all infix operators.**
```r
	dtime <- RDataTracker:::.ddg.timestamp()
             ~^~~
```
[R/DDGCheckpoint.R:62:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L62) *style:* **lines should not be more than 80 characters.**
```r
	RDataTracker:::.ddg.append("CheckpointFile", " d", ddg.dnum, " \"", ddg.dnum, "-", file.name, "\" Value=\"", dpfile.out, "\" Time=\"", dtime, "\";\n", sep="")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:62:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L62) *style:* **Use two spaces to indent, never tabs.**
```r
					rescue.dir <- paste(getwd(), "/ddg.rescued.files/", sep="")
^~~~~
```
[R/DDGCheckpoint.R:63:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L63) *style:* **Use two spaces to indent, never tabs.**
```r
					dir.create(rescue.dir, showWarnings=FALSE)
^~~~~
```
[R/DDGCheckpoint.R:64:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L64) *style:* **Use two spaces to indent, never tabs.**
```r
					rescue.filename <- paste(rescue.dir, modTime.original.str, "-", basename(original), sep="")
^~~~~
```
[R/DDGCheckpoint.R:65:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L65) *style:* **lines should not be more than 80 characters.**
```r
	RDataTracker:::.ddg.record.data("Checkpoint", file.name, dfile, "undefined", dtime, file.loc)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:65:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L65) *style:* **Use two spaces to indent, never tabs.**
```r
					warning("Saving ", original, " in ", rescue.filename)
^~~~~
```
[R/DDGCheckpoint.R:66:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L66) *style:* **Use two spaces to indent, never tabs.**
```r
					file.copy(original, rescue.filename, overwrite=TRUE)
^~~~~
```
[R/DDGCheckpoint.R:67:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L67) *style:* **Use two spaces to indent, never tabs.**
```r
					file.copy(saved, original, overwrite=TRUE)
^~~~~
```
[R/DDGCheckpoint.R:67:12:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L67) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	if (RDataTracker:::.ddg.debug()) print(paste("file.copy: Checkpoint", fname))
           ^
```
[R/DDGCheckpoint.R:68:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L68) *style:* **Use two spaces to indent, never tabs.**
```r
				}
^~~~
```
[R/DDGCheckpoint.R:69:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L69) *style:* **Use two spaces to indent, never tabs.**
```r
			}
^~~
```
[R/DDGCheckpoint.R:71:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L71) *style:* **Use two spaces to indent, never tabs.**
```r
			# Original file no longer exists. Just copy in the DDG file.
^~~
```
[R/DDGCheckpoint.R:72:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L72) *style:* **Use two spaces to indent, never tabs.**
```r
			else {
^~~
```
[R/DDGCheckpoint.R:73:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L73) *style:* **Variable or function name should be snake_case.**
```r
.ddg.checkpoint.out <- function(checkpoint.name, filename) {
^~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:73:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L73) *style:* **Use two spaces to indent, never tabs.**
```r
				file.copy(saved, original)
^~~~
```
[R/DDGCheckpoint.R:73:33:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L73) *style:* **Variable or function name should be snake_case.**
```r
.ddg.checkpoint.out <- function(checkpoint.name, filename) {
                                ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:74:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L74) *style:* **Use two spaces to indent, never tabs.**
```r
			}
^~~
```
[R/DDGCheckpoint.R:74:15:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L74) *style:* **Put spaces around all infix operators.**
```r
	dname <- basename(filename)
             ~^~~
```
[R/DDGCheckpoint.R:75:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L75) *style:* **Use two spaces to indent, never tabs.**
```r
		}
^~
```
[R/DDGCheckpoint.R:76:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L76) *style:* **Use two spaces to indent, never tabs.**
```r
	}
^
```
[R/DDGCheckpoint.R:77:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L77) *style:* **Variable or function name should be snake_case.**
```r
	saved.file <- .ddg.checkpoint.file.node(filename, dname, checkpoint.name)
        ^~~~~~~~~~
```
[R/DDGCheckpoint.R:77:16:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L77) *warning:* **no visible global function definition for ‘.ddg.checkpoint.file.node’**
```r
	saved.file <- .ddg.checkpoint.file.node(filename, dname, checkpoint.name)
               ^~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:77:20:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L77) *style:* **Put spaces around all infix operators.**
```r
	saved.file <- .ddg.checkpoint.file.node(filename, dname, checkpoint.name)
                  ~^~~
```
[R/DDGCheckpoint.R:88:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L88) *style:* **Variable or function name should be snake_case.**
```r
.ddg.record.checkpoint <- function(filename, checkpoint.name) {
^~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:88:46:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L88) *style:* **Variable or function name should be snake_case.**
```r
.ddg.record.checkpoint <- function(filename, checkpoint.name) {
                                             ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:89:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L89) *style:* **Variable or function name should be snake_case.**
```r
	ddg.checkpoint.num <- RDataTracker:::.ddg.get("ddg.checkpoint.num")
        ^~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:89:28:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L89) *style:* **Put spaces around all infix operators.**
```r
	ddg.checkpoint.num <- RDataTracker:::.ddg.get("ddg.checkpoint.num")
                          ~^~~
```
[R/DDGCheckpoint.R:90:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L90) *style:* **Variable or function name should be snake_case.**
```r
	ddg.checkpoints <- RDataTracker:::.ddg.get("ddg.checkpoints")
        ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:90:25:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L90) *style:* **Put spaces around all infix operators.**
```r
	ddg.checkpoints <- RDataTracker:::.ddg.get("ddg.checkpoints")
                       ~^~~
```
[R/DDGCheckpoint.R:91:54:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L91) *style:* **Put spaces around all infix operators.**
```r
	ddg.checkpoints$filename[ddg.checkpoint.num] <- filename
                                                    ~^~~
```
[R/DDGCheckpoint.R:92:61:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L92) *style:* **Put spaces around all infix operators.**
```r
	ddg.checkpoints$checkpoint.name[ddg.checkpoint.num] <- checkpoint.name
                                                           ~^~~
```
[R/DDGCheckpoint.R:104:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L104) *style:* **Variable or function name should be snake_case.**
```r
ddg.checkpoint <- function(checkpoint.name=NULL) {
^~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:104:28:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L104) *style:* **Variable or function name should be snake_case.**
```r
ddg.checkpoint <- function(checkpoint.name=NULL) {
                           ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:105:12:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L105) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	if (!RDataTracker:::.ddg.is.init()) return(invisible())
           ^
```
[R/DDGCheckpoint.R:107:12:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L107) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	if (RDataTracker:::.ddg.debug()) print("Creating checkpoint")
           ^
```
[R/DDGCheckpoint.R:108:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L108) *style:* **Variable or function name should be snake_case.**
```r
	ddg.checkpoint.num <- RDataTracker:::.ddg.get("ddg.checkpoint.num")
        ^~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:108:28:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L108) *style:* **Put spaces around all infix operators.**
```r
	ddg.checkpoint.num <- RDataTracker:::.ddg.get("ddg.checkpoint.num")
                          ~^~~
```
[R/DDGCheckpoint.R:109:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L109) *style:* **Variable or function name should be snake_case.**
```r
	file.name <- paste(ddg.checkpoint.num, ".RData", sep="")
        ^~~~~~~~~
```
[R/DDGCheckpoint.R:109:19:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L109) *style:* **Put spaces around all infix operators.**
```r
	file.name <- paste(ddg.checkpoint.num, ".RData", sep="")
                 ~^~~
```
[R/DDGCheckpoint.R:110:19:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L110) *style:* **Put spaces around all infix operators.**
```r
	file.path <- paste(RDataTracker:::.ddg.path(), "/", file.name, sep="")
                 ~^~~
```
[R/DDGCheckpoint.R:111:12:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L111) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	if (is.null(checkpoint.name)) checkpoint.name <- file.name
           ^
```
[R/DDGCheckpoint.R:111:39:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L111) *style:* **Variable or function name should be snake_case.**
```r
	if (is.null(checkpoint.name)) checkpoint.name <- file.name
                                      ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:111:55:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L111) *style:* **Put spaces around all infix operators.**
```r
	if (is.null(checkpoint.name)) checkpoint.name <- file.name
                                                     ~^~~
```
[R/DDGCheckpoint.R:116:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L116) *style:* **Variable or function name should be snake_case.**
```r
	checkpoint.file <- .ddg.checkpoint.out(checkpoint.name, file.path)
        ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:116:21:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L116) *warning:* **no visible global function definition for ‘.ddg.checkpoint.out’**
```r
	checkpoint.file <- .ddg.checkpoint.out(checkpoint.name, file.path)
                    ^~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:116:25:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L116) *style:* **Put spaces around all infix operators.**
```r
	checkpoint.file <- .ddg.checkpoint.out(checkpoint.name, file.path)
                       ~^~~
```
[R/DDGCheckpoint.R:117:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L117) *style:* **lines should not be more than 80 characters.**
```r
	RDataTracker:::.ddg.set("ddg.checkpoint.num", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:117:55:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L117) *style:* **Place a space before left parenthesis, except in a function call.**
```r
	RDataTracker:::.ddg.set("ddg.checkpoint.num", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)
                                                      ^
```
[R/DDGCheckpoint.R:117:75:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L117) *style:* **Put spaces around all infix operators.**
```r
	RDataTracker:::.ddg.set("ddg.checkpoint.num", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)
                                                                         ~^~
```
[R/DDGCheckpoint.R:117:80:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L117) *style:* **Put spaces around all infix operators.**
```r
	RDataTracker:::.ddg.set("ddg.checkpoint.num", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)
                                                                              ~^~~
```
[R/DDGCheckpoint.R:118:2:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L118) *warning:* **no visible global function definition for ‘.ddg.record.checkpoint’**
```r
	.ddg.record.checkpoint(file.name, checkpoint.name)
 ^~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:124:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L124) *style:* **Variable or function name should be snake_case.**
```r
.ddg.lookup.checkpoint.name <- function(filename) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:125:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L125) *style:* **Variable or function name should be snake_case.**
```r
	ddg.checkpoints <- RDataTracker:::.ddg.get("ddg.checkpoints")
        ^~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:125:25:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L125) *style:* **Put spaces around all infix operators.**
```r
	ddg.checkpoints <- RDataTracker:::.ddg.get("ddg.checkpoints")
                       ~^~~
```
[R/DDGCheckpoint.R:126:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L126) *style:* **Variable or function name should be snake_case.**
```r
	nRow<-which(ddg.checkpoints$filename == filename)
        ^~~~
```
[R/DDGCheckpoint.R:126:13:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L126) *style:* **Put spaces around all infix operators.**
```r
	nRow<-which(ddg.checkpoints$filename == filename)
           ~^~~
```
[R/DDGCheckpoint.R:126:46:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L126) *style:* **Put spaces around all infix operators.**
```r
	nRow<-which(ddg.checkpoints$filename == filename)
                                            ~^~~
```
[R/DDGCheckpoint.R:145:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L145) *style:* **Variable or function name should be snake_case.**
```r
.ddg.mark.stale.data <- function(saved.env, checkpointed.env) {
^~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:145:34:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L145) *style:* **Variable or function name should be snake_case.**
```r
.ddg.mark.stale.data <- function(saved.env, checkpointed.env) {
                                 ^~~~~~~~~
```
[R/DDGCheckpoint.R:145:45:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L145) *style:* **Variable or function name should be snake_case.**
```r
.ddg.mark.stale.data <- function(saved.env, checkpointed.env) {
                                            ^~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:146:1:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L146) *style:* **lines should not be more than 80 characters.**
```r
	ddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c("filename", "original")))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:146:9:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L146) *style:* **Variable or function name should be snake_case.**
```r
	ddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c("filename", "original")))
        ^~~~~~~~~~~~~~~~~~~~
```
[R/DDGCheckpoint.R:146:30:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L146) *style:* **Put spaces around all infix operators.**
```r
	ddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c("filename", "original")))
                            ~^~~
```
[R/DDGCheckpoint.R:146:40:](https://github.com/tfjmp/RDataTracker/blob/da70fdb4254caa480936b1563d8158bb42a70b43/R/DDGCheckpoint.R#L146) *style:* **Only use double-quotes.**
```r
	ddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c("filename", "original")))


you can probably use `expr_text()`, `f_text()` or `quo_text()` instead of `deparse_trunc()`.


Hi Roshan,

You shared link to your repo couple of weeks ago at meetup at IBM. I'm just looking around.
I'll let you know at roshan.j@multunus.com if I need anything from you

Thanks
Chaitanya


Этот класс надо избавлять от вывода данных на экран. Его задача - хранение данных, как их отобразить пусть заботится вызывающий код