1

I have a game project that I'm working on using the Unity engine. It's going to make use of a tool that I'm developing separately to sell on the Unity Asset Store. I expect that I'll be updating the tool both based on user feedback and throughout development of the game itself. I'm looking for the best way to organize these projects with my version control setup to let me easily merge changes across the two projects.

I'm storing these project in an SVN repository (that I use TortoiseSVN to manage) and I'm not familiar enough with the more complex features to know the best way to organize the projects to allow me to easily update the tool from either place. I'm not sure if Branching or Checking it out to multiple locations is the right decision, or what other alternatives there may be.

I'm currently thinking of setting something up where the tool is stored in the repo by itself, just the general code and Unity assets. Then, setting up a small project that has additional assets for the Asset Store package (Imported into a different project in the repo), into which I Check Out the original tool's files. Lastly, doing the same for the game itself, Checking Out the tool into its hierarchy. I think this will let me make changes in either project, Commit any changes, then Update the other project to have them there as well.

Is this a good way to do this? Or a bad way? Is there a better way?

chaosTechnician
  • 1,640
  • 4
  • 18
  • 31
  • I picked what I knew; I've used SVN before on many previous projects and jobs in the past. This particular repo is used by a friend and I while work on projects together, and SVN has been working for us so far. – chaosTechnician Oct 31 '13 at 16:20
  • This Q. seems likely to be closed as it's very opinion based. For my 2-cents: It sounds like your dev. group is small and you have an idea how to set up the repo. Give it a go and worst case you reevaluate your approach if things don't gel right. – Jerdak Oct 31 '13 at 17:08

1 Answers1

0

I think what you may be looking for is to include your tool project as an SVN External to your friends' SVN repository. What this means is that your friends' repository will be able to check out specific versions of your tool from your repository and utilize it. You can continue to make changes in your own repository without disrupting him because he will need to specifically check out the newer commits. He will get to choose whether to stay up to date or not.

He can of course also check out specific branches as well. So you can isolate commits for your tool between your game project and your unity asset store using branches and having your friend only check out the GameProject branch.

I won't go into too much detail on the how as it is very well documented. Check out this question for more.

Community
  • 1
  • 1
S.Richmond
  • 11,412
  • 6
  • 39
  • 57