有没有办法要求Mercurial读取我想从响应文件中提供的大部分/全部命令,选项和参数,而不是在命令行上传递它们?
例如,而不是:
hg commit -m "commit message" --INCLUDE file1 --INCLUDE file2 ...
我会创建一个包含的文本文件
-m "commit message" --INCLUDE file1 --INCLUDE file2 ...
然后让Mercurial用这个(hyphotetical)语法读取它:
hg commit @responses.txt
我问的原因是我正在为Mercurial命令行客户端创建一个.NET包装器库,而这个问题让我担心命令行的长度在某些时候对我来说可能是一个问题: “Resulting command line for hg.exe too long” error in Mercurial.
最佳答案 据我所知,没有一种内置的方法可以做到这一点,但我认为有一种方法可以构建你需要的东西.
使用Mercurial internal API并编写自己的包装器脚本.而不是试图让它读取任何和所有命令和选项,坚持你的特定目标(即“提交”和你需要的选项)会容易得多.
(请注意API页面上的警告.如果您正在构建的这个包装器将分发给其他人,请查看许可问题,并制定一个如何处理未来Mercurial升级的计划,这可能会破坏您的包装器.)