We are happy to announce the R package compareWith, providing user-friendly RStudio addins that simplify diff and merge tasks.
Just ahead of the upcoming useR!2019 Toulouse, where Miraier Nikki will be introducing the package in a short talk during one of the lightning sessions (Thursday morning - July 11), we are pleased to put this small utility out here, which has brought some noticeable enhancement to our day-to-day R development process over the past year.
Integration of version control tools in R and RStudio is still significantly behind what is desirable. With the uprise of GitHub and git for open-source R package development, issues are being tackled through separate branches and contributors are more numerous and heterogeneous. compareWith is a R package that allows users to interact with Meld from within RStudio through addins, making it easier to perform diff and merge tasks. Examples include:
- compare differences prior to commit, for single active files or the whole project;
- editing files or directories;
- resolve merge conflicts via three-way comparison.
Installation
You can install the latest compareWith from GitHub using the remotes package
remotes::install_github("miraisolutions/compareWith")
The required dependency Meld is available for most Linux/Unix distributions and can be easily installed there, e.g. via sudo apt install meld
on Debian/Ubuntu.
On Windows, its installation is supported by an MSI installer, downloadable from the Meld website. We recommend using the 3.18.3 installer (as hinted on the website), since newer versions seem to have Gtk issues. After installation, you may have to add the location of the installed meld.exe
to the PATH
environment variable.
Meld is not yet officially supported on MacOS. However, pre-built binaries are available as meldmerge.dmg
images for new and old releases of Meld. We currently recommend using Meld 3.16.0, as newer versions do not appear to be stable. After installation, you need to make sure meld
can be launched from the command line, e.g. via:
ln -s /Applications/Meld.app/Contents/MacOS/Meld /usr/local/bin/meld
Meld can also be installed via MacPorts, Fink or Brew, where you may also have to switch to an older stable version.
Usage
The functionality of compareWith is accessible in RStudio using the Addins menu or the command-line functions. Examples include:
compare_with_repo(path)
allows to track changes in file(s) underpath
(belonging to a version-control repository);compare_active_file_with_other(location)
allows the user to compare the currently opened file with another (browsing fromlocation
).
In case Meld is not installed, the current version is not working properly, or path
or location
are not specified correctly, an error is displayed.