Jason Swift
Results
2
comments of
Jason Swift
嗯,go 存在这个情况是之前没了解到的。 我有两个思路: 一是设置一个选项(例如一个环境变量)来控制该行为,默认 disabled 。既然新发布的 go 遵循语义版本号,那些只用最近发布版本的用户可以 enable 该功能,而需要兼顾老版本的用户不受影响。 二是做冲突检测,如果冲突,则提示用户选择,否则正常使用该功能。
我又仔细查看了 go 发布的所有版本号,存在二义问题的只有 `1.21.0` 之前的版本,本应是 `1.x.0` 的却是 `1.x` 。 以我浅薄的经验,实际情况中,使用老版本基本都是使用最新的补丁版本,冲突发生概率极小。 我还是认为,如果发生冲突,给用户提示并做出选择是一种理想的解决方案。例如我本地安装有 `1.18` 和 `1.18.x` (x 未知),如果我想从 `1.23.4` 切换到 `1.18.x` ,我可以直接 `g use 1.18` ,检测到冲突后,程序给出选项(只有两个),我做出选择完成切换;使用当前的程序面对这种情况的做法是先 `g ls` 获知 x ,然后 `g...