2017-11-18 23 views
0

제목으로 : 같은 R 환경에서 같은 패키지의 여러 git 브랜치를 나란히 설치할 수 있습니까? 몇 가지 벤치마킹을하고 싶습니다. 동일한 세션에서 두 지점을 비교하는 것이 더 쉬울 것입니다. 한 가지 해결 방법은 새 분기의 DESCRIPTION 파일에서 패키지 이름을 변경하는 것이지만 devtools을 사용하여 더 똑똑한 방법이 있습니까?`devtools :: install_github()`을 사용하여 R 패키지의 git 다중 분기를 동시에 설치

샘플 코드 : 한마디로

devtools::install_github("mkoohafkan/RAStestR", ref = "master") 
# overwrites the prior install 
devtools::install_github("mkoohafkan/RAStestR", ref = "hdf5r_transition") 

답변

2

, 아니. 최소한 추가 레이어가없는 것은 아닙니다. 읽어.

git (프로토콜뿐 아니라 클라이언트도)은 가상 파일 시스템과 비슷한 "분기"를 지원하지만 쉽게 전환 할 수는 없습니다.

설치하는 모든 패키지에 대해 하나의 버전 만 설치할 수 있습니다.

그러나 절망하지 말라의 파일 시스템이 백엔드로 사용 될 수 있기 때문에 R 수있는 다음 라이브러리 경로을 조정하여 스위치. 이것은 help(Startup)에 있지만 명시 적으로 도움이 될 수 있습니다.

할 수있는 일

mkdir master; cd master; installFromBranch.R master; cd .. 
mkdir featureA; cd featureA; installFromBranch.R featureA; cd .. 
mkdir featureB; cd featureA; installFromBranch.R featureB; cd .. 

(내가 여기를 조롱) 다음 R의 사용, 말,

.libPaths("master"); library("mypackage") 

를하거나 기능을 원하는 경우

.libPaths("featureA"); library("mypackage") 

사용할 수도 있습니다 R_LIB_USER=featureA Rscript -e '.....someCommandHere...'

그래서 짧게 : 가지디렉토리에 매핑하고 R에 설치 디렉토리를 알려줍니다.

+0

재미있는 해결책 ---하지만이 방법으로 * 어느 버전을 사용할 수는 있지만 * 동시에 두 버전을 사용할 수는 없습니다. 로드 할 때 패키지 중 하나에 대한 별칭을 설정하는 방법이 있습니까? – mikeck

+0

아니요. 제가 처음에 말한 것처럼, _R은 각 패키지의 버전을 하나만 알고 있습니다. 그래서 최소한 내가 설명한 것을 사용하여 두 개의 _distinct_ R 세션을 통해 비교해야합니다. 그것은 R이 조직되는 방법입니다. –