Hi Magnus,
We had discussed using Git submodules in depth, but using them to keep
our current ReactOS modularization would require a separate
"reactos.git" and "rostests.git" repository. This comes with many
drawbacks:
* A previously single commit modifying "reactos" and "rostests" would
now be two unrelated commits to two repos. And on top of the code
changes, you would need to change the target hash of the "rostests"
submodule in "reactos".
* Creating a branch in "reactos" would not create a branch in
"rostests"
as well. You would have to replicate branch creation manually and change
the submodule target hash again.
We basically introduced the modularization in SVN, because people could
decide to just check out "reactos" without the rest, saving disk space,
download and build time. With Git, people are cloning the entire history
of ReactOS anyway and checkouts are faster, so there is no point about
saving disk space and download time anymore. Build time will still be
saved by disabling the modules through CMake.
In the future, we may think about using Git submodules or Git subtree
for third-party imported components. But let's first migrate to Git
ourselves :)
Cheers,
Colin
Am 08.09.2017 um 07:55 schrieb Magnus Johnsson:
Doesn't submodules do what you need? And, all
submodules get cloned
automatically if you just add --recursive to the clone command. It all
depends on what you mean by arbitrary location. :).
https://github.com/magnusjjj/gfesys/blob/master/.gitmodules
(I will shut up if you feel this is annoying and shit. Not meant as a
besserwisser-y shit or no-clue-as-to-situation or something, and don't
want to derail the discussion :). Just nerdsniped me since I have been
using the functionality a fair bit and also seen other projects use it
for things that *sound* similar to what you are talking about)
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
Virus-free.
www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
2017-09-07 23:50 GMT+02:00 David Quintana (gigaherz) <gigaherz(a)gmail.com
<mailto:gigaherz@gmail.com>>:
Answering to Magnus: In svn it's trivial to checkout a subfolder in
an arbitrary location and commit and such from that subfolder. This
made it easy to have separate root folders for rostests, rosapps,
etc. Doing this in git is non-trivial and even if possible, would
require multiple clones, which is not wanted.
Answering to Dimitrij: Using mklink in windows requires
administrator privileges. It's not a valid option. And XP didn't
have proper symlinks, it had junction points which are not quite the
same.
Given to the two reasons above, it's much more effective to
permanently move the files to inside the modules folder, where the
build system already expects it, and change the check from "folder
exists" to "this property/variable is set".
On 7 September 2017 at 22:50, Dimitrij Klingbeil <dklingb(a)gmail.com
<mailto:dklingb@gmail.com>> wrote:
Hi Colin
How about using links in the local filesystem? On Windows it's
possible to use directory links in a similar way to Linux.
Starting from Win7 there is a simple native way to do so (the
mklink command), but it has already been possible since WinXP
(with linkd.exe from the Windows Server 2003 Resource Kit).
It should be possible to keep the modules structure, clone the
individual repositories into separate directories locally and
link the directories into the target directory with one of the
linkd / mklink / ln utilities on the development system. The
links can be easily deleted with the normal Windows delete
functions if need arises to remove them.
Regards
Dimitrij
----- Original Message ----- From: "Colin Finck"
<colin(a)reactos.org <mailto:colin@reactos.org>>
To: "'ReactOS Development List'" <ros-dev(a)reactos.org
<mailto:ros-dev@reactos.org>>
Sent: Thursday, September 07, 2017 7:17 PM
Subject: [ros-dev] Git Migration: The documentation, rossubsys
and wallpapers directories
Hi all!
As you know, we have to give up our "modules" directory
concept when switching to Git, because Git doesn't support
checking out an arbitrary directory into a subdirectory of a
Git clone.
Therefore, the first commit to the migrated repository will
make the "reactos" directory the new root and move
"rosapps"
and "rostests" permanently into "modules". We can then
introduce an environment variable/CMake variable/something
else to enable or disable building of them on demand
(suggestions are welcome!)
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org <mailto:Ros-dev@reactos.org>
http://www.reactos.org/mailman/listinfo/ros-dev
<http://www.reactos.org/mailman/listinfo/ros-dev>
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org <mailto:Ros-dev@reactos.org>
http://www.reactos.org/mailman/listinfo/ros-dev
<http://www.reactos.org/mailman/listinfo/ros-dev>
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev