The bundled libgit2 source code has been removed and libgit2 must now be installed on the system.
Fix build after API change in libgit2 1.8.0.
The system requirement for libgit2 has been updated to libgit2 version >= 1.0.
Add $(C_VISIBILITY)
to compiler flags to hide
internal symbols from shared object.
On MacOS, if libgit2 is not found, the build configuration tries to download a static build of libgit2 version 1.8.1 (https://github.com/autobrew/bundler/releases/tag/libgit2-1.8.1) and use that instead, after the sha256 of the downloaded ‘libgit2-1.8.1-universal.tar.xz’ file has been checked.
Added a missing ‘git2r-package’ alias to the documentation.
Added the argument ‘raw’ to the ‘content’ function to make it possible to get a blob content as a raw vector, see issue #461.
Updated the bundled libgit2 source code to version 1.7.1.
Changed the R dependency from >= 3.4 to >= 4.0.
Added a missing ‘-liconv’ to PKG_LIBS in Makevars.win.
Updated the bundled libgit2 source code to version 1.6.3.
Fix build failure of bundled libgit2 when structure for nanosecond type is mssing.
Added the build configuration script (‘src/Makevars.ucrt’) for Windows UCRT. Thanks to Tomas Kalibera for providing the patch.
Added documentation about line endings in the diff function. Different operating systems handle line endings differently and to avoid problems in diffs, Git can be configured to handle these differences in line endings
Added a ‘branch’ argument to the ‘init’ function to make it possible to specify the branch name.
Updated the build configuration script on Windows and MacOS to use libgit2 version 1.3.0.
Updated the bundled libgit2 source code to version 1.3.0.
Renamed the NEWS file to NEWS.md and changed to use markdown format style.
Updated to use libgit2 version 1.1.0 on Windows.
Fix handling of a symbolic reference when checking out previous branch.
Added a configure option ‘–without-libgit2’ to ignore presence of a system libgit2 library and instead use the internal git2r libgit2 library. Usage: R CMD INSTALL –configure-args=‘–without-libgit2’ git2r_x.y.z.tar.gz
Updated some tests to work with libgit2 version 1.1.0.
Updated the bundled libgit2 source code to version ‘0.28.5’.
Updated the build configuration script to be able to build git2r with a system installation of libgit2 version >= 1.0.
Updated to use libgit2 version 1.0.0 on Windows.
The build configuration script checks for minimum required version of libssh2 (version >= 1.8). Issue #420.
Updated to use roxygen2 version 7.1.0 to build the documentation.
Make it easier to view and change the timezone (John Blischak in #408).
Fixed ‘ls_tree’ to handle content in subfolder, see description in PR #402.
The ‘branch_create’ function has been changed to use the ‘last_commit()’ function as default to determine the commit to which the new branch should point.
Updated the bundled libgit2 source code to version ‘0.28.2’.
Added the ‘force’ argument to the ‘tag’ function to overwrite an existing tag.
Allow a zero length tag message.
Make it possible to create a lighweight tag.
Added the ‘ref’ argument to the ‘commits’ function to give a reference to list commits from.
Added the utility function ‘lookup_commit’ to lookup a commit related to a git object.
The ‘path’ argument was added to the ‘commits’ function to make it possible to specify that only commits modifying this file (‘path’) will be returned to reproduce ‘git log’ with ‘–no-follow’, see the documentation. (Peter Carbonetto and John Blischak in PR #372)
Updated the bundled libgit2 source code to version ‘0.28.1’.
Added additional parameters to the ‘diff’ function to control the output, see the documentation.
Added getPass option to the password argument in ‘cred_user_pass’ (Annie Wang in PR #383)
Changed the ‘print’ functions to return its argument invisibly.
Changed the ‘git_config_files’ function to return a ‘data.frame’
Changed the ‘ahead_behind’ function to accept a tag or a branch for the local and upstrean commit.
Changed the ‘descendent_of’ function to accept a tag or a branch for the ‘commit’ and ‘ancestor’ commit.
Fixed memory protection errors in the git2r C source code reported by the ‘rchk’ tool.
Fixed listing of ‘commits’ from a shallow repository.
Fixed the configuration script to include the missing macro ‘AM_ICONV’.
This is a bug-fix release.
Fixed memory protection errors in the git2r C source code reported by the ‘rchk’ tool.
Raise an error if the path argument to the ‘hashfile’ function is NA.
On macOS, git2r no longer enables SSH transport by default. This is due to the complexity to build the dependencies for SSH transport in an R package when macOS no longer ships the OpenSSL headers. However, you can install git2r from source on macOS (see the ‘R Installation and Administration’ manual) with SSH transport enabled if you first install the libgit2 library, for example, using the Homebrew package manager. Another possibility is to let the build configuration automatically download the libgit2 library from the Homebrew package manager with:
install.packages(‘git2r’, type=‘source’, configure.vars=‘autobrew=yes’)
Added the ‘git_config_files’ method to locate configuration files.
Added the ‘stash_pop’ method to apply a single stashed state from the stash list and remove it from the list if successful.
Added the ‘stash_apply’ method to apply a single stashed state from the stash list.
Updated the bundled libgit2 source code to v0.27.2 (8d36dc6).
git2r can now build against a system installation of libgit2 (Elliott Sales de Andrade in PR #345, #344 and #336).
Refactoring of the configuration scripts to use a prebuilt libgit2 on macOS and Windows (Thanks Jeroen).
Ensure that git2r writes the config file to the correct location on Windows (John Blischak in PR #320).
Better default location to find ssh keys in ‘cred_ssh_key()’ (Ian Lyttle in PR #317).
Changed from S4 classes to S3 classes to simplify the design and facilitate future development.
Removed the trailing slash from the directory name when reporting repository path or workdir.
Removed the ‘libgit2_sha’ method. Use the ‘libgit2_version’ method instead.
Changed the ‘stash_drop’ argument ‘index’ from zero-based to one-based i.e. use index = 1 to drop the first stash.
Updated the bundled libgit2 source code to commit (fa8cf14) from 16 December 2017.
Improvements to the build configuration script.
Updated the bundled libgit2 source code to commit (15e1193) (v0.26.0) from 14 June 2017.
Added ‘checkout’ argument to ‘clone()’. Allows to control whether checkout of HEAD is performed after the clone is complete. Setting ‘checkout=FALSE’ has similar effect as the git command line option ‘–no-checkout’. Andrzej K. Oles in #282.
Fixed memory protection errors in the git2r C source code reported by the ‘rchk’ tool.
Added missing calls to ‘R_forceSymbols’ and ‘R_useDynamicSymbols’ in the C init function.
Enable argument ‘all’ to commit multiple modified (or deleted) files. John Blischak in #283
Changed the configure script to determine the architecture of the machine earlier in order to fix an unsupported architecture error encountered on CentOS (#268, #288).
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/’.
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
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’.
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.
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.
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.
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.
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.
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’.
Better summary output from S4 classes ‘git_commit’ and ‘git_repository’.
Updated libgit2 source code to commit (98f7bd2) from 2015-08-05.
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.
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.
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.
Use OPENSSL_INCLUDES variable to build on Solaris.
Use bundled regex library on Solaris.
git2 0.9 (2015-04-25)
git2 0.8 (2015-04-24)
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
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
git2 0.7 (2015-02-23)
Update libgit2 source code to commit (366e53d)
Fix configuration of compiler options when the OpenSSL library is found on non-Windows platforms
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.
Internal refactoring of merge method and merge tests.
Update libgit2 source code to version v0.22.0
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.
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
Better performance when summarizing contributions.
Improved build of package.
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.
Many new features and methods added, see the documention for a description of the methods below:
Improved error messages to give more detailed information including which function raised the error.
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
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.
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
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)
Renamed S4 class tag to git_tag
Renamed S4 class branch to git_branch
Renamed S4 class reference to git_reference
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
Added is.bare method to check if a repository is bare
Added is.empty method to check if a repository is empty
Added S4 class repository to work with a git repository
Initial package structure