[Religion and Revolution]: Subversion

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,637
Location
Stuttgart, Germany
This thread is an internal thread meant for the Religion and Revolution team.

To ensure easy cooperative work on our mod, we have set up a Subversion repository on a server.

Access is limited to our team and some selected partners.

Our releases will be published as download links.

If you have any problems or questions, please write a private message to me. :)
 
Getting started

1. Getting an account

In order to get an account, you need to send me your eMail-address.
With this eMail-address, we will be able to invite you to the SVN.

Once you get the invitation, you can create your user and give it a password.

This user will be needed to access our repository.

2. Installation of SVN client

I strongly suggest you get Tortoise SVN client.
(Preferably English version, because it will make it easier for us to give you support if you are not experienced already.)

The SVN client will be needed to check out our workspace.

3. Checking out the current workspace

A) Create a new folder which will become the local "copy" of our workspace.
(I created in on the desktop and called it "RaR SVN", but it is your choice of course, where to create or how to name.)

B) Connect the folder to SVN-Repository.
Rightclick the new Folder ("RaR SVN" in my case) and choose "SVN Checkout".
Then enter this address:
https://subversion.assembla.com/svn/rays_space/
and click "Ok".

By following these 3 simple steps you will have created your local workspace and will be able to get the current work of the team or make your own changes to it. :goodjob:

4. Folder structure

Religion_and_Revolution:
This is the place, where we are building the current upcoming release.
Please only check in things where you are pretty sure, that they will not totally break the mod.
(Meaning, it will not start anymore.)
Of course, there will always be minor bugs.

Workspace:
Complete Project setup for modding on RaR DLL.
Pretty easy to use starter package.
 
Modifying Data / Commiting Changes

1. It is important that you always get the latest version of work before you start making your own changes.

Right click on Folder and choose "SVN Update".

2. Do your modifications.

If somebody else has made changes in the same file you want to do changes too, since you last checked out, then you should manually adjust the file and do a merge.

If there were no changes of another user, then you can simply replace the file.

3. Check in your changes to the repository (server)

Right Click and choose "SVN Commit".

4. You will be asked to write some comment / explanation of your changes.

Please do so. :)

Use commenting in this style:
User, date: reason, additional comment

Example:
ray, 16.10.2011: Included Feature "Bargaining with Natives", tested ingame

Deleting
(This is important !)

If you want to remove a file from the repository, then do not simply delete it, like you are used to from working in folders with explorer.

Use
-> Right Click on File -> Tortoise SVN -> Delete

Only this will really remove a file from the repository on the server.
 
Tips and Tricks, Advices

1. Go to the homepage of our SVN-Repository if you want to know which changes have happened recently.

http://www.assembla.com/code/religion_and_revolution/subversion/nodes

There you will find the Tab "Stream" with a list of changes by date and also showing the comments.

2. Please check in one complete feature in a single commit if possible.

Do not check in features in many pieces.
Do not check in many features at once.

It will make it a lot easier for others to understand.

3. Keep your local copy of the SVN and your mod-folder separated !

You will implement and test features in your mod-folder probably.
But do not mix this with the local copy of the SVN.
This has caused many many problems in the past.

Your local copy should really only be used for checking out changes of others and commiting your own.

4. Update your local copy regulary.

It has proven, that if you do so, mistakes (like working on outdate files) happen a lot less.
 
Advanced

1. Reverting changes in the local copy

You have accidently modified a file you did not want to ...
No problem. :)
-> Right Click on File -> Tortoise SVN -> Revert Changes

You will have the last version from the repository again.

2. Reverting changes in the repository on the server

You have accidently modified a file you did not want to and uploaded it already to the server.
No problem either. :)

Tell us (me and Robert) and we will be able to repair / revert.

3. Locking files

It is possible to lock files so that others cannot change these.

-> Right Click on File -> Tortoise SVN -> Get Lock

This could be useful in 3 cases:

