[pacman-dev] [Proposal] --ignore-externals for svn source
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hi, I'm trying to put an svn source into a PKGBUILD, but unfortunately, the source has many large externals, that I'd like to ignore. If I read scripts/libmakepkg/source/svn.sh.in correctly, the cloning of all externals is (currently) hard coded. I would like to implement some option to disable that. What would be the best format for that? The only thing, I could come up with, is a source in the form: "$local_name::svn+https://$url#$revision?ignore_externals" However, this looks totally wrong, as "ignore_externals" is nothing, that should be done with the tree after cloning (in contrast to "signed" for git), but rather something, that should be inherent to the source (like a different protocol). Or is there already some nice trick to achieve, what I want? (I tried to put "ignore-externals" into .makepkg/config inside the svn tree, but it didn't change anything.) regards, Erich -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAmB+uZEACgkQCu7JB1Xa e1oXFg/+MVWKx3whEHs1uvEpuT2WXUSGVPuwUXdzfsVN7kTy80lzREIcFWx6O6Gy WyxtqCixNlZ4eOW6EseIeuVIQtgLPUN0HHUPiPRIlRWEJv4Jhys3blneeosjMzg8 cbUEawpdRs2Txgo3wYH6WhY+JeVI3uaw7YT1gStQhdsepPNUnhBnwqK5PiEiAwUg pBGivY4Ma40PgdjByW21abBlV4RGCiDniRLlvmvHRXOeeq7aOsKL5YzetAFrdxfl IpSDIC7es9KHFu48b0TTHFlbgr/mTLQY/YsHmXYZmJzPAW++ooD+ebUj+6eIYGUL OnyUjUY3v+uyGI6Eo2B8qQQ98nDfIAksrOjzgjAwmQG9PgN5HGXP4C2WYigOrl8s +mGQ69mFDb+T4t0SSl0mIiID0l7UMmvFs7iZ4aeuAeJCNWvV7fWAlXudpgZ19TEY McdVZa+0AlFS0x9/jo1h8b71kWb/N3rr5gCeOyePDKKuBA49AtwhvK/Miz77OVOz KoOkc/vwNXLkIyhfvlmi12FlWcKU5BblYkwJ/NQBv+SpE0ZroPT7V3+VuydmipTx NoUJmOVS61ZTJFgSJd14vHroRKY0lSJzQ3Jvv5Vtn1FNP1oNmwF1ZYfeXorvWtG/ f8zIxPtcsSSif6gd4YJ2QxSteKnbH658F+rRooB/FD/0UP5+o+E= =FiDa -----END PGP SIGNATURE-----
On 4/20/21 7:22 AM, Erich Eckner wrote:
Hi,
I'm trying to put an svn source into a PKGBUILD, but unfortunately, the source has many large externals, that I'd like to ignore. If I read scripts/libmakepkg/source/svn.sh.in correctly, the cloning of all externals is (currently) hard coded.
I would like to implement some option to disable that. What would be the best format for that?
The only thing, I could come up with, is a source in the form:
"$local_name::svn+https://$url#$revision?ignore_externals"
However, this looks totally wrong, as "ignore_externals" is nothing, that should be done with the tree after cloning (in contrast to "signed" for git), but rather something, that should be inherent to the source (like a different protocol).
Or is there already some nice trick to achieve, what I want? (I tried to put "ignore-externals" into .makepkg/config inside the svn tree, but it didn't change anything.)
It's not exactly clear to me what externals *are*. http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html Some of this (use cases) sounds like basically git submodules. "An externals definition is a mapping of a local directory to the URL—and ideally a particular revision—of a versioned directory." sounds like checking out to random directories outside of the clone destination. ... Is this just typical terrible svn documentation? Should I assume "just submodules"? It seems to me like svn is wrong-headed for making this the default clone action, it should be opt-in not opt-out. Maybe we could disable this by default and make people who want it, perform the same routines they currently do for git submodules. -- Eli Schwartz Bug Wrangler and Trusted User
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On Tue, 20 Apr 2021, Eli Schwartz wrote:
On 4/20/21 7:22 AM, Erich Eckner wrote:
Hi,
I'm trying to put an svn source into a PKGBUILD, but unfortunately, the source has many large externals, that I'd like to ignore. If I read scripts/libmakepkg/source/svn.sh.in correctly, the cloning of all externals is (currently) hard coded.
I would like to implement some option to disable that. What would be the best format for that?
The only thing, I could come up with, is a source in the form:
"$local_name::svn+https://$url#$revision?ignore_externals"
However, this looks totally wrong, as "ignore_externals" is nothing, that should be done with the tree after cloning (in contrast to "signed" for git), but rather something, that should be inherent to the source (like a different protocol).
Or is there already some nice trick to achieve, what I want? (I tried to put "ignore-externals" into .makepkg/config inside the svn tree, but it didn't change anything.)
It's not exactly clear to me what externals *are*.
http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html
Some of this (use cases) sounds like basically git submodules.
"An externals definition is a mapping of a local directory to the URL—and ideally a particular revision—of a versioned directory."
I'm no svn guru, either, but in my case, it definitely behaves like git submodules: svn+http://svn.freepascal.org/svn/fpcbuild
sounds like checking out to random directories outside of the clone destination.
...
I don't know about the general case, but here, it checks out to subdirectories (like git submodules).
Is this just typical terrible svn documentation? Should I assume "just submodules"?
That's at least, what I assumed.
It seems to me like svn is wrong-headed for making this the default clone action, it should be opt-in not opt-out. Maybe we could disable this by default and make people who want it, perform the same routines they currently do for git submodules.
Sounds reasonable, but OTOH, this sounds like a quite severe backwards-incompatibility :-) (and I don't know too many svn-based PKGBUILDs, so I cannot estimate the impact ...)
-- Eli Schwartz Bug Wrangler and Trusted User
regards, Erich -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAmB+wKwACgkQCu7JB1Xa e1pg1Q/9EjRs/AccWfF5UR56/JvG2i45imb99NYW0rSR4IGNgLUmYosOxCIq01l/ C4pHmqKijU6786rdmiddVWlyzP+PNHzHCbgr6kGgGJEqcgf+QFcUcmEHoahn9BE7 6Txmz+mgLQdaJG8rhorHKfIakzrRAcmG5593/E/OoLhI3b/lagR6svL4ez9lq7pJ SZo3k22z894lf+qVFjqhyEcKefnoZtBzE/RExurJ+t6KSn0oSIJbE9a8fSymrj6K BqPS9WmIU6amnjP3vvmoMI1geo4W0nZR5PnC73DUJP1hbRBflnjQR8xTX+Ot9pRh FwDBsAka8TUIAOWdFf7AxzYfJrH13TRLAYK2AexJcZmtptWiZRhlKq4izqnzT4oN Gnx9uG8zvwMFiID+te1U3zCEER/BDjTZYN6Z+zpHjPeCxsX0GJt0cQNNy0zh2VHH au9Ku797A3QOPE8QMhXY6CVvNblAoEccEOEHDDx1S8lGJqQlXM9xkZS899cSI34P lthUZqcTDRA0qJPVNot/0nITgLwnknH7o3tG5QoB0rF2NDc9b6i6vKGQVGbWVH/T ogeg47dLwwl6d5NvHwGEPzgYJAWUnBMhcuXIj1OiRAqOd0HjkHAgEsWf1F9jM5rG a/is5CpyMEqgt8WZq/7b7WruSfPFK7ruSBw/lOrylNdKKtwTVJw= =3nVg -----END PGP SIGNATURE-----
participants (2)
-
Eli Schwartz
-
Erich Eckner