目前我的团队使用Git a.w.a Mercurial进行各种项目,所以我在这里定义自己的vcs命令,以便在不同的项目/目录(git& hg)之间实现无缝连接。
我如何在鱼壳中实现这一目标?因此别名可以在每个目录/子目录的基础上触发相应的git或hg命令。
答案 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文件夹中。根据结果,您可以决定执行什么。