You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
我又仔细查看了 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 use 1.18.x ,实际上也是输入两次。二者对比,我认为前者对用户更友好。🤔
Is your feature request related to a problem? Please describe.
g 没有充分利用语义版本信息,存在不便之处。例如我想从 1.20 切换到 1.22 ,但是不知道也不关心补丁版本,我期待的命令是
g use 1.22
而不是g use 1.22.3
。Describe the solution you'd like
构造一个哈希表,将忽略了小版本的版本号映射到小版本的最新版本,例如假设最新版本是 1.23.4 ,则
1
和1.23
都指向1.23.4
。将用户输入经过哈希表转换再做后续操作,可以提升用户体验。
我用 Rust 写过一个 nodejs 的版本管理工具 nvm ,其中 src/semver.rs 包含了我的实现和测试,可以作为参考。
(我还不能用 Go 独立完成 😀)
nvm 利用语义版本信息简化输入示例:
Describe alternatives you've considered
Additional context
The text was updated successfully, but these errors were encountered: