rime / plum

東風破 /plum/: Rime configuration manager and input schema repository
GNU Lesser General Public License v3.0
1.41k stars 140 forks source link

对于默认分支为 main 的配方仓库,无法使用 plum 更新 #43

Closed amorphobia closed 3 years ago

amorphobia commented 3 years ago

switch_branch() 里,如果没匹配到分支名称,将退出。

代码中的默认分支名称是硬编码: update-package.sh#L63

lotem commented 3 years ago

可以指定分支名称。 缺省值是master

lotem commented 3 years ago

大概我沒表達清楚這一點:默認分支用其他名字的,可以通過在配方參數中指定分支名(user/repo@branch)完成更新。 基於粗糙的腳本實現,未能將缺省分支參數可靠地解析爲實際代碼庫的默認分支,因此最好在首次獲取配方及後續更新時一致地在配方參數中指定分支。 讓腳本猜測個性化的默認分支名,好處有啥?恐怕問題更多。git幫助裏提到master之外常用的就有好幾種,實際應用中的也許更多,邏輯會變得不可捉摸。配方參數有固定含義,能可靠地定位到資源,對用戶很關鍵。 爲什麼不按照慣例使用可愛的master做主分支名,讓世事變得簡單呢?這是多麼酷的名字,且是極客文化中的重要符號啊。我想不到,一部分人竟對此有不同意見,這簡直瘋了。即便如此,主不在乎。

amorphobia commented 3 years ago

您好,感谢您的说明,我也谈谈我的见解。

我倾向于把这个议题当作单纯的技术性问题,不论 Github 将默认分支改为 main 的原因是什么,一个趋势是今后以 main 为默认分支的仓库会越来越多,对其支持是一个不坏的选择。

我想,Rime 和 plum 的用户应该并非都对代码有所了解。或许会有用户遇到这种情况,心想,为何我安装配方之时的命令用于更新会出现错误?而有的配方用同一个命令能够正常更新?行动力强的用户,或通过看源代码知道了指定分支名、或通过在 Github 搜索知道了指定分支名;但对于单纯只是使用配方的用户,可能就不会关心仓库有分支名这一件事情了。

另外,我个人也同意 master 很酷,但我将此议题视为单纯的技术性问题,因此而提出,并不是支持默认分支改为 main

lotem commented 3 years ago

对于单纯只是使用配方的用户,可能就不会关心仓库有分支名这一件事情了。

這一點你說得極對。 改進後的PR有強力的兼容效果,讓單分支的代碼庫分支名不再有重大影響,只要用戶不指明分支,總可以正確讀取。何樂而不爲?

另一方面,單純的方面,多分支的配方庫也有一些,如 https://github.com/rime/rime-emoji ,尤以 https://github.com/lotem/rime-octagram-data 爲典型:主分支分發配置文件,另設專門的兩個分支分發較大的語言模型的簡繁版本。 已經使用分支參數的用戶可能會傾向於對主分支也一併指定,因此默認分支的名字不能統一的話,仍然會遭遇令人困惑的情況。

因此我要堅持在技術上的兼容處理之外……你問我支不支持,那我是不支持的,我就明確給你告訴這一點。Rime配方倉庫與獨立軟件的倉庫在這個問題上的靈活性是有區別的,配方倉庫屬於一個既有的軟件生態,若各自採用不同的格式,在技術上絕不是好的選擇。GitHub竟做出如此不講技術的無趣改動,令人震驚。此時想學殺哥來一句,These P.C. fanatics!瞎整。