廚老伯開槍中

如何更新已經停止更新但依然有 pull request 的 Pods?

如何更新已經停止更新但依然有 pull request 的 Pods?

有些 pod 套件因為曾經很受歡迎,所以有眾多使用者
即使原作者基於某些原因停止更新,依然會有人繼續更新,並發出 pull request
我剛好就碰到了這種情況..
以下是我的處理作法
以下假設 default branch 是 "master"
首先,如果你的 master 與原作者的 master head 不同,又怕原作者忽然回魂的話
為了以後的相容性,可以先進行以下步驟,讓自己 master 的 last commit 與原作者相同
之前有 fork 並在 mater 上有更新的話,先把 master 換個有意義的名字,例如 improve-performance
然後回到 branch 的開頭,重新建立 master branch,並 pull 原作者的 commit by rebase
這時,你應該會在自己的 master 上面看到與原作者相同的 commit

接下來,在 remote 中添加有發出 pull request 請求的 repo
一般來說,fork git 時不會修改名字,所以可以直接拿 github url 修改使用者名稱
然後就可以用 cherry pick 將自己與其他人的提交加入自己的 master 了

不過,這種作法下,應該就別送 pull request 給原作者了
萬一他回魂了,那他應該會收下之前的 pull request, 如果送了他又收了,就會有重複提交問題..
不過這樣的話,一開始嘗試與原作者同步的動作就顯得有點多餘..

以上作法可參考


[https://github.com/adison/iOS-StyledPageControl]
[https://github.com/adison/iOS-StyledPageControl/network]

如果這個 repo 與 pod 有關的話,可以在 Podfile 中使用指定 repo 方式處理
例如
pod 'StyledPageControl', :git => 'https://github.com/adison/iOS-StyledPageControl', :tag => '1.0.2'
要記得 pod 需要 tag 或 commit 做定位,所以要新增一個 tag
另外,StyledPageControl 沒有自帶 Podspec, 所以在這例子中,我還有另外添加 Podspec 檔案,在此說明一下

comments powered by Disqus