gitソースから浅いレプリカのみを取得するようにPKGBUILDを変更する方法は?

gitソースから浅いレプリカのみを取得するようにPKGBUILDを変更する方法は?

数日前に設置しようとしました。opencv-git~から尿素尿の割合makepkgArch Linuxで。もちろんそれから来たものです。リポジトリは名前の通りです。これにより1GBが消費されます。作りについて読んでいます。浅いクローンそしてgit。私が使用してPKGBUILDファイルを見るときgrep git PKGBUILD

pkgname="opencv-git"
makedepends=('git' 'cmake' 'python2-numpy' 'mesa' 'eigen2')
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
source=("${pkgname%-git}::git+http://github.com/Itseez/opencv.git"
    cd "${srcdir}/${pkgname%-git}"
    git describe --long | sed -r 's/([^-]*-g)/r\1/;s/-/./g'
    cd "${srcdir}/${pkgname%-git}"
    cd "${srcdir}/${pkgname%-git}"
    cd "${srcdir}/${pkgname%-git}"
    install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname%-git}/LICENSE"

makepkgスペースと帯域幅を節約するために、ストレージ全体ではなく浅いレプリカ(最新バージョンのソースコードが欲しいもの)だけを取得するようにレシピやコマンドを変更する方法はありますか?読むman 5 PKGBUILD私が探していた洞察を提供できませんでした。また、簡単にmakepkg見てください。pacman マンページ- これを行う方法が見つからないようです。

ベストアンサー1

これはカスタマイズを使用して行うことができます。遅延プロキシ。私はArchパッケージングやdlagentsがどのように機能するのかよくわかりませんでしたが、ハック回答しかありませんが、作業は完了しました。

アイデアは、カスタムダウンロードエージェントを使用するようにPKGBUILDを変更することです。ソースコードを修正しました

"${pkgname%-git}::git+http://github.com/Itseez/opencv.git"

入力する

"${pkgname%-git}::mygit://opencv.git"

mygitその後、浅い複製先の新しいdlagentが定義されます。

makepkg DLAGENTS='mygit::/usr/bin/git clone --depth 1 http://github.com/Itseez/opencv.git'

また、複製されるリポジトリはコマンドにハードコードされています。繰り返しますが、これは避けられます。最後に、ダウンロード場所はPKGBUILDが期待する場所ではありません。この問題を解決するために、ダウンロード後にリポジトリを移動しました。私はこれを追加してこれをしました

mv "${srcdir}/../mygit:/opencv.git" "${srcdir}/../${pkgname%-git}"

関数の先頭にpkgver

git+httpよりクリーンな解決策は、dlagentが何をしているのかを特定し、一時的に再調整することです。これにより、ソリューションのすべてのハッカーの側面を回避できます。

おすすめ記事