CVS执行commit提交命令时提示无法识别-m参数的问题求助
问题根因
你输入的命令中,m前的横杠不是CVS可识别的标准ASCII半角减号(-,ASCII编码0x2D),而是Unicode长破折号(En Dash,U+2013)。
- CVS命令参数要求必须以半角减号作为前缀,无法识别长破折号开头的参数,因此直接把
–m和后续的"bug fix"判定为待提交的文件路径,触发“找不到对应文件”的报错。 - 这个问题和CVS版本无关,你当前使用的1.12.13版本commit命令确实原生支持
-m参数,之前同事执行成功的命令用的都是手动输入的标准半角减号。 - 这类符号问题肉眼几乎无法区分,通常是从网页、富文本文档、即时聊天窗口复制命令时,输入法或编辑器自动做了符号替换导致的,也是你搜不到太多同类解决方案的原因——属于输入类低级错误,很少有人专门发帖记录。
修复方案
- 删除
m前的长破折号,手动敲击键盘上的半角减号键(主键盘区数字0右侧、等号键左侧的按键),将参数写为标准的-m - 修正后可正常运行的命令如下:
cvs -d :something:mycvs_srv:/cvs/repo commit -f -m "bug fix" ctxroot/path/to/code.txt
- 如果后续遇到同类参数不识别的问题,又找不到肉眼可见的拼写错误,可以把待执行的命令前加
echo后通过管道传给cat -A,非ASCII的特殊符号会显示为异常转义序列,可以快速定位这类符号替换问题。 - 日常尽量避免直接从富文本内容里复制命令到生产终端执行,减少自动符号替换引发的故障。
内容的提问来源于stack exchange,提问作者user1561783
相关产品推荐
相关产品推荐

