Command line p4 sync Perforce命令行通过只输入一次变更列表将多个树同步到一个变更列表

Command line p4 sync Perforce命令行通过只输入一次变更列表将多个树同步到一个变更列表,command-line,perforce,sync,alias,Command Line,Perforce,Sync,Alias,如何通过只输入一次变更列表来同步给定变更列表中两个完全独立的树,例如,给出与相同的结果 p4 sync //tree1/a/b/c/...@1234 //tree2/d/e/...@1234 哪一项有效,但需要输入1234两次 这将给出“意外标记“%(”)附近的语法错误”: 这将//树1/a/b/c/…同步到head,而不是: p4 sync //tree1/a/b/c/... //tree2/d/e/...@1234 主要原因是我想创建一个shell别名,但1234部分是用户输入的,因此只

如何通过只输入一次变更列表来同步给定变更列表中两个完全独立的树,例如,给出与相同的结果

p4 sync //tree1/a/b/c/...@1234 //tree2/d/e/...@1234
哪一项有效,但需要输入1234两次

这将给出“意外标记“%(”)附近的语法错误”:

这将//树1/a/b/c/…同步到head,而不是:

p4 sync //tree1/a/b/c/... //tree2/d/e/...@1234
主要原因是我想创建一个shell别名,但1234部分是用户输入的,因此只能输入一次。我知道我可以使用shell脚本或函数,但出于各种原因,我必须使用别名。

从注释中可以看出

p4 sync {//tree1/a/b/c/...,//tree2/d/e/...}@1234
应该可以。有关更多解释,请参阅bash参考的注释。

从注释中,可以看到的(至少是bash)shell语法

p4 sync {//tree1/a/b/c/...,//tree2/d/e/...}@1234

应该可以。有关更多解释,请参阅bash引用的说明。

我不明白为什么不能在别名中使用用户输入的变量两次。@Timwi,因为至少在bash中,“在替换文本中没有使用参数的机制。如果需要参数,应该使用shell函数”。需要别名的原因很有意思。@romkyns:谢谢。它实际上是自动热键中的一个宏,可以扩展,比如说“p4sync”到字符串,然后键入空格、backspace和变更列表编号来完成它。当AHK逐字逐句地键入它时,我可以使用箭头键来修改它的边缘情况。我认为这太冗长了,无法解释,所以将其描述为别名。顺便问一句,您是如何获得如此漂亮的对称标识图标的?您尝试过语法“p4 sync”吗{//tree1/a/b/c/…,//tree2/d/e/…}@1234“?我想它可以扩展到您想要的内容。@Calebhuit cjhuitt:太好了!非常感谢。如果您想要一些布朗尼点数,请将其作为答案提交,我会将其标记为正确答案。我不明白为什么您不能在别名中使用用户输入的变量两次。@Timwi,因为至少在bash中,“在替换文本中没有使用参数的机制。如果需要参数,则应使用shell函数”。但需要别名的原因很有意思。@romkyns:谢谢。它实际上是AutoHotkey中的一个宏,可以展开,例如“p4sync”“输入字符串,然后键入空格、backspace和变更列表编号来完成它。当AHK逐字输入它时,我可以使用箭头键来修改它的边缘情况。我认为这太冗长了,无法解释,所以将其描述为别名。顺便问一句,你是如何获得如此漂亮的对称标识图标的?你尝试过语法“p4 sync”吗{//tree1/a/b/c/…,//tree2/d/e/…}@1234“?我想它可以扩展到你想要的内容。@Calebhuit-cjhuitt:太好了!非常感谢你。如果你想要一些布朗尼点数,请将其作为答案提交,我会将其标记为正确答案。