From 27d567f56de0db601ed1cb74b8ebaed0fea9de99 Mon Sep 17 00:00:00 2001 From: RDW Date: Wed, 1 Oct 2025 18:41:39 +0200 Subject: [PATCH 1/3] Enable parallel fetches for all submodules If I understand correctly, the default is unset = single-threaded. That would make things unnecessarily slow? --- > Specifies how many submodules are fetched/cloned at the same time. A positive integer allows up to that number of submodules fetched in parallel. A value of 0 will give some reasonable default. If unset, it defaults to 1. Source: https://git-scm.com/docs/git-config#Documentation/git-config.txt-submodulefetchJobs --- .gitmodules | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/.gitmodules b/.gitmodules index 4b7cb03..f31982b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,159 +1,212 @@ [submodule "Tools/BrowEdit"] path = Tools/BrowEdit url = https://github.com/Borf/browedit + fetchJobs = 0 [submodule "Tools/BrowEdit3"] path = Tools/BrowEdit3 url = https://github.com/Borf/BrowEdit3 + fetchJobs = 0 [submodule "Clients/Korangar"] path = Clients/Korangar url = https://github.com/vE5li/korangar + fetchJobs = 0 [submodule "Clients/roBrowser"] path = Clients/roBrowser url = https://github.com/MrAntares/roBrowserLegacy + fetchJobs = 0 [submodule "Clients/UnityRO"] path = Clients/UnityRO url = https://github.com/guilhermelhr/unityro + fetchJobs = 0 [submodule "Clients/midgarts"] path = Clients/midgarts url = https://github.com/rdw-forks/midgarts + fetchJobs = 0 [submodule "Clients/Aesir"] path = Clients/Aesir url = https://github.com/Temtaime/aesir + fetchJobs = 0 [submodule "Clients/RagnarokRebuild"] path = Clients/RagnarokRebuild url = https://github.com/Doddler/RagnarokRebuild + fetchJobs = 0 [submodule "Clients/RagnarokRebuildTCP"] path = Clients/RagnarokRebuildTCP url = https://github.com/Doddler/RagnarokRebuildTcp + fetchJobs = 0 [submodule "Clients/RagnarokJS"] path = Clients/RagnarokJS url = https://github.com/GodLesZ/rangarok-js + fetchJobs = 0 [submodule "Clients/Fimbulwinter"] path = Clients/Fimbulwinter url = https://github.com/rdw-forks/fimbulclient + fetchJobs = 0 [submodule "Clients/OpenRagnarok"] path = Clients/OpenRagnarok url = https://github.com/open-ragnarok/open-ragnarok + fetchJobs = 0 [submodule "Servers/RustRO"] path = Servers/RustRO url = https://github.com/nmeylan/rust-ro + fetchJobs = 0 [submodule "Servers/rAthena"] path = Servers/rAthena url = https://github.com/rathena/rathena + fetchJobs = 0 [submodule "Servers/Hercules"] path = Servers/Hercules url = https://github.com/HerculesWS/Hercules + fetchJobs = 0 [submodule "Servers/Midgard"] path = Servers/Midgard url = https://github.com/ViteFalcon/midgard + fetchJobs = 0 [submodule "Clients/Rustarok"] path = Clients/Rustarok url = https://github.com/bbodi/rustarok + fetchJobs = 0 [submodule "Tools/ro-str-viewer"] path = Tools/ro-str-viewer url = https://github.com/ADHSoft/ro-str-viewer + fetchJobs = 0 [submodule "Clients/Dolori"] path = Clients/Dolori url = https://gitlab.com/Dolori/Dolori.git + fetchJobs = 0 [submodule "Clients/Apocalypse"] path = Clients/Apocalypse url = https://github.com/JohoSleipnir/Apocalypse + fetchJobs = 0 [submodule "Clients/Gullinkambi"] path = Clients/Gullinkambi url = https://github.com/meh/Gullinkambi + fetchJobs = 0 [submodule "Clients/MidgardClient"] path = Clients/MidgardClient url = https://github.com/shikazu/MidgardClient + fetchJobs = 0 [submodule "Tools/zgrf"] path = Tools/zgrf url = https://github.com/zhad3/zgrf + fetchJobs = 0 [submodule "Tools/zrenderer"] path = Tools/zrenderer url = https://github.com/zhad3/zrenderer + fetchJobs = 0 [submodule "Tools/zextractor"] path = Tools/zextractor url = https://github.com/zhad3/zextractor + fetchJobs = 0 [submodule "Tools/GrfUnpack"] path = Tools/GrfUnpack url = https://github.com/exectails/GrfUnpack + fetchJobs = 0 [submodule "Tools/grf-reader"] path = Tools/grf-reader url = https://github.com/EmanuelJr/grf-reader + fetchJobs = 0 [submodule "Tools/RRF-Parser"] path = Tools/RRF-Parser url = https://github.com/Tokeiburu/Rrf-Parser.git + fetchJobs = 0 [submodule "Clients/UnityRO-SDK"] path = Clients/UnityRO-SDK url = https://github.com/def-not-a-game-studio/unityro-sdk.git + fetchJobs = 0 [submodule "Servers/aliter"] path = Servers/aliter url = https://github.com/rdw-forks/aliter + fetchJobs = 0 [submodule "Servers/exAthena"] path = Servers/exAthena url = https://github.com/supaMOBA/exAthena + fetchJobs = 0 [submodule "Tools/ROplusplus"] path = Tools/ROplusplus url = https://github.com/phaicm/ROplusplus.git + fetchJobs = 0 [submodule "Tools/GRFEditor"] path = Tools/GRFEditor url = https://github.com/Tokeiburu/GRFEditor.git + fetchJobs = 0 [submodule "Tools/ActEditor"] path = Tools/ActEditor url = https://github.com/Tokeiburu/ActEditor.git + fetchJobs = 0 [submodule "Tools/RSM2"] path = Tools/RSM2 url = https://github.com/Tokeiburu/RSM2.git + fetchJobs = 0 [submodule "Servers/Helios"] path = Servers/Helios url = https://github.com/Tsusai/Ragnarok-HeliosEmulator/ + fetchJobs = 0 [submodule "Tools/roint"] path = Tools/roint url = https://github.com/open-ragnarok/roint + fetchJobs = 0 [submodule "Tools/luadec"] path = Tools/luadec url = https://github.com/viruscamp/luadec + fetchJobs = 0 [submodule "Clients/bevy_ro_client"] path = Clients/bevy_ro_client url = https://github.com/hukasu/bevy_ro_client + fetchJobs = 0 [submodule "Clients/roBrowser__RemoteClientPHP"] path = Clients/roBrowser__RemoteClientPHP url = https://github.com/MrAntares/roBrowserLegacy-RemoteClient-PHP.git + fetchJobs = 0 [submodule "Clients/roBrowser__RemoteClientJS"] path = Clients/roBrowser__RemoteClientJS url = https://github.com/FranciscoWallison/roBrowserLegacy-RemoteClient-JS + fetchJobs = 0 [submodule "Clients/roBrowser__Plugins"] path = Clients/roBrowser__Plugins url = https://github.com/MrAntares/roBrowserLegacy-plugins + fetchJobs = 0 [submodule "Clients/roBrowser__wsProxy"] path = Clients/roBrowser__wsProxy url = https://github.com/MrAntares/roBrowserLegacy-wsProxy + fetchJobs = 0 [submodule "Servers/horizon"] path = Servers/horizon url = https://github.com/rdw-forks/horizon.git + fetchJobs = 0 [submodule "Tools/gr2-web"] path = Tools/gr2-web url = https://github.com/herenow/gr2-web.git + fetchJobs = 0 [submodule "Tools/opengr2-bevy"] path = Tools/opengr2-bevy url = https://github.com/NoFr1ends/opengr2-bevy.git + fetchJobs = 0 [submodule "Tools/opengr2-viewer"] path = Tools/opengr2-viewer url = https://github.com/NoFr1ends/opengr2-viewer.git + fetchJobs = 0 [submodule "Tools/opengr2-rs"] path = Tools/opengr2-rs url = https://github.com/NoFr1ends/opengr2-rs.git + fetchJobs = 0 [submodule "Tools/opengr2"] path = Tools/opengr2 url = https://github.com/arves100/opengr2.git + fetchJobs = 0 [submodule "Tools/Granny2-research"] path = Tools/Granny2-research url = https://github.com/arves100/Granny2-research.git + fetchJobs = 0 [submodule "Tools/GrannyConverterLibrary"] path = Tools/GrannyConverterLibrary url = https://github.com/Anohros/GrannyConverterLibrary.git + fetchJobs = 0 [submodule "Tools/liboodle"] path = Tools/liboodle url = https://github.com/LunaticInAHat/liboodle.git + fetchJobs = 0 [submodule "Tools/Knit"] path = Tools/Knit url = https://github.com/yretenai/Knit.git + fetchJobs = 0 From da22fae53e506baf38864f252dfee5584f8f3d15 Mon Sep 17 00:00:00 2001 From: RDW Date: Wed, 1 Oct 2025 18:53:15 +0200 Subject: [PATCH 2/3] Enable shallow fetches for all submodules This should also speed up recursive clones, at the cost of losing history/tags (disabled for snapshots). --- .gitmodules | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/.gitmodules b/.gitmodules index f31982b..c64855b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,211 +2,264 @@ path = Tools/BrowEdit url = https://github.com/Borf/browedit fetchJobs = 0 + shallow = true [submodule "Tools/BrowEdit3"] path = Tools/BrowEdit3 url = https://github.com/Borf/BrowEdit3 fetchJobs = 0 + shallow = true [submodule "Clients/Korangar"] path = Clients/Korangar url = https://github.com/vE5li/korangar fetchJobs = 0 + shallow = true [submodule "Clients/roBrowser"] path = Clients/roBrowser url = https://github.com/MrAntares/roBrowserLegacy fetchJobs = 0 + shallow = true [submodule "Clients/UnityRO"] path = Clients/UnityRO url = https://github.com/guilhermelhr/unityro fetchJobs = 0 + shallow = true [submodule "Clients/midgarts"] path = Clients/midgarts url = https://github.com/rdw-forks/midgarts fetchJobs = 0 + shallow = true [submodule "Clients/Aesir"] path = Clients/Aesir url = https://github.com/Temtaime/aesir fetchJobs = 0 + shallow = true [submodule "Clients/RagnarokRebuild"] path = Clients/RagnarokRebuild url = https://github.com/Doddler/RagnarokRebuild fetchJobs = 0 + shallow = true [submodule "Clients/RagnarokRebuildTCP"] path = Clients/RagnarokRebuildTCP url = https://github.com/Doddler/RagnarokRebuildTcp fetchJobs = 0 + shallow = true [submodule "Clients/RagnarokJS"] path = Clients/RagnarokJS url = https://github.com/GodLesZ/rangarok-js fetchJobs = 0 + shallow = true [submodule "Clients/Fimbulwinter"] path = Clients/Fimbulwinter url = https://github.com/rdw-forks/fimbulclient fetchJobs = 0 + shallow = true [submodule "Clients/OpenRagnarok"] path = Clients/OpenRagnarok url = https://github.com/open-ragnarok/open-ragnarok fetchJobs = 0 + shallow = true [submodule "Servers/RustRO"] path = Servers/RustRO url = https://github.com/nmeylan/rust-ro fetchJobs = 0 + shallow = true [submodule "Servers/rAthena"] path = Servers/rAthena url = https://github.com/rathena/rathena fetchJobs = 0 + shallow = true [submodule "Servers/Hercules"] path = Servers/Hercules url = https://github.com/HerculesWS/Hercules fetchJobs = 0 + shallow = true [submodule "Servers/Midgard"] path = Servers/Midgard url = https://github.com/ViteFalcon/midgard fetchJobs = 0 + shallow = true [submodule "Clients/Rustarok"] path = Clients/Rustarok url = https://github.com/bbodi/rustarok fetchJobs = 0 + shallow = true [submodule "Tools/ro-str-viewer"] path = Tools/ro-str-viewer url = https://github.com/ADHSoft/ro-str-viewer fetchJobs = 0 + shallow = true [submodule "Clients/Dolori"] path = Clients/Dolori url = https://gitlab.com/Dolori/Dolori.git fetchJobs = 0 + shallow = true [submodule "Clients/Apocalypse"] path = Clients/Apocalypse url = https://github.com/JohoSleipnir/Apocalypse fetchJobs = 0 + shallow = true [submodule "Clients/Gullinkambi"] path = Clients/Gullinkambi url = https://github.com/meh/Gullinkambi fetchJobs = 0 + shallow = true [submodule "Clients/MidgardClient"] path = Clients/MidgardClient url = https://github.com/shikazu/MidgardClient fetchJobs = 0 + shallow = true [submodule "Tools/zgrf"] path = Tools/zgrf url = https://github.com/zhad3/zgrf fetchJobs = 0 + shallow = true [submodule "Tools/zrenderer"] path = Tools/zrenderer url = https://github.com/zhad3/zrenderer fetchJobs = 0 + shallow = true [submodule "Tools/zextractor"] path = Tools/zextractor url = https://github.com/zhad3/zextractor fetchJobs = 0 + shallow = true [submodule "Tools/GrfUnpack"] path = Tools/GrfUnpack url = https://github.com/exectails/GrfUnpack fetchJobs = 0 + shallow = true [submodule "Tools/grf-reader"] path = Tools/grf-reader url = https://github.com/EmanuelJr/grf-reader fetchJobs = 0 + shallow = true [submodule "Tools/RRF-Parser"] path = Tools/RRF-Parser url = https://github.com/Tokeiburu/Rrf-Parser.git fetchJobs = 0 + shallow = true [submodule "Clients/UnityRO-SDK"] path = Clients/UnityRO-SDK url = https://github.com/def-not-a-game-studio/unityro-sdk.git fetchJobs = 0 + shallow = true [submodule "Servers/aliter"] path = Servers/aliter url = https://github.com/rdw-forks/aliter fetchJobs = 0 + shallow = true [submodule "Servers/exAthena"] path = Servers/exAthena url = https://github.com/supaMOBA/exAthena fetchJobs = 0 + shallow = true [submodule "Tools/ROplusplus"] path = Tools/ROplusplus url = https://github.com/phaicm/ROplusplus.git fetchJobs = 0 + shallow = true [submodule "Tools/GRFEditor"] path = Tools/GRFEditor url = https://github.com/Tokeiburu/GRFEditor.git fetchJobs = 0 + shallow = true [submodule "Tools/ActEditor"] path = Tools/ActEditor url = https://github.com/Tokeiburu/ActEditor.git fetchJobs = 0 + shallow = true [submodule "Tools/RSM2"] path = Tools/RSM2 url = https://github.com/Tokeiburu/RSM2.git fetchJobs = 0 + shallow = true [submodule "Servers/Helios"] path = Servers/Helios url = https://github.com/Tsusai/Ragnarok-HeliosEmulator/ fetchJobs = 0 + shallow = true [submodule "Tools/roint"] path = Tools/roint url = https://github.com/open-ragnarok/roint fetchJobs = 0 + shallow = true [submodule "Tools/luadec"] path = Tools/luadec url = https://github.com/viruscamp/luadec fetchJobs = 0 + shallow = true [submodule "Clients/bevy_ro_client"] path = Clients/bevy_ro_client url = https://github.com/hukasu/bevy_ro_client fetchJobs = 0 + shallow = true [submodule "Clients/roBrowser__RemoteClientPHP"] path = Clients/roBrowser__RemoteClientPHP url = https://github.com/MrAntares/roBrowserLegacy-RemoteClient-PHP.git fetchJobs = 0 + shallow = true [submodule "Clients/roBrowser__RemoteClientJS"] path = Clients/roBrowser__RemoteClientJS url = https://github.com/FranciscoWallison/roBrowserLegacy-RemoteClient-JS fetchJobs = 0 + shallow = true [submodule "Clients/roBrowser__Plugins"] path = Clients/roBrowser__Plugins url = https://github.com/MrAntares/roBrowserLegacy-plugins fetchJobs = 0 + shallow = true [submodule "Clients/roBrowser__wsProxy"] path = Clients/roBrowser__wsProxy url = https://github.com/MrAntares/roBrowserLegacy-wsProxy fetchJobs = 0 + shallow = true [submodule "Servers/horizon"] path = Servers/horizon url = https://github.com/rdw-forks/horizon.git fetchJobs = 0 + shallow = true [submodule "Tools/gr2-web"] path = Tools/gr2-web url = https://github.com/herenow/gr2-web.git fetchJobs = 0 + shallow = true [submodule "Tools/opengr2-bevy"] path = Tools/opengr2-bevy url = https://github.com/NoFr1ends/opengr2-bevy.git fetchJobs = 0 + shallow = true [submodule "Tools/opengr2-viewer"] path = Tools/opengr2-viewer url = https://github.com/NoFr1ends/opengr2-viewer.git fetchJobs = 0 + shallow = true [submodule "Tools/opengr2-rs"] path = Tools/opengr2-rs url = https://github.com/NoFr1ends/opengr2-rs.git fetchJobs = 0 + shallow = true [submodule "Tools/opengr2"] path = Tools/opengr2 url = https://github.com/arves100/opengr2.git fetchJobs = 0 + shallow = true [submodule "Tools/Granny2-research"] path = Tools/Granny2-research url = https://github.com/arves100/Granny2-research.git fetchJobs = 0 + shallow = true [submodule "Tools/GrannyConverterLibrary"] path = Tools/GrannyConverterLibrary url = https://github.com/Anohros/GrannyConverterLibrary.git fetchJobs = 0 + shallow = true [submodule "Tools/liboodle"] path = Tools/liboodle url = https://github.com/LunaticInAHat/liboodle.git fetchJobs = 0 + shallow = true [submodule "Tools/Knit"] path = Tools/Knit url = https://github.com/yretenai/Knit.git fetchJobs = 0 + shallow = true \ No newline at end of file From 8850ef1089c33cfddef3ce7cf8702613431208fa Mon Sep 17 00:00:00 2001 From: RDW Date: Wed, 1 Oct 2025 19:32:17 +0200 Subject: [PATCH 3/3] Add more efficient checkout methods to the README --- README.MD | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/README.MD b/README.MD index dd72ee2..37de61c 100644 --- a/README.MD +++ b/README.MD @@ -14,7 +14,34 @@ Make sure to check out the repository *recursively* since it uses [Git submodule git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --recursive ``` -Be aware that *all* dependencies will be fetched, some of which are quite large. Several gigabytes of hard disk space will be consumed. +Be aware that *all* dependencies will be fetched, some of which are quite large (several gigabytes). + +If you aren't interested in getting the complete commit history, you can speed up this process: + +```bash +git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --recursive --shallow-submodules +``` + +To further reduce the time needed to clone, you may want to skip nested dependencies as well: + +```bash +git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --shallow-submodules +``` + +Finally, you could override the parallelism factor, which defaults to an overly conservative value: + +```bash +git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --shallow-submodules --jobs=8 +``` + +The difference will be quite signitifcant, as shown by the following comparison table: + +| Recursive | Shallow | Jobs | Time | Disk Usage | +| :---: | :---: | :---: | :---: | :---: | +| NO | NO | 0 (auto) | 0.929 sec | 246 KB | +| YES | NO | 0 (auto) | 8 min 4 sec | 4.8 GB | +| YES | YES | 8 | 3 min 58 sec | 3.1 GB | +| YES | YES | 0 (auto) | 5 min 56 sec | 3.1 GB | ## Licensing Information