Sta*_*tan 5 git shell environment-variables
我有一个工作环境,我经常在其中构建二进制文件,然后使用该二进制文件启动长时间运行的进程。当这些正在运行时,我想切换到另一个 git 分支并在那里做一些工作,并可能构建一些不会覆盖当前运行的新二进制文件。
现在,构建和运行脚本使用$OUT_DIRenv 变量来确定二进制文件的输出目录。理想情况下,我希望$OUT_DIR特定于分支以避免上述构建相互覆盖的问题。
起初,这对于 post-checkout 钩子来说似乎是一项简单的工作——设置OUT_DIR为OUT_DIR_BASE + "/" + current branch... 除了 post-checkout 钩子在子 shell 中运行,所以它不能设置父环境变量。
有什么聪明的方法可以解决这个问题吗?
我考虑过的一些想法:
export OUT_DIR...”命令输出到一个文件,并让用户获取它——这很烦人,人们会忘记这样做。OUT_DIR文件写入.rc 文件并让构建/运行脚本从那里获取它,但这需要更改构建环境,并且用户体验会变得更糟(即您不能执行“ cd $OUT_DIR”来进入输出目录...git checkout'编写一个包装器,它会OUT_DIR适当地打开一个带有set的新外壳......但这是“泄漏”的外壳,随着时间的推移,我会运行相当多的外壳。这些看起来都不是很好,因为感觉应该是一个简单的解决方案。
我可以将分支名称打印到文件中,并让构建/运行脚本从那里获取它
尽管涉及修改构建脚本,但这仍然是探索的方式。
git -C /path/to/repo rev-parse --abbrev-ref HEAD
Run Code Online (Sandbox Code Playgroud)
因此,您不需要编写当前分支的名称:构建脚本可以直接从存储库获取它。
| 归档时间: |
|
| 查看次数: |
969 次 |
| 最近记录: |