ID:1243036
 
Hello!

As a programmer, I often find my self feeling foolish that I don't understand, really, the concept of a source control project or specifically how any of the popular ones work. I know there's probably a lot of groups out there working on projects together, and the easiest way to do that is with source control like subversion or github... The problem is, I don't understand these very well and I don't have much interest in learning how they work with any language except for DM. Considering DM is a much lesser known language, and all proprietary, I'm not really sure how to setup a DM project in a source control environment.

This is a request for anyone out there to write a cohesive and bottom-line step-by-step tutorial on how to put a DM project into a source control environment, and get on with forks and commits and including other people into the project. I feel like this would be a great way for me to test features that I don't want to commit to a main code base, and if I don't like the way my idea is going, I can just totally scrap it, move it to a fork until its ready to merge, or something else! Otherwise, this type of stuff is pretty much impossible with Dream Maker, or file-copy & windows-explorer hell!

Help! and thanks in advance :D
First, download and install Tortoise SVN.

Next, create a free account and start a project on Assembla. There are also places like GitHub and Rioux, but this one works and is free.

Once you've got your project ready, go to the Source tab and get the checkout URL. It looks like: https://subversion.assembla.com/svn/PROJECTNAME

On your desktop, create a new folder. Right-click it and select SVN Checkout.

In the Checkout window, enter the URL from before in the "URL of repository" section. When clicking Ok it may ask for your Assembla account/password, enter it if necessary.

From now on you will either UPDATE the folder by downloading new files which are merged with your own or COMMIT changes by uploading your files to the repository.

There are all sorts of other useful things like working folders and version rollbacks, but this should at least get you started. There are probably better guides around the internet if you want something more in-depth.
Just as a tip, should you use any kind of version control, I've found it better to not include the environment's *.int file, as well as the *.dmb and *.rsc files. The *.int file saves which files in the environment were open at the time of the environment was saved, among other things, so it would be best for each user to have their own. It doesn't really matter about the *.dmb or *.rsc files, but those can be easily generated by each user, and compiled files are usually not kept in a repository.
In response to TheLionsRoar
TheLionsRoar wrote:
Just as a tip, should you use any kind of version control, I've found it better to not include the environment's *.int file, as well as the *.dmb and *.rsc files. The *.int file saves which files in the environment were open at the time of the environment was saved, among other things, so it would be best for each user to have their own. It doesn't really matter about the *.dmb or *.rsc files, but those can be easily generated by each user, and compiled files are usually not kept in a repository.

That is really good info to know! Thanks!
In response to TheLionsRoar
To be honest, this is about the only BYOND specific information you'd need for using most version control systems.

The only other one I'm aware of, is it's a good idea to turn off automatic directory inclusion in DreamMaker and instead make your reference to icons explicit in the code or manually write in FILE_DIR entries you are interested in.

If left on, Dream Maker tends to include "hidden" directories like .git and .svn into the DME file. These obviously are liable to change at will, meaning your DME file will show up in your version control system as changed, when to the best of your knowledge, you've made no such changes. Similarly, including all those hidden folders will slow down the compilation a bit as they are searched to resolve icons.
I did not know that, and I was experiencing that problem with the DME. Thanks for letting me know.