Provides Access to Git Repositories

Interface to the 'libgit2' library, which is a pure C implementation of the 'Git' core methods. Provides access to 'Git' repositories to extract data and running some basic 'Git' commands.


News

IMPROVEMENTS

  • Updated the bundled libgit2 source code to commit (6b0510e) from 20 December 2016.

  • Static linking of LibSSH2 on mac to support redistributable binary package with SSH transport enabled. Version 1.8.0 of LibSSH2 is downloaded and built from 'https://www.libssh2.org/download/'.

IMPROVEMENTS

  • Updated libgit2 source code to commit (6b0510e) from 17 November 2016.

  • Add the option 'all_untracked' to the 'status' method to show individual files in untracked directories if the 'untracked' option is TRUE.

  • Add the 'tag_delete' method to delete an existing tag reference.

  • Update build configuration to support OpenSSL 1.1.0.

  • If the the 'getPass' package is installed the 'cred_ssh_key' method to create a new passphrase-protected ssh key credential object will call the 'getPass::getPass()' method if the private key is passphrase protected to allow for interactive input of the passphrase. The 'getPass' package is a suggested package. (Peter Meissner in PR #254)

  • Add 'path' argument to the 'reset' method to enable path-specific unstage, i.e. resets the index entries for all paths to their state at HEAD

BUG FIXES

  • Build configuration: use portable string equality comparison operator. This fixes the build e.g. for those without Bash as /bin/sh. (Sander Maijers in PR #243).

IMPROVEMENTS

  • Build configuration: 'pkg-config' is now used to find 'libssl', if possible (Elias Pipping in PR #231).

  • Added a method to coerce a 'git_commit' object to a 'data.frame'.

  • Added the method 'is_branch' to check if an object is a 'git_branch'.

BUG FIXES

  • Build configuration: fixed installation with parallel make (Kirill Müller in PR #228).

IMPROVEMENTS

  • Updated libgit2 source code to commit (785d8c48) from 2016-03-04. This is release v0.24.0 of libgit2.

  • Refactoring of the build scripts.

  • Added a check that the configuration key is valid when setting a configuration variable and output a warning if the key is invalid.

  • The status method now prints "working directory clean" instead of nothing when the working directory is clean.

  • Added the 'refspec' argument to the 'fetch' method to specify the refs to fetch and which local refs to update.

  • Added a workaround to the 'commit' method to list commits in a shallow clone since the libgit2 library does not yet support this.

BUG FIXES

  • This is a bug-fix release to solve problems introduced in version 0.12.1:

    • The bundled libgit2 source code has been reverted to commit (98f7bd2) from 2015-08-05 (same as in v0.11.0) to fix memory alignment errors (clang-UBSAN and gcc-UBSAN).

    • OpenSSL is now used again on OS X to provide the cryptographic support for HTTPS connections to fix a significant compiler warning (arithmetic on a pointer to void is a GNU extension [-Wpointer-arith]) on r-devel-osx-x86_64-clang.

    • Several fixes to the build configuration on non-Windows platforms.

NEW FEATURES

  • Add 'remote_ls' method to list references in a remote repository akin to the git ls-remote command.

  • Add 'remote_set_url' method to set the remote's url in the configuration.

  • Add 'cred_token' S4 class to hold the name of the environmental variable with the secret. Default value for the name is GITHUB_PAT.

  • It is now possible to checkout a specific file with the 'checkout' method.

  • Add 'ssl_cert_locations' method to set libgit2 global option 'GIT_OPT_SET_SSL_CERT_LOCATIONS'

  • Add 'ceiling' argument to 'discover_repository' method to prevent search from walking up the parent directories.

CHANGES

  • Improvments to the cred_* functions documentation.

  • Add the following default arguments to the 'cred_ssh_key' method: publickey = '~/.ssh/id_rsa.pub' and privatekey = '~/.ssh/id_rsa'

  • On OSX, cascade CPPFLAGS and LDFLAGS to libssh2 build to allow libssh2 to be built against a user-installed openssl, discovered by configure or from R's Makeconf. Necessary to build on OS X ≥ 10.11

  • On OS X, SecureTransport is now used to provide the cryptographic support for HTTPS connections insead of OpenSSL.

  • The search for libssh2 during configuration (non Windows) is now done via pkg-config.

  • Update OpenSSL on Windows to v1.0.2d

  • Update libgit2 source code to commit (3f5877d) from 2015-11-12.

BUG FIXES

  • Add missing credentials argument to pull method.

  • Fix config failure when user.name or user.email are passed as variables.

  • Include 'configure.ac' in the distribution.

NEW FEATURES

  • Add punch card plot.

  • Add branch argument to clone with name of the branch to checkout.

  • Add 'force' argument to 'add' method to add ignored files.

  • The following methods can now be called without the repository argument: 'branches', 'references', 'remotes', 'tags' and 'workdir'. When these methods are called without the repository argument, the repository is searched for with 'discover_repository' in the current working directory.

  • Add name of branch to each item in branch_list.

  • Add name of tag to each item in tags list.

  • Add S4 class 'cred_env' to pass credentials in environment variables.

  • SSH transport on Windows. This requires 'LibSSH2' and 'OpenSSL'. These two libraries are downloaded from 'https://github.com/rwinlib' during configuration of the package.

  • Static linking of LibSSH2 on OSX to support redistributable binary package with SSH transport enabled. Version 1.6.0 of LibSSH2 is downloaded and built from 'https://github.com/libssh2/libssh2'.

IMPROVEMENTS

  • Better summary output from S4 classes 'git_commit' and 'git_repository'.

  • Updated libgit2 source code to commit (98f7bd2) from 2015-08-05.

BUG FIXES

  • Add imports to DESCRIPTION to fix CRAN notes.

  • Fix plot function to use the repository argument 'x'

  • Update configuration to build on OpenBSD.

  • Fix checkout branch in empty repository.

  • Fix path argument in rm_file.

  • Internal refactoring of C code that raise error to prevent segfault.

CHANGES

  • Rename 'bundle_repo' method to 'bundle_r_package'

NEW FEATURES

  • Added method libgit2_sha that returns the commit id of the libgit2 library that the bundled source code is based on.

  • Added the method in_repository to determine if a directory is in a git repository.

CHANGES

  • Add brief summary of the five latest commits when summarizing a git_respository.

  • Added argument 'n' to the commits method to limit the number of commits in the output.

  • Added the following methods with missing repository signature; commits, is_shallow, is_empty, is_detached, repository and status. Internally, these methods use getwd and discover_repository to open a repository.

  • Changed configuration to raise error if the OpenSSL library is not found on non-Windows systems.

  • Changed configuration to raise error if the iconv library is not found on OSX.

  • Removed print of the configuration in the config method. Changed to return S3 class git_config.

  • Removed print of the status in the status method. Changed to return S3 class git_status.

BUG FIXES

  • Use OPENSSL_INCLUDES variable to build on Solaris.

  • Use bundled regex library on Solaris.

CHANGES

  • Single quote 'libgit2' and 'Git' in Description field

CHANGES

  • Added bare argument to clone method to create a bare repository

  • Added force argument to push to force local revision to the remote repo

  • Updated libgit2 source code (2a0f67f)

  • Internal refactoring of push

NEW FEATURES

  • Added method rm_file to remove files

  • Added 'all' argument to commit method to stage modified and deleted files

  • Added shortcut to checkout previous branch with "-" which is synonymous with "@{-1}"

  • Added session argument to commit method to add sessionInfo to commit message

  • Added session argument to tag method to add sessionInfo to tag message

  • Added method to coerce POSIXlt to S4 class git_time

  • Added method 'revparse_single' to find object specified by revision

  • Added plot method

CHANGES

  • Update libgit2 source code to commit (366e53d)

  • Fix configuration of compiler options when the OpenSSL library is found on non-Windows platforms

CHANGES

  • Update Title and Description field in DESCRIPTION file.

CHANGES

  • Update libgit2 source code to commit (a291790)

  • Use Alice and Bob as placeholder names in examples.

  • Add COPYRIGHTS file to list all copyright holders.

  • Fix significant compiler warnings from R CMD check with pedantic flag.

CHANGES

  • Fix build on Windows

CHANGES

  • Internal refactoring of merge method and merge tests.

  • Update libgit2 source code to version v0.22.0

BUG FIXES

  • Fix build on OSX.

NEW FEATURES

  • Add method 'odb_objects' to list all objects available in the database as a data.frame

  • Add method 'odb_blobs' to list all blobs reachable from the commits in the object database.

DOCUMENTATION

  • Added examples to all exported methods.

CHANGES

  • Removed ggplot2 dependency. Moved plot functionality to the ggit package (https://github.com/ropensci/ggit).

  • Renamed note_list method to notes

  • Removed markdown_link method

  • Renamed diff and merge arguments

IMPROVMENTS

  • Better performance when summarizing contributions.

  • Improved build of package.

BUG FIXES

  • Fixed memory leaks.

  • Fixed use of allocVector without protection.

  • Added unload hook to unload DLL.

  • Fix tree and blob tests to use writeChar instead of writeLines to have more control over line endings.

NEW FEATURES

  • Many new features and methods added, see the documention for a description of the methods below:

    • Blob: content, blob_create, hash, hashfile, is_binary, is_blob, length, show, summary.
    • Branch: branch_create, branch_delete, branch_get_upstream, branch_remote_name, branch_remote_url, branch_rename, branch_set_upstream and branch_target.
    • Commit: is_commit and parents.
    • Diff: diff and diff_print.
    • Fetch: fetch and fetch_heads.
    • Libgit2: libgit2_features and libgit2_version.
    • Merge: merge.
    • Note: note_create, note_default_ref, note_list and note_remove.
    • Pull: pull.
    • Push: push.
    • Remote: remote_add, remote_remove, remote_rename and remote_url.
    • Repository: discover_repository and is_shallow
    • Reset: reset.
    • Stash: stash, stash_drop, stash_list, show and summary.
  • Improved error messages to give more detailed information including which function raised the error.

NEW S4 CLASSES

  • The following new S4 classes to handle the libgit2 data structures:
    • cred_ssh_key
    • cred_user_pass
    • git_blame
    • git_blame_hunk
    • git_blob
    • git_diff
    • git_diff_file
    • git_diff_hunk
    • git_diff_line
    • git_fetch_head
    • git_merge_result
    • git_note
    • git_reflog_entry
    • git_stash
    • git_transfer_progress
    • git_tree

CHANGES

  • Renamed methods:

    • is.bare to is_bare
    • is.empty to is_empty
    • is.head to is_head
    • is.local to is_local
  • Rename hex to sha for the 40-character SHA-1 hash in method arguments and S4 class slots.

NEW FEATURES

  • Added method to clone repository

  • Added method config to set user.name and user.email in a repository

  • Added method status to display state of a repository

NEW FEATURES

  • Added method to create a commit

CHANGES

  • Improved error checking

NEW FEATURES

  • Added method init to create a new Git repository

CHANGES

  • Removed usage of testthat package when testing the package

  • Removed bundled zlib in src/zlib and instead link against zlib shipped with R.

  • Dropped usage of external pointers, S4 git_repository now keeps track of the path of the repository.

CHANGES

  • Renamed S4 class repository to git_repository

NEW FEATURES

  • Added method commits to list all commits in repository

  • Added S4 class git_commit to hold infformation of a commit

  • Added S4 class git_time to hold time of an action

  • Added slot walker to S4 class git_repository

NEW FEATURES

  • Added method remote_url to get the url a remote in a repository

  • Added method workdir to get workdir of a repository

  • Added method remotes to list remotes of a repository

  • Added S4 class git_signature to hold information of an action signature (e.g. for committers, taggers, etc)

CHANGES

  • Renamed S4 class tag to git_tag

  • Renamed S4 class branch to git_branch

  • Renamed S4 class reference to git_reference

NEW FEATURES

  • Added method branches to list branches

  • Added method head to retrieve head

  • Added method is.head to check if a branch is head

  • Added method is.local to check if a branch is local

  • Added S4 class branch to hold information of a git branch

  • Added method to show a reference

  • Added method to list all references in a repository

  • Added S4 class reference to hold information of a git reference

NEW FEATURES

  • Added is.bare method to check if a repository is bare

  • Added is.empty method to check if a repository is empty

NEW FEATURES

  • Added S4 class repository to work with a git repository

  • Initial package structure

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("git2r")

0.19.0 by Stefan Widgren, 2 months ago


https://github.com/ropensci/git2r


Report a bug at https://github.com/ropensci/git2r/issues


Browse source code at https://github.com/cran/git2r


Authors: See AUTHORS file.


Documentation:   PDF Manual  


Task views: Web Technologies and Services


GPL-2 license


Imports graphics, utils

Depends on methods

Suggests getPass

System requirements: zlib headers and library. OpenSSL headers and library. LibSSH2 (optional on non-Windows) to enable the SSH transport.


Imported by BioInstaller, adapr, archivist.github, devtools, excerptr, ghit, kirby21.base, reproducible, spm12r.

Suggested by Rcereal, drat, envDocument, gistr, nat.templatebrains, remotes.


See at CRAN