将PATH用于带有版本控制的可执行文件的建议(Mercurial)

时间:2009-11-13 02:20:52

标签: mercurial binary path environment-variables

所以我对版本控制很陌生,但我正在尝试在我的Mac上使用Mercurial来保持大型Python数据分析程序的组织。我通常克隆我的主存储库,稍微调整克隆的代码,然后在我的数据上运行代码。如果更改成功,我提交并最终将更改推送回主存储库。我猜这是版本控制下非常典型的工作流程。

我的问题是我的代码是在命令行上运行的,有几个命令行参数引用当前工作目录中的数据文件(我有很多这样的目录,我需要测试代码,然后他们'不受版本控制)。所以在使用Mercurial之前,我只将代码保存在一个〜/ bin目录中,该目录是我的PATH环境变量的一部分。现在,通过版本控制,我需要(1)在每次编辑之后,将当前克隆的可执行文件复制到〜/ bin目录,然后在命令行上运行代码,或者(2)每次克隆代码时,添加我的当前克隆到PATH的路径,或者(3)每次运行代码时在命令行上指定整个/ path / to / my / programs。这些都不是很方便,我觉得必须有一个我不知道的优雅解决方案。也许涉及Mercurial钩子的东西?我希望我的修订不足的代码可以在提交之间的命令行上运行,所以这似乎排除了钩子,但我不知道......非常感谢任何建议!

2 个答案:

答案 0 :(得分:0)

在这种情况下我做的是在我当前的克隆中为我的二进制文件设置两个深层符号链接。例如,我将:

/usr/bin/myappname

的符号链接
/home/me/repos/CURRENT/bin/myappname

其中/ home / me / repos / CURRENT是我当前工作克隆的符号链接,例如:

/home/me/repos/myproject-expirment

在设置初始/ usr / bin / myappname符号链接后,我所要做的就是在创建我正在工作的新克隆时更新CURRENT符号链接。

答案 1 :(得分:0)

如果你想继续使用多克隆工作流程,Ry4an的答案很好。但同样值得注意的是,Mercurial的强大功能足以让您在不离开单一“主要”回购的情况下获得该工作流程的大部分好处。即您可以为实验性功能创建分支(命名或匿名),轻松“hg update”到您要测试的任何版本的代码,甚至使用mq扩展来修剪无法解决的分支。