鱼壳:每个目录的别名

时间:2017-06-01 03:18:23

标签: fish

目前我的团队使用Git a.w.a Mercurial进行各种项目,所以我在这里定义自己的vcs命令,以便在不同的项目/目录(git& hg)之间实现无缝连接。

我如何在鱼壳中实现这一目标?因此别名可以在每个目录/子目录的基础上触发相应的git或hg命令。

2 个答案:

答案 0 :(得分:1)

您可以通过运行以下来确定当前的git分支:

set git_branch (git symbolic-ref HEAD ^/dev/null | sed -e 's|^refs/heads/||')

和当前的hg分支:

set hg_branch (hg branch)

然后只需检查哪一个是真的,然后从那里继续:

if test "$git_branch"
    git $argv
else if test "$hg_branch"
    hg $argv
else
    echo "[X] Not in a VCS directory"
    return 1
end

如果你真的想编写一整套与git / hg无关的VCS命令,需要更多的工作来翻译所有等效命令并映射参数等。

这通常不是一个好主意,但是你会模糊底层系统的实际行为。最好只向开发人员展示您所处的回购类型,或使用真实的兼容性层,如hg-git

答案 1 :(得分:0)

您的函数可以使用.dll和Mercurial的相应函数来检查它是否在Git或HG文件夹中。根据结果​​,您可以决定执行什么。