-
Notifications
You must be signed in to change notification settings - Fork 60
Repository
Stefan Widgren edited this page Jun 27, 2014
·
3 revisions
The central object in the git2r
package is the S4 class git_repository
. The following three methods can instantiate a repository; init
, repository
and clone
.
S4 class to handle a git repository
path: Path to a git repository
## Open an existing repository
repo <- repository(/path/to/git2r)
Summary of repository
summary(repo)
#> Remote: @ origin (https://github.com/ropensci/git2r)
#> Local: master /path/to/git2r/
#>
#> Branches: 1
#> Tags: 0
#> Commits: 320
#> Contributors: 3
#> Ignored files: 0
#> Untracked files: 0
#> Unstaged files: 0
#> Staged files: 0
List all commits in repository
commits(repo)[[1]] # Truncated here for readability
#> Commit: 6fb440133765e80649de8d714eaea17b114bd0a7
#> Author: Stefan Widgren <[email protected]>
#> When: 2014-04-22 21:43:19
#> Summary: Fixed clone progress to end line with newline
Create a new repository in a temporary directory using init
## Create a temporary directory to hold the repository
path <- tempfile(pattern="git2r-")
dir.create(path)
## Initialize the repository
repo <- init(path)
Display a brief summary of the new repository
repo
#> Local: /tmp/Rtmp7CXPlx/git2r-1ae2305c0e8d/
#> Head: nothing commited (yet)
Check if repository is bare
is_bare(repo)
#> [1] FALSE
Check if repository is empty
is_empty(repo)
#> [1] TRUE
Create a temporary directory to hold the repository
path <- tempfile(pattern="git2r-")
dir.create(path)
Initialize the repository
repo <- init(path, bare=TRUE)
Check if repository is bare
is_bare(repo)
#> [1] TRUE
Create a temporary directory to hold the repository
path <- file.path(tempfile(pattern="git2r-"), "git2r")
dir.create(path, recursive=TRUE)
Clone the git2r repository (Note: clone over https does not yet work on Windws)
repo <- clone("https://github.com/ropensci/git2r", path)
#> cloning into '/tmp/Rtmp7CXPlx/git2r-1ae27d811539/git2r'...
#> Receiving objects: 1% (24/2329), 12 kb
#> Receiving objects: 11% (257/2329), 60 kb
#> Receiving objects: 21% (490/2329), 100 kb
#> Receiving objects: 31% (722/2329), 125 kb
#> Receiving objects: 41% (955/2329), 237 kb
#> Receiving objects: 51% (1188/2329), 574 kb
#> Receiving objects: 61% (1421/2329), 1014 kb
#> Receiving objects: 71% (1654/2329), 1350 kb
#> Receiving objects: 81% (1887/2329), 1733 kb
#> Receiving objects: 91% (2120/2329), 2614 kb
#> Receiving objects: 100% (2329/2329), 2641 kb, done.