包管理
Git Subtrees
Tree-sitter有时被打包在npm上,有时被打包在crates.io上,并且它们的发布频率不一样。Difftastic使用git subtrees(而不是git submodules)来追踪解析器。
升级解析器
如果要更新解析器,可以从上游的git仓库拉取提交。例如,下面的命令将更新Java解析器:
$ git subtree pull --prefix=vendored_parsers/tree-sitter-java git@github.com:tree-sitter/tree-sitter-java.git master
如果要查看每个解析器最后一次更新的时间,请使用以下的Shell命令:
$ for d in $(git log | grep git-subtree-dir | tr -d ' ' | cut -d ":" -f2 | sort); do echo "$d"; git log --pretty=" %cs" -n 1 $d; done