david.jessop at ubs.com
2010-Oct-27 12:49 UTC
[R] Which version control system to learn for managing Rprojects?
Gabor As someone trying to the rest of my team using Subversion (which I have used for a while, but more as a backup / record of changes), have you a neat / automated way of building a package from a subversion repository? Thanks David Jessop -------------------------- David Jessop Global Head of Quantitative Research UBS Investment Research +44 20 7567 9882 ----- Original Message ----- From: r-help-bounces at r-project.org <r-help-bounces at r-project.org> To: Tal Galili <tal.galili at gmail.com> Cc: r-help at r-project.org <r-help at r-project.org> Sent: Tue Oct 26 23:55:40 2010 Subject: Re: [R] Which version control system to learn for managing Rprojects? On Tue, Oct 26, 2010 at 12:16 PM, Tal Galili <tal.galili at gmail.com> wrote:> Hello all, > > I wish to learn a version control system for managing my R (data analysis) > projects. > > I know of SVN and github, and wonder if there is any reason for which I > should prefer the one over the other (or any other platform). An example for > a reason could be if it will make it easier for me to later work with > R-forge or CRAN or any other platform for R code distribution. > > > Thanks, > TalThere are several considerations: 1. What is everyone else using? The network effect is important since you want people to be able to access your repository and you want to leverage your knowledge of the version control system for other projects' repositories. To that extent Subversion is the clear choice since its used on R-Forge, by R itself and on Google code (Google code also supports Mercurial). 2. Features. Git, Mercurial, Bazaar and a few others are distributed version control systems which represent the next generation after centralized ones like Subversion. Git claims to be the most popular and is the fastest of the three distributed systems being written in C (the others in Python), Git is an ugly combination of C, shell scripts and other languages. The underlying basic design is attractive despite a somewhat messy implementation. At the time I evaluated them Mercurial was the only one with decent cross platform support and is the one used by Google but the situation relative to cross platform support could have changed since then, and Bazaar has the advantage of being pre-installed on many systems. 3. Repositories. The repository you use (R-Forge, Google code, Github) is a key associated decision. R-Forge uses Subversion and has the advantage that it does automatic builds but it has an annoying delay of about 20 minutes every time you change your home page, etc. before it appears. Google code supports Subversion and Mercurial. Google code is easier to use and, in particular, it uses http rather than R-Forge's ssh. http is more convenient, particularly for Windows users. Google code also has no delay and it also has integrated issue tracking, a wiki and a download area for your project. It is possible to host your project on Google code but still have R-Forge front-end it and at least one R developer has posted that he does precisely that. Google code is more restrictive regarding the licenses that it accepts although it does accept most of the popular free ones such as GPL, Apache, etc. On the plus side, Google code does have specific support for separate code and documentation licenses which may be an advantage. R-Forge does not restrict the license and Github allows non-free projects but you have to pay for using it in that case. 4. Editor/IDE. You don't really need integration of your editor and version control system yet is may be convenient if its available. Subversion is integrated with Microsoft Common Source Code Control Interface (MSSCCI) so any editor or IDE that supports that standard integrates with Subversion. There are subversion plugins for vim, Emacs, Eclipse and likely many other editors and IDEs. There may be plugins for some of the other version control systems too. 5. Windows Explorer. There are Windows explorer extensions for Subversion, Mercurial, Git and Bazaar. The Subversion and Mercurial "Tortoise" extensions are reasonably mature. I believe the Git and Bazaar Tortoise extensions are newer. 6. Client vs. Server and Installation. With subversion you typically use a subversion repository on a remote system to host your software and you only install client software. You can use the command line or a number of other alternative command line or GUI clients. With the distributed ones every installation is both a client and a repository (and potentially a server). Its harder to install a subversion repository but that does not really matter since normally you only install the client. The distributed systems are generally easy to install although if you need to install them from source on a non-supported or old system Mercurial was the easiest to get going based on my experience in having to do exactly that. Bazaar is often pre-installed on some distributions in which case there is zero installation. Although I have focused on the most popular there are other version control systems too. darcs is a powerful distributed system but may not be able to handle as large projects as the ones discussed here. fossil was developed by the SQLite developer and features particularly streamlined installation. Both these have their enthusiastic adherents. I personally mostly use Subversion, the TortoiseSVN client and when I want a distributed system I use Mercurial, usually from the command line or to a lesser extent via TortoiseHG. I have contributed an extension to the Mercurial project (not related to R) which might bias me slightly toward it so caveat emptor. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. -------------- next part -------------- Issued by UBS AG or affiliates to professional investors for information only and its accuracy/completeness is not guaranteed. All opinions may change without notice and may differ to opinions/recommendations expressed by other business areas of UBS. UBS may maintain long/short positions and trade in instruments referred to. Unless stated otherwise, this is not a personal recommendation, offer or solicitation to buy/sell and any prices/quotations are indicative only. UBS may provide investment banking and other services to, and/or its employees may be directors of, companies referred to. To the extent permitted by law, UBS does not accept any liability arising from the use of this communication. \251 UBS 2010. All rights reserved. Intended for recipient only and not for further distribution without the consent of UBS. UBS Limited is a company registered in England & Wales under company number 2035362, whose registered office is at 1 Finsbury Avenue, London, EC2M 2PP, United Kingdom. UBS AG (London Branch) is registered as a branch of a foreign company under number BR004507, whose registered office is at 1 Finsbury Avenue, London, EC2M 2PP, United Kingdom. UBS Clearing and Execution Services Limited is a company registered in England & Wales under company number 03123037, whose registered office is at 1 Finsbury Avenue, London, EC2M 2PP, United Kingdom. UBS reserves the right to retain all messages. Messages are protected and accessed only in legally justified cases.
Whit Armstrong
2010-Oct-27 12:58 UTC
[R] Which version control system to learn for managing Rprojects?
http://hudson-ci.org On Wed, Oct 27, 2010 at 8:49 AM, <david.jessop at ubs.com> wrote:> Gabor > > As someone trying to the rest of my team using Subversion (which I have used for a while, but more as a backup / record of changes), have you a neat / automated way of building a package from a subversion repository? > > Thanks > > David Jessop > -------------------------- > David Jessop > Global Head of Quantitative Research > UBS Investment Research > > +44 20 7567 9882 > > > ----- Original Message ----- > From: r-help-bounces at r-project.org <r-help-bounces at r-project.org> > To: Tal Galili <tal.galili at gmail.com> > Cc: r-help at r-project.org <r-help at r-project.org> > Sent: Tue Oct 26 23:55:40 2010 > Subject: Re: [R] Which version control system to learn for managing Rprojects? > > On Tue, Oct 26, 2010 at 12:16 PM, Tal Galili <tal.galili at gmail.com> wrote: >> Hello all, >> >> I wish to learn a version control system for managing my R (data analysis) >> projects. >> >> I know of SVN and github, and wonder if there is any reason for which I >> should prefer the one over the other (or any other platform). An example for >> a reason could be if it will make it easier for me to later work with >> R-forge or CRAN or any other platform for R code distribution. >> >> >> Thanks, >> Tal > > There are several considerations: > > 1. What is everyone else using? ?The network effect is important since > you want people to be able to access your repository and you want to > leverage your knowledge of the version control system for other > projects' repositories. ?To that extent Subversion is the clear choice > since its used on R-Forge, by R itself and on Google code (Google code > also supports Mercurial). > > 2. Features. ?Git, Mercurial, Bazaar and a few others are distributed > version control systems which represent the next generation after > centralized ones like Subversion. ?Git claims to be the most popular > and is the fastest of the three distributed systems being written in C > (the others in Python), ?Git is an ugly combination of C, shell > scripts and other languages. ? The underlying basic design is > attractive despite a somewhat messy implementation. ?At the time I > evaluated them Mercurial was the only one with decent cross platform > support and is the one used by Google but the situation relative to > cross platform support could have changed since then, and Bazaar has > the advantage of being pre-installed on many systems. > > 3. Repositories. ?The repository you use (R-Forge, Google code, > Github) is a key associated decision. ?R-Forge uses Subversion and has > the advantage that it does automatic builds but it has an annoying > delay of about 20 minutes every time you change your home page, etc. > before it appears. ?Google code supports Subversion and Mercurial. > Google code is easier to use and, in particular, it uses http rather > than R-Forge's ssh. ?http is more convenient, particularly for Windows > users. ?Google code also has no delay and it also has integrated issue > tracking, a wiki and a download area for your project. ?It is possible > to host your project on Google code but still have R-Forge front-end > it and at least one R developer has posted that he does precisely > that. ?Google code is more restrictive regarding the licenses that it > accepts although it does accept most of the popular free ones such as > GPL, Apache, etc. On the plus side, Google code does have specific > support for separate code and documentation licenses which may be an > advantage. ?R-Forge does not restrict the license and Github allows > non-free projects but you have to pay for using it in that case. > > 4. Editor/IDE. ?You don't really need integration of your editor and > version control system yet is may be convenient if its available. > Subversion is integrated with Microsoft Common Source Code Control > Interface (MSSCCI) so any editor or IDE that supports that standard > integrates with Subversion. ?There are subversion plugins for vim, > Emacs, Eclipse and likely many other editors and IDEs. ?There may be > plugins for some of the other version control systems too. > > 5. Windows Explorer. ?There are Windows explorer extensions for > Subversion, Mercurial, Git and Bazaar. ?The Subversion and Mercurial > "Tortoise" extensions are reasonably mature. ?I believe the Git and > Bazaar Tortoise extensions are newer. > > 6. Client vs. Server and Installation. ?With subversion you typically > use a subversion repository on a remote system to host your software > and you only install client software. ?You can use the command line or > a number of other alternative command line or GUI clients. ?With the > distributed ones every installation is both a client and a repository > (and potentially a server). ?Its harder to install a subversion > repository but that does not really matter since normally you only > install the client. ?The distributed systems are generally easy to > install although if you need to install them from source on a > non-supported or old system Mercurial was the easiest to get going > based on my experience in having to do exactly that. ?Bazaar is often > pre-installed on some distributions in which case there is zero > installation. > > Although I have focused on the most popular there are other version > control systems too. ?darcs is a powerful distributed system but may > not be able to handle as large projects as the ones discussed here. > fossil was developed by the SQLite developer and features particularly > streamlined installation. ?Both these have their enthusiastic > adherents. > > I personally mostly use Subversion, the TortoiseSVN client and when I > want a distributed system I use Mercurial, usually from the command > line or to a lesser extent via TortoiseHG. ?I have contributed an > extension to the Mercurial project (not related to R) which might bias > me slightly toward it so caveat emptor. > > -- > Statistics & Software Consulting > GKX Group, GKX Associates Inc. > tel: 1-877-GKX-GROUP > email: ggrothendieck at gmail.com > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > > > Issued by UBS AG or affiliates to professional investors for > information only and its accuracy/completeness is not guaranteed. > All opinions may change without notice and may differ to > opinions/recommendations expressed by other business areas of UBS. > UBS may maintain long/short positions and trade in instruments > referred to. Unless stated otherwise, this is not a personal > recommendation, offer or solicitation to buy/sell and any > prices/quotations are indicative only. UBS may provide investment > banking and other services to, and/or its employees may be directors > of, companies referred to. To the extent permitted by law, UBS does > not accept any liability arising from the use of this communication. > > ?\251 UBS 2010. ?All rights reserved. Intended for recipient only and > not for further distribution without the consent of UBS. > > UBS Limited is a company registered in England & Wales under company > number 2035362, whose registered office is at 1 Finsbury Avenue, > London, EC2M 2PP, United Kingdom. > > UBS AG (London Branch) is registered as a branch of a foreign company > under number BR004507, whose registered office is at > 1 Finsbury Avenue, London, EC2M 2PP, United Kingdom. > > UBS Clearing and Execution Services Limited is a company registered > in England & Wales under company number 03123037, whose registered > office is at 1 Finsbury Avenue, London, EC2M 2PP, United Kingdom. > > UBS reserves the right to retain all messages. Messages are protected > and accessed only in legally justified cases. > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > >
Gabor Grothendieck
2010-Oct-27 13:23 UTC
[R] Which version control system to learn for managing Rprojects?
On Wed, Oct 27, 2010 at 8:49 AM, <david.jessop at ubs.com> wrote:> Gabor > > As someone trying to the rest of my team using Subversion (which I have used for a while, but more as a backup / record of changes), have you a neat / automated way of building a package from a subversion repository? >Normally one keeps a checkout directory and builds the R package from that. If you are not sure whether or not your checkout directory is up to date then issue an svn update prior to the build. If you are worried about the other direction then normally one would commit by hand since conflicts need to be manually resolved. My publicly available Windows scripts are in http://batchfiles.googlecode.com . See the PROGRAM LISTS section on that page for a one line summary of each. The only one there that pertains to subversion is show-svn-info.hta which shows some info in a GUI window about the current directory (and some useful links) assuming that the current directory is an svn checkout directory. For building R packages Rcmd.bat can be used as a substitute for Rcmd.exe . It automatically locates R via the registry and then runs it so you don't have to adjust anything each time you upgrade R. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com