如何在R包开发中使用git?

时间:2012-11-17 12:40:01

标签: git r cran

我是R的新手并且已经开始编写一个中等规模的项目。尽管它将作为应用程序的一部分进行分发,但我决定用它来创建一个包,以使组织更整洁。

当我使用版本控制时,如何处理DESCRIPTION文件需要Version和Date字段的事实?我不希望每次git提交都改变该文件。

在某处有标准的Makefile吗?

此外,我并不完全清楚我是如何做到这一点的,并且仍然可以在开发时使用该包。

3 个答案:

答案 0 :(得分:5)

如果您使用devtools软件包,则无需在每次编辑后构建和安装软件包 - 只需使用load_all()即可在工作会话中完成作业,这样您就可以测试更改(最好使用testthat包)。

我写了一篇关于它的RPub:http://www.rpubs.com/geospacedman/lazydevtools

您仍然可以选择构建程序包源代码tarball以进行分发。

请注意,git不会提升每次提交时自动更新文件位的机制,比如SVN中的$ id $。莱纳斯自己说这是'愚蠢'和'愚蠢':

http://www.gelato.unsw.edu.au/archives/git/0610/28891.html

答案 1 :(得分:4)

如果您是R的新手,我建议使用RStudio,这是我认为最先进的R-IDE。它同时提供:package buildingversion control

  

我不想在每次git提交时更改该文件。    ...    此外,我还不完全清楚我是如何做到的,并且在开发过程中仍然能够使用该包。

通常情况下,您将安装一个用于处理的软件包以及用于开发的本地Git存储库。当开发达到下一个软件包发布的状态时,您将更改DESCRIPTION文件中的日期和版本。在两个版本之间,您可以根据需要制作多个阶段,提交并推送到您的GIT。

答案 2 :(得分:1)

我没有为每次提交更改DESCRIPTION,但我更新了Date,并且每次实际构建包时,我都会将当前YYYYMMDD日期放在破折号之后的版本中。这是一种夜间建筑,记录它是哪个夜晚。

目前,我有一个包在一个相当活跃的开发阶段,由几个不同的同事的需求驱动。次要版本的日期很方便,因为我可以轻松地询问同事“你使用的版本是什么日期?sessionInfo ()显示它。”