OS file system disparity and building Torque
by Richard Ranft · in Torque 3D Professional · 07/28/2014 (7:00 am) · 6 replies
Posix systems have symlinks - very handy.
Windows has links. I thought they were going to be equivalent, but they're not.
My purpose was to keep a game project in a single repository but use the link mechanism to build against T3D 3.5 and 3.5.1. Keeps my engine repositories separate from my game projects, lets me easily check against different versions of the engine during migration (or when verifying an issue someone thinks is related to a specific code change).
Windows links don't seem to understand where they are - relative paths work strangely. For some reason, building via the project in either location resulted in the path being interpreted as the 3.5 engine source location.
Anyway, just thought people might be interested in this little oddity....
Windows has links. I thought they were going to be equivalent, but they're not.
My purpose was to keep a game project in a single repository but use the link mechanism to build against T3D 3.5 and 3.5.1. Keeps my engine repositories separate from my game projects, lets me easily check against different versions of the engine during migration (or when verifying an issue someone thinks is related to a specific code change).
Windows links don't seem to understand where they are - relative paths work strangely. For some reason, building via the project in either location resulted in the path being interpreted as the 3.5 engine source location.
Anyway, just thought people might be interested in this little oddity....
About the author
I was a soldier, then a computer technician, an electrician, a technical writer, game programmer, and now software test/tools developer. I've been a hobbyist programmer since the age of 13.
#2
07/28/2014 (9:36 am)
Sweet - that's really helpful! Another issue I was having with links was that using the projectGenerator.bat file would fail to find ../../Tools/projectGenerator. Really annoying.
#3
07/28/2014 (9:44 am)
That's because links (.lnk) are just regular files that only Windows Explorer understands for visual symbolic link like behavior.
#4
07/28/2014 (10:06 am)
I don't even know why that exists - someone was just not thinking when they did that. The setup you described above should just be part of the OS - it's simple and intuitive. It's one of the few things I find truly enjoyable about working in Linux - the nuts and bolts just work.
#5
07/28/2014 (10:18 am)
This is one of the reasons I'm using Perforce and its awesome streams that pull together several of Perforce features in a coherent way and simplify the management. I keep the engine branches in a depot that is shared between all projects, each project is kept in its own separate stream depot where the streams simply import the engine code into its view when synced. When the engine code depot is changed the imported code in all project streams are also updated automatically.
#6
Planning to start using Perforce soon, though - we're moving that way at work, so I might as well get in the habit....
08/05/2014 (2:29 pm)
I ended up using SVN's externals - basically the reverse of Perforce from your description. I check out the engine version I want, then add my game project in /My Projects as an external. Game project stays separate from the engine and everything still acts right.Planning to start using Perforce soon, though - we're moving that way at work, so I might as well get in the habit....
Torque Owner Nathan Martin
TRON 2001 Network