{"action":"created","issue":{"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/issues/261","repository_url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker","labels_url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/issues/261/labels{/name}","comments_url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/issues/261/comments","events_url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/issues/261/events","html_url":"https://github.com/End-to-end-provenance/RDataTracker/pull/261","id":215518757,"number":261,"title":"Travis integration + LintR","user":{"login":"tfjmp","id":1970355,"avatar_url":"https://avatars1.githubusercontent.com/u/1970355?v=3","gravatar_id":"","url":"https://api.github.com/users/tfjmp","html_url":"https://github.com/tfjmp","followers_url":"https://api.github.com/users/tfjmp/followers","following_url":"https://api.github.com/users/tfjmp/following{/other_user}","gists_url":"https://api.github.com/users/tfjmp/gists{/gist_id}","starred_url":"https://api.github.com/users/tfjmp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tfjmp/subscriptions","organizations_url":"https://api.github.com/users/tfjmp/orgs","repos_url":"https://api.github.com/users/tfjmp/repos","events_url":"https://api.github.com/users/tfjmp/events{/privacy}","received_events_url":"https://api.github.com/users/tfjmp/received_events","type":"User","site_admin":false},"labels":[{"id":96070664,"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":96070665,"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/labels/help%20wanted","name":"help wanted","color":"159818","default":true},{"id":477966732,"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/labels/high%20priority","name":"high priority","color":"00ff19","default":false},{"id":462099995,"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/labels/in%20progress","name":"in progress","color":"ededed","default":false}],"state":"open","locked":false,"assignee":{"login":"tfjmp","id":1970355,"avatar_url":"https://avatars1.githubusercontent.com/u/1970355?v=3","gravatar_id":"","url":"https://api.github.com/users/tfjmp","html_url":"https://github.com/tfjmp","followers_url":"https://api.github.com/users/tfjmp/followers","following_url":"https://api.github.com/users/tfjmp/following{/other_user}","gists_url":"https://api.github.com/users/tfjmp/gists{/gist_id}","starred_url":"https://api.github.com/users/tfjmp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tfjmp/subscriptions","organizations_url":"https://api.github.com/users/tfjmp/orgs","repos_url":"https://api.github.com/users/tfjmp/repos","events_url":"https://api.github.com/users/tfjmp/events{/privacy}","received_events_url":"https://api.github.com/users/tfjmp/received_events","type":"User","site_admin":false},"assignees":[{"login":"tfjmp","id":1970355,"avatar_url":"https://avatars1.githubusercontent.com/u/1970355?v=3","gravatar_id":"","url":"https://api.github.com/users/tfjmp","html_url":"https://github.com/tfjmp","followers_url":"https://api.github.com/users/tfjmp/followers","following_url":"https://api.github.com/users/tfjmp/following{/other_user}","gists_url":"https://api.github.com/users/tfjmp/gists{/gist_id}","starred_url":"https://api.github.com/users/tfjmp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tfjmp/subscriptions","organizations_url":"https://api.github.com/users/tfjmp/orgs","repos_url":"https://api.github.com/users/tfjmp/repos","events_url":"https://api.github.com/users/tfjmp/events{/privacy}","received_events_url":"https://api.github.com/users/tfjmp/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/milestones/3","html_url":"https://github.com/End-to-end-provenance/RDataTracker/milestone/3","labels_url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/milestones/3/labels","id":2071742,"number":3,"title":"CRAN Release","description":"This should really be done before linking up with RStudio. Also, it would be beneficial to have it on CRAN for future workshops.","creator":{"login":"MKLau","id":5342857,"avatar_url":"https://avatars0.githubusercontent.com/u/5342857?v=3","gravatar_id":"","url":"https://api.github.com/users/MKLau","html_url":"https://github.com/MKLau","followers_url":"https://api.github.com/users/MKLau/followers","following_url":"https://api.github.com/users/MKLau/following{/other_user}","gists_url":"https://api.github.com/users/MKLau/gists{/gist_id}","starred_url":"https://api.github.com/users/MKLau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MKLau/subscriptions","organizations_url":"https://api.github.com/users/MKLau/orgs","repos_url":"https://api.github.com/users/MKLau/repos","events_url":"https://api.github.com/users/MKLau/events{/privacy}","received_events_url":"https://api.github.com/users/MKLau/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":21,"state":"open","created_at":"2016-10-15T12:25:16Z","updated_at":"2017-03-20T18:48:49Z","due_on":"2017-01-31T08:00:00Z","closed_at":null},"comments":18,"created_at":"2017-03-20T18:46:09Z","updated_at":"2017-03-20T22:46:25Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/pulls/261","html_url":"https://github.com/End-to-end-provenance/RDataTracker/pull/261","diff_url":"https://github.com/End-to-end-provenance/RDataTracker/pull/261.diff","patch_url":"https://github.com/End-to-end-provenance/RDataTracker/pull/261.patch"},"body":"As discussed this morning, Travis CI integration for RDataTracker.\r\n\r\n- at the moment run lintR (static analysis tools for R).\r\n\r\nI will add support for regression test once they have been updated.\r\n\r\nOnce this pull request is accepted, the test should start to run automatically."},"comment":{"url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/issues/comments/287921798","html_url":"https://github.com/End-to-end-provenance/RDataTracker/pull/261#issuecomment-287921798","issue_url":"https://api.github.com/repos/End-to-end-provenance/RDataTracker/issues/261","id":287921798,"user":{"login":"lintr-bot","id":10925265,"avatar_url":"https://avatars0.githubusercontent.com/u/10925265?v=3","gravatar_id":"","url":"https://api.github.com/users/lintr-bot","html_url":"https://github.com/lintr-bot","followers_url":"https://api.github.com/users/lintr-bot/followers","following_url":"https://api.github.com/users/lintr-bot/following{/other_user}","gists_url":"https://api.github.com/users/lintr-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/lintr-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lintr-bot/subscriptions","organizations_url":"https://api.github.com/users/lintr-bot/orgs","repos_url":"https://api.github.com/users/lintr-bot/repos","events_url":"https://api.github.com/users/lintr-bot/events{/privacy}","received_events_url":"https://api.github.com/users/lintr-bot/received_events","type":"User","site_admin":false},"created_at":"2017-03-20T22:46:24Z","updated_at":"2017-03-20T22:46:24Z","body":"[R/DDGCheckpoint.R:1:2:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L1) *style:* **Commented code should be removed.**\n```r\n​########### Checkpoint/Restore functions for DDGs #############\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:2:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Increment data counter.\n^\n```\n[R/DDGCheckpoint.R:2:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tdname <- basename(filename)\n^\n```\n[R/DDGCheckpoint.R:2:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.checkpoint.num <- RDataTracker:::.ddg.get(\"ddg.checkpoint.num\")\n^\n```\n[R/DDGCheckpoint.R:2:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (!RDataTracker:::.ddg.is.init()) return(invisible())\n^\n```\n[R/DDGCheckpoint.R:2:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.checkpoints <- RDataTracker:::.ddg.get(\"ddg.checkpoints\")\n^\n```\n[R/DDGCheckpoint.R:2:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c(\"filename\", \"original\")))\n^\n```\n[R/DDGCheckpoint.R:2:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L2) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (!RDataTracker:::.ddg.is.init()) return(invisible())\n^\n```\n[R/DDGCheckpoint.R:3:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.inc(\"ddg.dnum\")\n^\n```\n[R/DDGCheckpoint.R:3:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.checkpoints <- RDataTracker:::.ddg.get(\"ddg.checkpoints\")\n^\n```\n[R/DDGCheckpoint.R:3:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tnRow<-which(ddg.checkpoints$filename == filename)\n^\n```\n[R/DDGCheckpoint.R:3:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L3) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tsaved.names <- ls (saved.env, all.names = TRUE)\n^\n```\n[R/DDGCheckpoint.R:4:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Create output file node where name = filename.\n^\n```\n[R/DDGCheckpoint.R:4:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.checkpoints$filename[ddg.checkpoint.num] <- filename\n^\n```\n[R/DDGCheckpoint.R:4:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(\"Creating checkpoint\")\n^\n```\n[R/DDGCheckpoint.R:4:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\treturn(ddg.checkpoints$checkpoint.name[nRow])\n^\n```\n[R/DDGCheckpoint.R:4:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Mark the data that was in the checkpointed table to be consistent\n^\n```\n[R/DDGCheckpoint.R:4:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfor (saved.name in saved.names) {\n^\n```\n[R/DDGCheckpoint.R:4:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L4) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Remove the directories.\n^\n```\n[R/DDGCheckpoint.R:5:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Get checkpoint file location.\n^\n```\n[R/DDGCheckpoint.R:5:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tsaved.file <- .ddg.checkpoint.file.node(filename, dname, checkpoint.name)\n^\n```\n[R/DDGCheckpoint.R:5:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.checkpoints$checkpoint.name[ddg.checkpoint.num] <- checkpoint.name\n^\n```\n[R/DDGCheckpoint.R:5:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.checkpoint.num <- RDataTracker:::.ddg.get(\"ddg.checkpoint.num\")\n^\n```\n[R/DDGCheckpoint.R:5:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# with the checkpoint.\n^\n```\n[R/DDGCheckpoint.R:5:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\tsaved.value <- saved.env[[saved.name]]\n^~\n```\n[R/DDGCheckpoint.R:5:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L5) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.name <- basename(file.path)\n^\n```\n[R/DDGCheckpoint.R:6:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.name <- basename(fname)\n^\n```\n[R/DDGCheckpoint.R:6:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.set(\"ddg.checkpoints\", ddg.checkpoints)\n^\n```\n[R/DDGCheckpoint.R:6:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.name <- paste(ddg.checkpoint.num, \".RData\", sep=\"\")\n^\n```\n[R/DDGCheckpoint.R:6:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.dnum <- checkpointed.env[[\"ddg.dnum\"]]\n^\n```\n[R/DDGCheckpoint.R:6:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L6) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\tddg.env[[saved.name]] <- saved.value\n^~\n```\n[R/DDGCheckpoint.R:7:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.loc <- dirname(normalizePath(fname, winslash=\"/\", mustWork = FALSE))\n^\n```\n[R/DDGCheckpoint.R:7:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Create data flow edge from operation node to file node.\n^\n```\n[R/DDGCheckpoint.R:7:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.path <- paste(RDataTracker:::.ddg.path(), \"/\", file.name, sep=\"\")\n^\n```\n[R/DDGCheckpoint.R:7:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.data.nodes <- checkpointed.env[[\"ddg.data.nodes\"]]\n^\n```\n[R/DDGCheckpoint.R:7:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t}\n^\n```\n[R/DDGCheckpoint.R:7:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L7) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Remove the node number.\n^\n```\n[R/DDGCheckpoint.R:8:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.proc2data(checkpoint.name, dname)\n^\n```\n[R/DDGCheckpoint.R:8:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (is.null(checkpoint.name)) checkpoint.name <- file.name\n^\n```\n[R/DDGCheckpoint.R:8:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.saved.data.nodes <- saved.env[[\"ddg.data.nodes\"]]\n^\n```\n[R/DDGCheckpoint.R:8:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\treturn (ddg.env)\n^\n```\n[R/DDGCheckpoint.R:8:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L8) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.name.start <- regexpr(\"-\", file.name) + 1\n^\n```\n[R/DDGCheckpoint.R:9:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Add number to file name.\n^\n```\n[R/DDGCheckpoint.R:9:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.proc.node(\"Checkpoint\", checkpoint.name)\n^\n```\n[R/DDGCheckpoint.R:9:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfor (i in 1:ddg.dnum) {\n^\n```\n[R/DDGCheckpoint.R:9:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L9) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.name.end <- nchar(file.name)\n^\n```\n[R/DDGCheckpoint.R:10:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.dnum <- RDataTracker:::.ddg.dnum()\n^\n```\n[R/DDGCheckpoint.R:10:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\treturn (saved.file)\n^\n```\n[R/DDGCheckpoint.R:10:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\tddg.saved.data.nodes$ddg.current[i] <- ddg.data.nodes$ddg.current[i]\n^~\n```\n[R/DDGCheckpoint.R:10:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L10) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tfile.name <- substr(file.name, file.name.start, file.name.end)\n^\n```\n[R/DDGCheckpoint.R:11:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L11) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tdfile <- paste(ddg.dnum, \"-\", file.name, sep=\"\")\n^\n```\n[R/DDGCheckpoint.R:11:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L11) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Create control flow edge from preceding procedure node.\n^\n```\n[R/DDGCheckpoint.R:11:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L11) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tcheckpoint.name <- .ddg.lookup.checkpoint.name(file.name)\n^\n```\n[R/DDGCheckpoint.R:12:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L12) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.proc2proc()\n^\n```\n[R/DDGCheckpoint.R:12:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L12) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t# Determine the most recent version of each file at the time the\n^~\n```\n[R/DDGCheckpoint.R:12:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L12) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.proc.node(\"Restore\", checkpoint.name)\n^\n```\n[R/DDGCheckpoint.R:13:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L13) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Get path plus file name.\n^\n```\n[R/DDGCheckpoint.R:13:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L13) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tcheckpoint.file <- .ddg.checkpoint.out(checkpoint.name, file.path)\n^\n```\n[R/DDGCheckpoint.R:13:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L13) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t# checkpoint was taken.\n^~\n```\n[R/DDGCheckpoint.R:14:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tdpfile.out <- paste(RDataTracker:::.ddg.path(), \"/\", dfile, sep=\"\")\n^\n```\n[R/DDGCheckpoint.R:14:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.set(\"ddg.checkpoint.num\", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)\n^\n```\n[R/DDGCheckpoint.R:14:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\tif (ddg.saved.data.nodes$ddg.type[i] == \"File\") {\n^~\n```\n[R/DDGCheckpoint.R:14:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L14) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Create control flow edge from preceding procedure node.\n^\n```\n[R/DDGCheckpoint.R:15:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L15) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t.ddg.record.checkpoint(file.name, checkpoint.name)\n^\n```\n[R/DDGCheckpoint.R:15:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L15) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\tnRow<-which(ddg.files.to.restore[,\"original\"] == ddg.saved.data.nodes$ddg.loc[i])\n^~~\n```\n[R/DDGCheckpoint.R:15:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L15) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.proc2proc()\n^\n```\n[R/DDGCheckpoint.R:16:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(paste(\"Saving checkpoint in\", dpfile.out))\n^\n```\n[R/DDGCheckpoint.R:16:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\treturn (checkpoint.file)\n^\n```\n[R/DDGCheckpoint.R:16:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\tif (length(nRow) > 0) {\n^~~\n```\n[R/DDGCheckpoint.R:16:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L16) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.data2proc(file.name, \"undefined\", checkpoint.name)\n^\n```\n[R/DDGCheckpoint.R:17:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L17) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tddg.files.to.restore[nRow,\"filename\"] <- paste(ddg.saved.data.nodes$ddg.num[i], \"-\", ddg.saved.data.nodes$ddg.name[i], sep=\"\")\n^~~~\n```\n[R/DDGCheckpoint.R:18:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L18) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Create checkpoint.\n^\n```\n[R/DDGCheckpoint.R:18:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L18) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t}\n^~~\n```\n[R/DDGCheckpoint.R:18:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L18) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(paste(\"Restoring from\", file.path))\n^\n```\n[R/DDGCheckpoint.R:19:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L19) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\ttoSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))\n^\n```\n[R/DDGCheckpoint.R:19:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L19) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\telse {\n^~~\n```\n[R/DDGCheckpoint.R:20:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L20) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(toSave) }\n^\n```\n[R/DDGCheckpoint.R:20:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L20) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tnewfile = c(paste(ddg.saved.data.nodes$ddg.num[i], \"-\", ddg.saved.data.nodes$ddg.name[i], sep=\"\"), ddg.saved.data.nodes$ddg.loc[i])\n^~~~\n```\n[R/DDGCheckpoint.R:20:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L20) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Update the ddg tables so that the ddg will get extended to\n^\n```\n[R/DDGCheckpoint.R:21:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L21) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tddg.files.to.restore <- rbind(ddg.files.to.restore, newfile)\n^~~~\n```\n[R/DDGCheckpoint.R:22:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L22) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# toSave <- ls(envir=.GlobalEnv)\n^\n```\n[R/DDGCheckpoint.R:22:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L22) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t}\n^~~\n```\n[R/DDGCheckpoint.R:23:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L23) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# save (list = toSave, file = dpfile.out, envir = parent.frame(3))\n^\n```\n[R/DDGCheckpoint.R:23:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L23) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t}\n^~\n```\n[R/DDGCheckpoint.R:24:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L24) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tsave (list = toSave, file = dpfile.out)\n^\n```\n[R/DDGCheckpoint.R:25:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L25) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.dpfile.out <- paste(dpfile.out, \"ddg\", sep=\".\")\n^\n```\n[R/DDGCheckpoint.R:25:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L25) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\telse if (ddg.saved.data.nodes$ddg.type[i] == \"Checkpoint\") {\n^~\n```\n[R/DDGCheckpoint.R:25:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L25) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tsaved.ddg.env <- RDataTracker:::.ddg.env\n^\n```\n[R/DDGCheckpoint.R:26:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L26) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }\n^\n```\n[R/DDGCheckpoint.R:26:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L26) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\tddg.saved.data.nodes$ddg.current[i] <- TRUE\n^~~\n```\n[R/DDGCheckpoint.R:26:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L26) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) load (file.path, .GlobalEnv, verbose=TRUE)\n^\n```\n[R/DDGCheckpoint.R:27:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L27) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tsave (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)\n^\n```\n[R/DDGCheckpoint.R:27:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L27) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t}\n^~\n```\n[R/DDGCheckpoint.R:27:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L27) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\telse load (file.path, .GlobalEnv)\n^\n```\n[R/DDGCheckpoint.R:28:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L28) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t}\n^\n```\n[R/DDGCheckpoint.R:28:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L28) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.file.path <- paste(file.path, \"ddg\", sep=\".\")\n^\n```\n[R/DDGCheckpoint.R:29:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L29) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Create the node.\n^\n```\n[R/DDGCheckpoint.R:29:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L29) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tcheckpointed.ddg.env <- new.env()\n^\n```\n[R/DDGCheckpoint.R:30:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L30) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tdtime <- RDataTracker:::.ddg.timestamp()\n^\n```\n[R/DDGCheckpoint.R:30:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L30) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Mark the data entries made after the checkpoint to be not current\n^\n```\n[R/DDGCheckpoint.R:30:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L30) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) load(ddg.file.path, checkpointed.ddg.env, verbose=TRUE)\n^\n```\n[R/DDGCheckpoint.R:31:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L31) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.append(\"CheckpointFile\", \" d\", ddg.dnum, \" \\\"\", ddg.dnum, \"-\", file.name, \"\\\" Value=\\\"\", dpfile.out, \"\\\" Time=\\\"\", dtime, \"\\\";\\n\", sep=\"\")\n^\n```\n[R/DDGCheckpoint.R:31:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L31) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tddg.saved.dnum <- saved.env[[\"ddg.dnum\"]]\n^\n```\n[R/DDGCheckpoint.R:31:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L31) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\telse load(ddg.file.path, checkpointed.ddg.env)\n^\n```\n[R/DDGCheckpoint.R:32:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L32) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (ddg.dnum < ddg.saved.dnum) {\n^\n```\n[R/DDGCheckpoint.R:32:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L32) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t.ddg.mark.stale.data(saved.ddg.env, checkpointed.ddg.env)\n^\n```\n[R/DDGCheckpoint.R:33:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L33) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Record data node information.\n^\n```\n[R/DDGCheckpoint.R:33:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L33) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\tfor (i in (ddg.dnum+1):ddg.saved.dnum) {\n^~\n```\n[R/DDGCheckpoint.R:33:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L33) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tassign(\"RDataTracker:::.ddg.env\", .ddg.restore.ddg.state(saved.ddg.env, checkpointed.ddg.env))\n^\n```\n[R/DDGCheckpoint.R:34:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L34) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tRDataTracker:::.ddg.record.data(\"Checkpoint\", file.name, dfile, \"undefined\", dtime, file.loc)\n^\n```\n[R/DDGCheckpoint.R:34:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L34) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\tif (ddg.saved.data.nodes$ddg.type[i] != \"Checkpoint\") {\n^~~\n```\n[R/DDGCheckpoint.R:35:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L35) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tddg.saved.data.nodes$ddg.current[i] <- FALSE\n^~~~\n```\n[R/DDGCheckpoint.R:35:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L35) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tinvisible()\n^\n```\n[R/DDGCheckpoint.R:36:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L36) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(paste(\"file.copy: Checkpoint\", fname))\n^\n```\n[R/DDGCheckpoint.R:36:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L36) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t}\n^~~\n```\n[R/DDGCheckpoint.R:37:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L37) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\treturn (dpfile.out)\n^\n```\n[R/DDGCheckpoint.R:37:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L37) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t}\n^~\n```\n[R/DDGCheckpoint.R:37:19:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L37) *style:* **Put spaces around all infix operators.**\n```r\n​\tfile.name <- basename(fname)\n                 ~^~~\n```\n[R/DDGCheckpoint.R:38:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L38) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t}\n^\n```\n[R/DDGCheckpoint.R:38:18:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L38) *style:* **Put spaces around all infix operators.**\n```r\n​\tfile.loc <- dirname(normalizePath(fname, winslash=\"/\", mustWork = FALSE))\n                ~^~~\n```\n[R/DDGCheckpoint.R:38:58:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L38) *style:* **Put spaces around all infix operators.**\n```r\n​\tfile.loc <- dirname(normalizePath(fname, winslash=\"/\", mustWork = FALSE))\n                                                        ~^~\n```\n[R/DDGCheckpoint.R:38:73:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L38) *style:* **Put spaces around all infix operators.**\n```r\n​\tfile.loc <- dirname(normalizePath(fname, winslash=\"/\", mustWork = FALSE))\n                                                                       ~^~\n```\n[R/DDGCheckpoint.R:39:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L39) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tsaved.env[[\"ddg.data.nodes\"]] <- ddg.saved.data.nodes\n^\n```\n[R/DDGCheckpoint.R:41:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L41) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# Restore files that have been modified or deleted since the\n^\n```\n[R/DDGCheckpoint.R:41:18:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L41) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.dnum <- RDataTracker:::.ddg.dnum()\n                ~^~~\n```\n[R/DDGCheckpoint.R:42:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L42) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t# checkpoint.\n^\n```\n[R/DDGCheckpoint.R:42:15:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L42) *style:* **Put spaces around all infix operators.**\n```r\n​\tdfile <- paste(ddg.dnum, \"-\", file.name, sep=\"\")\n             ~^~~\n```\n[R/DDGCheckpoint.R:43:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L43) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tnum.files.to.restore <- nrow(ddg.files.to.restore)\n^\n```\n[R/DDGCheckpoint.R:44:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L44) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\tif (num.files.to.restore > 0) {\n^\n```\n[R/DDGCheckpoint.R:45:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L45) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t# ddg.path <- RDataTracker:::.ddg.path()\n^~\n```\n[R/DDGCheckpoint.R:45:20:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L45) *style:* **Put spaces around all infix operators.**\n```r\n​\tdpfile.out <- paste(RDataTracker:::.ddg.path(), \"/\", dfile, sep=\"\")\n                  ~^~~\n```\n[R/DDGCheckpoint.R:46:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L46) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\tddg.path <- saved.env[[\"ddg.path\"]]\n^~\n```\n[R/DDGCheckpoint.R:47:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L47) *style:* **lines should not be more than 80 characters.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(paste(\"Saving checkpoint in\", dpfile.out))\n^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:47:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L47) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\tfor (i in 1:num.files.to.restore) {\n^~\n```\n[R/DDGCheckpoint.R:47:12:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L47) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(paste(\"Saving checkpoint in\", dpfile.out))\n           ^\n```\n[R/DDGCheckpoint.R:48:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L48) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\toriginal <- ddg.files.to.restore[i, 2]\n^~~\n```\n[R/DDGCheckpoint.R:49:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L49) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\tsaved <- paste(ddg.path, ddg.files.to.restore[i, 1], sep=\"/\")\n^~~\n```\n[R/DDGCheckpoint.R:50:16:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L50) *style:* **Put spaces around all infix operators.**\n```r\n​\ttoSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))\n              ~^~~\n```\n[R/DDGCheckpoint.R:50:31:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L50) *style:* **Put spaces around all infix operators.**\n```r\n​\ttoSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))\n                             ~^~\n```\n[R/DDGCheckpoint.R:50:55:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L50) *style:* **Put spaces around all infix operators.**\n```r\n​\ttoSave <- c (ls(envir = .GlobalEnv, all.names = TRUE))\n                                                     ~^~\n```\n[R/DDGCheckpoint.R:51:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L51) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t# Original file is newer than the one to be restored from the\n^~~\n```\n[R/DDGCheckpoint.R:51:12:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L51) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(toSave) }\n           ^\n```\n[R/DDGCheckpoint.R:51:42:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L51) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(toSave) }\n                                         ^\n```\n[R/DDGCheckpoint.R:51:75:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L51) *style:* **Closing curly-braces should always be on their own line, unless it's followed by an else.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(toSave) }\n                                                                          ^\n```\n[R/DDGCheckpoint.R:52:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L52) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t# DDG. Save the original file in a special place before\n^~~\n```\n[R/DDGCheckpoint.R:53:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L53) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t# restoring the DDG file.\n^~~\n```\n[R/DDGCheckpoint.R:53:4:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L53) *style:* **Commented code should be removed.**\n```r\n​\t# toSave <- ls(envir=.GlobalEnv)\n   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:54:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L54) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\tif (file.exists(original)) {\n^~~\n```\n[R/DDGCheckpoint.R:54:4:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L54) *style:* **Commented code should be removed.**\n```r\n​\t# save (list = toSave, file = dpfile.out, envir = parent.frame(3))\n   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:55:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L55) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tmodTime.original <- file.info(original)$mtime[1]\n^~~~\n```\n[R/DDGCheckpoint.R:55:20:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L55) *style:* **Put spaces around all infix operators.**\n```r\n​\tsave (list = toSave, file = dpfile.out)\n                  ~^~\n```\n[R/DDGCheckpoint.R:55:35:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L55) *style:* **Put spaces around all infix operators.**\n```r\n​\tsave (list = toSave, file = dpfile.out)\n                                 ~^~\n```\n[R/DDGCheckpoint.R:56:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L56) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tmodTime.saved <- file.info(saved)$mtime[1]\n^~~~\n```\n[R/DDGCheckpoint.R:56:24:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L56) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.dpfile.out <- paste(dpfile.out, \"ddg\", sep=\".\")\n                      ~^~~\n```\n[R/DDGCheckpoint.R:57:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L57) *style:* **lines should not be more than 80 characters.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }\n^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:57:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L57) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tif (modTime.original >= modTime.saved) {\n^~~~\n```\n[R/DDGCheckpoint.R:57:12:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L57) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }\n           ^\n```\n[R/DDGCheckpoint.R:57:42:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L57) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }\n                                         ^\n```\n[R/DDGCheckpoint.R:57:104:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L57) *style:* **Put spaces around all infix operators.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }\n                                                                                                      ~^~\n```\n[R/DDGCheckpoint.R:57:112:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L57) *style:* **Closing curly-braces should always be on their own line, unless it's followed by an else.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) { print(\"Saving\"); print(ls(RDataTracker:::.ddg.env, all.names=TRUE)) }\n                                                                                                               ^\n```\n[R/DDGCheckpoint.R:58:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L58) *style:* **lines should not be more than 80 characters.**\n```r\n​\tsave (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)\n^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:58:20:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**\n```r\n​\tsave (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)\n                  ~^~\n```\n[R/DDGCheckpoint.R:58:59:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**\n```r\n​\tsave (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)\n                                                         ~^~\n```\n[R/DDGCheckpoint.R:58:71:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**\n```r\n​\tsave (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)\n                                                                     ~^~\n```\n[R/DDGCheckpoint.R:58:93:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L58) *style:* **Put spaces around all infix operators.**\n```r\n​\tsave (list = ls(RDataTracker:::.ddg.env, all.names=TRUE), file=ddg.dpfile.out, envir=RDataTracker:::.ddg.env)\n                                                                                           ~^~\n```\n[R/DDGCheckpoint.R:59:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L59) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\t# Windows does not allow colons in the names of directories\n^~~~~\n```\n[R/DDGCheckpoint.R:60:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L60) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\tmodTime.original.str <- gsub(\" \",\"T\", gsub(\":\",\".\",as.character(modTime.original)))\n^~~~~\n```\n[R/DDGCheckpoint.R:61:15:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L61) *style:* **Put spaces around all infix operators.**\n```r\n​\tdtime <- RDataTracker:::.ddg.timestamp()\n             ~^~~\n```\n[R/DDGCheckpoint.R:62:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L62) *style:* **lines should not be more than 80 characters.**\n```r\n​\tRDataTracker:::.ddg.append(\"CheckpointFile\", \" d\", ddg.dnum, \" \\\"\", ddg.dnum, \"-\", file.name, \"\\\" Value=\\\"\", dpfile.out, \"\\\" Time=\\\"\", dtime, \"\\\";\\n\", sep=\"\")\n^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:62:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L62) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\trescue.dir <- paste(getwd(), \"/ddg.rescued.files/\", sep=\"\")\n^~~~~\n```\n[R/DDGCheckpoint.R:63:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L63) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\tdir.create(rescue.dir, showWarnings=FALSE)\n^~~~~\n```\n[R/DDGCheckpoint.R:64:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L64) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\trescue.filename <- paste(rescue.dir, modTime.original.str, \"-\", basename(original), sep=\"\")\n^~~~~\n```\n[R/DDGCheckpoint.R:65:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L65) *style:* **lines should not be more than 80 characters.**\n```r\n​\tRDataTracker:::.ddg.record.data(\"Checkpoint\", file.name, dfile, \"undefined\", dtime, file.loc)\n^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:65:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L65) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\twarning(\"Saving \", original, \" in \", rescue.filename)\n^~~~~\n```\n[R/DDGCheckpoint.R:66:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L66) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\tfile.copy(original, rescue.filename, overwrite=TRUE)\n^~~~~\n```\n[R/DDGCheckpoint.R:67:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L67) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t\tfile.copy(saved, original, overwrite=TRUE)\n^~~~~\n```\n[R/DDGCheckpoint.R:67:12:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L67) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(paste(\"file.copy: Checkpoint\", fname))\n           ^\n```\n[R/DDGCheckpoint.R:68:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L68) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\t}\n^~~~\n```\n[R/DDGCheckpoint.R:69:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L69) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t}\n^~~\n```\n[R/DDGCheckpoint.R:71:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L71) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t# Original file no longer exists. Just copy in the DDG file.\n^~~\n```\n[R/DDGCheckpoint.R:72:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L72) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\telse {\n^~~\n```\n[R/DDGCheckpoint.R:73:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L73) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t\tfile.copy(saved, original)\n^~~~\n```\n[R/DDGCheckpoint.R:74:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L74) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t\t}\n^~~\n```\n[R/DDGCheckpoint.R:74:15:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L74) *style:* **Put spaces around all infix operators.**\n```r\n​\tdname <- basename(filename)\n             ~^~~\n```\n[R/DDGCheckpoint.R:75:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L75) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t\t}\n^~\n```\n[R/DDGCheckpoint.R:76:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L76) *style:* **Use two spaces to indent, never tabs.**\n```r\n​\t}\n^\n```\n[R/DDGCheckpoint.R:77:16:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L77) *warning:* **no visible global function definition for ‘.ddg.checkpoint.file.node’**\n```r\n​\tsaved.file <- .ddg.checkpoint.file.node(filename, dname, checkpoint.name)\n               ^~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:77:20:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L77) *style:* **Put spaces around all infix operators.**\n```r\n​\tsaved.file <- .ddg.checkpoint.file.node(filename, dname, checkpoint.name)\n                  ~^~~\n```\n[R/DDGCheckpoint.R:89:28:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L89) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.checkpoint.num <- RDataTracker:::.ddg.get(\"ddg.checkpoint.num\")\n                          ~^~~\n```\n[R/DDGCheckpoint.R:90:25:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L90) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.checkpoints <- RDataTracker:::.ddg.get(\"ddg.checkpoints\")\n                       ~^~~\n```\n[R/DDGCheckpoint.R:91:54:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L91) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.checkpoints$filename[ddg.checkpoint.num] <- filename\n                                                    ~^~~\n```\n[R/DDGCheckpoint.R:92:61:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L92) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.checkpoints$checkpoint.name[ddg.checkpoint.num] <- checkpoint.name\n                                                           ~^~~\n```\n[R/DDGCheckpoint.R:105:12:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L105) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tif (!RDataTracker:::.ddg.is.init()) return(invisible())\n           ^\n```\n[R/DDGCheckpoint.R:107:12:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L107) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tif (RDataTracker:::.ddg.debug()) print(\"Creating checkpoint\")\n           ^\n```\n[R/DDGCheckpoint.R:108:28:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L108) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.checkpoint.num <- RDataTracker:::.ddg.get(\"ddg.checkpoint.num\")\n                          ~^~~\n```\n[R/DDGCheckpoint.R:109:19:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L109) *style:* **Put spaces around all infix operators.**\n```r\n​\tfile.name <- paste(ddg.checkpoint.num, \".RData\", sep=\"\")\n                 ~^~~\n```\n[R/DDGCheckpoint.R:110:19:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L110) *style:* **Put spaces around all infix operators.**\n```r\n​\tfile.path <- paste(RDataTracker:::.ddg.path(), \"/\", file.name, sep=\"\")\n                 ~^~~\n```\n[R/DDGCheckpoint.R:111:12:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L111) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tif (is.null(checkpoint.name)) checkpoint.name <- file.name\n           ^\n```\n[R/DDGCheckpoint.R:111:55:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L111) *style:* **Put spaces around all infix operators.**\n```r\n​\tif (is.null(checkpoint.name)) checkpoint.name <- file.name\n                                                     ~^~~\n```\n[R/DDGCheckpoint.R:116:21:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L116) *warning:* **no visible global function definition for ‘.ddg.checkpoint.out’**\n```r\n​\tcheckpoint.file <- .ddg.checkpoint.out(checkpoint.name, file.path)\n                    ^~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:116:25:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L116) *style:* **Put spaces around all infix operators.**\n```r\n​\tcheckpoint.file <- .ddg.checkpoint.out(checkpoint.name, file.path)\n                       ~^~~\n```\n[R/DDGCheckpoint.R:117:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L117) *style:* **lines should not be more than 80 characters.**\n```r\n​\tRDataTracker:::.ddg.set(\"ddg.checkpoint.num\", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)\n^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:117:55:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L117) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tRDataTracker:::.ddg.set(\"ddg.checkpoint.num\", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)\n                                                      ^\n```\n[R/DDGCheckpoint.R:117:75:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L117) *style:* **Put spaces around all infix operators.**\n```r\n​\tRDataTracker:::.ddg.set(\"ddg.checkpoint.num\", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)\n                                                                         ~^~\n```\n[R/DDGCheckpoint.R:117:80:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L117) *style:* **Put spaces around all infix operators.**\n```r\n​\tRDataTracker:::.ddg.set(\"ddg.checkpoint.num\", (ddg.checkpoint.num + 1) %% RDataTracker:::ddg.MAX_CHECKPOINTS)\n                                                                              ~^~~\n```\n[R/DDGCheckpoint.R:118:2:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L118) *warning:* **no visible global function definition for ‘.ddg.record.checkpoint’**\n```r\n​\t.ddg.record.checkpoint(file.name, checkpoint.name)\n ^~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:125:25:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L125) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.checkpoints <- RDataTracker:::.ddg.get(\"ddg.checkpoints\")\n                       ~^~~\n```\n[R/DDGCheckpoint.R:126:13:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L126) *style:* **Put spaces around all infix operators.**\n```r\n​\tnRow<-which(ddg.checkpoints$filename == filename)\n           ~^~~\n```\n[R/DDGCheckpoint.R:126:46:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L126) *style:* **Put spaces around all infix operators.**\n```r\n​\tnRow<-which(ddg.checkpoints$filename == filename)\n                                            ~^~~\n```\n[R/DDGCheckpoint.R:146:1:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L146) *style:* **lines should not be more than 80 characters.**\n```r\n​\tddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c(\"filename\", \"original\")))\n^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n[R/DDGCheckpoint.R:146:30:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L146) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c(\"filename\", \"original\")))\n                            ~^~~\n```\n[R/DDGCheckpoint.R:146:40:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L146) *style:* **Only use double-quotes.**\n```r\n​\tddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c(\"filename\", \"original\")))\n                                       ^~\n```\n[R/DDGCheckpoint.R:146:48:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L146) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c(\"filename\", \"original\")))\n                                              ~^~\n```\n[R/DDGCheckpoint.R:146:56:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L146) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c(\"filename\", \"original\")))\n                                                      ~^~\n```\n[R/DDGCheckpoint.R:146:68:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L146) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.files.to.restore <- matrix('', nrow=0, ncol=2, dimnames=list(NULL, c(\"filename\", \"original\")))\n                                                                  ~^~\n```\n[R/DDGCheckpoint.R:150:18:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L150) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.dnum <- checkpointed.env[[\"ddg.dnum\"]]\n                ~^~~\n```\n[R/DDGCheckpoint.R:151:24:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L151) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.data.nodes <- checkpointed.env[[\"ddg.data.nodes\"]]\n                      ~^~~\n```\n[R/DDGCheckpoint.R:152:30:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L152) *style:* **Put spaces around all infix operators.**\n```r\n​\tddg.saved.data.nodes <- saved.env[[\"ddg.data.nodes\"]]\n                            ~^~~\n```\n[R/DDGCheckpoint.R:153:13:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L153) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\tfor (i in 1:ddg.dnum) {\n            ^\n```\n[R/DDGCheckpoint.R:154:53:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L154) *style:* **Put spaces around all infix operators.**\n```r\n​\t\tddg.saved.data.nodes$ddg.current[i] <- ddg.data.nodes$ddg.current[i]\n                                                   ~^~~\n```\n[R/DDGCheckpoint.R:158:20:](https://github.com/End-to-end-provenance/RDataTracker/blob/e9ded012f1220ac941e008ada3bc024ae78a2fc5/R/DDGCheckpoint.R#L158) *style:* **Place a space before left parenthesis, except in a function call.**\n```r\n​\t\tif (ddg.saved.data.nodes$ddg.type[i] == \"File\") {\n                   ^\n```\n"}}
{"actor":{"display_login":"lintr-bot"}}