A) The file / your work is very complicated and merging would be a lot of work.
B) Merging is simply not possible (binaries, graphics, ..)
C) You simply want to notify the others that you are working on that file (locking can be used for communication)

Do not forget to unlock after you are done. :)

-> Right Click on File -> Tortoise SVN -> Release Lock

4. Breaking locks

You want / need to work on a file, but it is locked.

1. The Client will tell you, who locked the file.
Try to communicate with that person.

2. If you cannot contact the person, tell me or Robert.
(We can break all locks, because we are admins.)

5. Getting Advance Informations

Please try these and see, which Informations you will get. :)

-> Right Click on File -> Tortoise SVN -> Diff
-> Right Click on File -> Tortoise SVN -> Show log
-> Right Click on File -> Tortoise SVN -> Revision Graph
-> Right Click on File -> Tortoise SVN -> Check for Modifications

6. Learn to understand the icons at the files and folders.
(Here is a list of what they mean.)
 
First Experiences

1. You can always ask me, if you have any questions. :)

2. Also, feel free to use the folder "transfer" for experimenting.

3. Do not be afraid. :)
It is not that difficult and nothing can really happen.
 
Oh! I have a "technical" question. One of these days we will add .cpp files and probably CvGameCoreDLL.dll

Do we both compile CvGameCoreDLL.dll separately, or is one of us "Chief DLL" or "Master of C++"?
How are we sure we haven't mixed up the cpp files? I mean what happens if we are both working on different cpp files?
 
Oh! I have a "technical" question. One of these days we will add .cpp files and probably CvGameCoreDLL.dll

Do we both compile CvGameCoreDLL.dll separately, or is one of us "Chief DLL" or "Master of C++"?
How are we sure we haven't mixed up the cpp files? I mean what happens if we are both working on different cpp files?

No, there is no necessity for a "Chief of DLL".

First of all we should still have some communication, so we should know when both of us are working on DLL. :)
(We should let each other know what we are currently working on.)

Otherwise it is pretty simple.

------------------------------

DLL-sources will be checked into our subversion too, of course.

However only generally working revisions are checked into "work" (development of next release).
(Nothing that will totally crash the mod or crash compilation.
Of course there will be bugs. :) )

For experiments or exchanging not working sources, we use "transfer".

------------------------------

Doing a feature:

1. Check for latest sources in SVN before you start a feature and use these as base for your own development.
Simpy do SVN Update.

2. Develop your feature and do at least basic developer tests.

3. Before commiting the feature, check if somebody else has done anything that affects the sources you want to commit.
With DLL this is always the case, because you would at least have to do a new compilation of CvGameCoreDLL.dll.
Simpy do SVN Update again to see if there were changes since you started your feature.

4. If this is the case, then you will need to merge the sources of the other into your workspace and compile it again.

5. After compilation and developer tests were successful commit the merged version.
(Merged sources and new compiled DLL.)

------------------------------

Summary:

It is important to check SVN if there was an update before every commit and very useful to do before starting a feature.
(Simpy do "SVN Update".)

The implementer committing his stuff is responsible to merge it into the existing "work"
and do at least basic developer tests to ensure mod is still working.
 
Is it possible to rename the folder you download from SVN-Repository "TAC 2.02a_inoffiziell" to "Religion and Revolution" or something else maybe?
 
Is it possible to rename the folder you download from SVN-Repository "TAC 2.02a_inoffiziell" to "Religion and Revolution" or something else maybe?

The one in "Preview" you are talking about really is only a Preview of my work after I left TAC. :)

I used "TAC 2.02a_inoffiziell" as base at that time and currently still prepare my features in there until we have TAC 2.02c as base.
It is my experimental platform.

This is not Religion and Revolution and also not the base for it.
(Thus I did not call it like that. :dunno:)

We will start to create Religion and Revolution from a clean TAC 2.02c and integrate our features step by step.
 
Getting started

4. Folder structure
There are 3 main folders in our repository.

last_release:
This folder is usually read only.

transfer:
This is an all purpose exchange folder.

work:
This is the place, where we are building the current upcoming release.

