Git 如何使用不同的pathdef';s
我正在开发自己的大脑成像工具箱,该工具箱在MATLAB和SPM8下运行,同时我有一个Git 如何使用不同的pathdef';s,git,path,git-clone,matlab,Git,Path,Git Clone,Matlab,我正在开发自己的大脑成像工具箱,该工具箱在MATLAB和SPM8下运行,同时我有一个git clone'd版本的工具箱代码目录(本地git存储库)用于运行分析,该设置是根据Kevin Reid在上的回答创建的,解决了部分问题(如何同时访问同一.m文件的不同版本,并且仍然可以使用git fetch或git pull进行同步) 但是,我的MATLAB安装不在这两个git目录中;它通常安装在/usr/local/MATLAB/R2012a/中。MATLAB根据pathdef.m查找函数,该函数存储在哪
git clone
'd版本的工具箱代码目录(本地git存储库)用于运行分析,该设置是根据Kevin Reid在上的回答创建的,解决了部分问题(如何同时访问同一.m
文件的不同版本,并且仍然可以使用git fetch
或git pull
进行同步)
但是,我的MATLAB安装不在这两个git目录中;它通常安装在/usr/local/MATLAB/R2012a/
中。MATLAB根据pathdef.m
查找函数,该函数存储在哪个pathdef
(/usr/local/MATLAB/R2012a/toolbox/local/pathdef.m
)作为一个常规函数。因此,我不能让两个MATLAB实例同时运行,以使它们具有不同的pathdef
,至少不能通过修改pathdef.m
文件
当然,MATLAB必须事先知道在何处查找
pathdef.m
以定义路径。是否有方法更改pathdef.m
查找路径,例如通过一些MATLAB命令行参数或从MATLAB控制台?或通过其他方式,以便我可以使用不同的pathdef?还是应该将MATLAB安装在两个不同的目录中?我对这个问题的各种解决方案都感兴趣。是的,有。在启动MATLAB之前设置环境变量MATLABPATH(从终端)
让我提供另一种方法,它涉及在MatlabIDE中创建
只需创建两个快捷方式,每个快捷方式包括以下内容:
addpath(genpath('/path/to/project_branch')) %// add branch (and subfolders) to MATLAB path
cd('/path/to/project_branch') %// navigate to directory
(说明:对的调用不会在系统范围内保存更改,但仅在当前会话中保持不变,除非您调用)
现在,每当您开始一个新的MATLAB会话,并且您决定在一个或另一个分支上工作时,只需单击相应的快捷方式并开始黑客攻击
更好的是,如果您认为一个分支是稳定的,另一个是DEV,则可以永久地将稳定的一个添加到路径中,并使用快捷方式选择性地将开发版本添加到路径<代码> ADDPATH(“……”、“开始”)< /代码>中,从而仅遮蔽当前分支的另一个分支。
Gunther的答案也很有用,但这一个允许在运行中轻松更改路径,而无需重新启动新的MATLAB实例。这两种解决方案都有各自的优点。我还建议使用addpath
和cd
,但是如果要使用多个路径,您可能需要创建一个简单的changepath('projectbranch')
函数,而不是每个分支的一个按钮,以限制快捷方式的数量。这是否为以后的所有matlab会话保留此设置(除非手动清理)?环境变量MATLABPATH
仅在其启动的会话处于活动状态时才存在。当然,您可以将此命令添加到.bashrc
或.profile
文件中,因此它会在每个新会话中启动。也可以在matlabrc.m
中设置MATLABPATH
,不要这样做当然。如果你想改变这一点,我会调查的
addpath(genpath('/path/to/project_branch')) %// add branch (and subfolders) to MATLAB path
cd('/path/to/project_branch') %// navigate to directory