Hi Guys,
Can I get an update on the folder structure please?

Because of space limitations on my home notebook, I hadn't downloaded all the SVN files till this week (after getting much bigger new hard drive, yay!).

The SVN structure now is:
- last release folder (which is empty, presumably because we don't have a release yet)
- transfer (presumably the original transfer folder as described)
- religion and revolution (I presume this is the new name for the previous "work" folder).

So I loaded the religion and revolution folder into the mods folder and it ran. Looks good, great job guys.
So my questions:
- Is this the version I am supposed to be commenting on?
- Do I comment on anything, or on just a few things? For example there may be a few things that you know about but will address at a later date?
- Do I make my comments in the relevant thread on this forum or somewhere else?
- Does anyone have a suggestion of where you would like me to help?

[imagine a smilie rolling up his sleeves here]
 
- last release folder (which is empty, presumably because we don't have a release yet)

Yes, this folder will later contain our last release as kind of "backup".

- transfer (presumably the original transfer folder as described)

Yes, please use this to exchage everything that is not directly (yet) included into the mod.

- religion and revolution (I presume this is the new name for the previous "work" folder).

Yep, that is where our development takes place. :)

So I loaded the religion and revolution folder into the mods folder and it ran.

Just for safety:
Please keep repository copy and mod you are playing on separated ! ;)

Looks good, great job guys.

:)

So my questions:
- Is this the version I am supposed to be commenting on?
- Do I comment on anything, or on just a few things? For example there may be a few things that you know about but will address at a later date?
- Do I make my comments in the relevant thread on this forum or somewhere else?
- Does anyone have a suggestion of where you would like me to help?

About commenting:

Currently we are not yet in finetuning phase. ;)
Please report bugs / problems only for now.
We will work on balancing later on.

About helping:

Testing new features, when they are commited
Reporting bugs
Improving texts
Improving graphics
...
 
Some advice please:

New R & R mod files are being downloaded from SVN. It would be easiest if I could just sync my updated mod folder with the older version in the MyGames folder (I have software to do the 1-way sync OK).

If I do this will my existing test game still run? I would like to do this because it would be easier to test some things with a large game in progress rather than start another game from scratch.

Or should I load each updated set of mod files as a whole new mod into the MyGames folder - i.e. RAR1, RAR2, RAR3 etc.?
 
Because we are having a lot of changes a very high pace, it is very unlikely, that your savegames will still work a few revisions later. :(

Playing longer games however is currently not the focus, because we are not yet in balancing and finetuning phase.

For now we should focus on creating new features and explicitely testing these.
(Using Worlbuilder for example.)

When we enter balancing and finetuning phase, things will be different.
Then playing longer games will be important. :thumbsup:
 
Hm, something went wrong with the update / SVN Commit. The flag_decal.dds data are now in the main folder, but they should be in the folger Assets/Art/teamcolor... and there is a questionmark on this file...

Sorry for that confusion....how can I delete this data?

EDIT: I have deleted the wrong files. But I'm not able to upload these files in the correct folder at the moment. The questionmark is still there...so the flags are don't work correctly at the moment.
 
@Schmiddie:

Are you going to clean up, or should I do it ?

Whenever you want to delete, please use the SVN-Command as described in this post. :)
(Tortoise SVN -> Delete)
 
As I said...I have already deleted the files, but I'm not able to upload the files (assets/art/teamcolor) to the server. There is a question mark on the folder and I don't know why this folder isn't uploaded...
 
As I said...I have already deleted the files, but I'm not able to upload the files (assets/art/teamcolor) to the server. There is a question mark on the folder and I don't know why this folder isn't uploaded...

Ok, I will clean up. :thumbsup:
(Will take a few minutes.)
 
@Schmiddie:

I have deleted the folder "colonization flags" from the root of our project.

Please do "SVN Update" first.
Then upload the correct files into the right folder structure. :thumbsup:

Tell me, when you are done.
(I will do a test in game then.)
 
Top Bottom