Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / Managing a project with multiple people

Author
Message
Isocadia
15
Years of Service
User Offline
Joined: 24th Jul 2009
Location:
Posted: 29th May 2012 22:42
Basicly, me and a few friends had the idea of working together on a small, 2D game. The only thing we don't know yet is how to properly work together with each other on the project. We're gonna code it using XNA, and we we're wondering what subversion program would work best. We looked at VSAnywhere, which has a real time view of what the others are doing, and we looked at SVN. Which one would you recommend, and what are the drawbacks of working together on a project using VSAnywhere/SVN?

Isocadia
bitJericho
22
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 29th May 2012 23:01
If you want it hosted elsewhere, github. If you want to self-host, redmine alongside svn & tortousesvn is quite good.

You'll need to know the basics of svn in order to work together. I don't know how easy it is to get up and running on github.

Isocadia
15
Years of Service
User Offline
Joined: 24th Jul 2009
Location:
Posted: 29th May 2012 23:05 Edited at: 29th May 2012 23:06
I've had a fair share of using SVN, the only problem I often encounter is where 2 people have edited the same file, and one uploads his changes first, then the second fails to upload. It's the only thing keeping me from SVN ( since obviously, at first, we'll be editing alot of the same files ). Is there an easy way to fix this?

Now that I think of it, is it possible for someone to only upload a diff patch of his edits. Then they should clash alot less often...
Red Eye
16
Years of Service
User Offline
Joined: 15th Oct 2008
Location:
Posted: 29th May 2012 23:46 Edited at: 29th May 2012 23:51
Most SVN's allow to have restrictions when 2 people are uploading the same files. So it gets stored as a new revision or prompted back to the user that it was interrupted while uploading cuz of another uploader, so the user has to upload it again. In any case, I use RiouxSVN, and I feel very comfortable with it. Altough personally I only use it to store executables and lua files, not actual GameEngine Source Code, as they have the rights of those files, as you upload it to their server.

Never heard of VSAnywhere before. Seems interesting, I guess you have the same problem there, but compiler wise. Imagine two people are working on the same source, errors could easily emerge (naming variables/functions, refferences etc), I guess it would only compile what one user made and skip what the other user had made, but what if you want to merge the source code of those two people, you need to still fix it. So I guess there is not much of an advantage besides you can help each other out easier.

Cheers,

Diggsey
19
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 30th May 2012 01:11
Quote: "I've had a fair share of using SVN, the only problem I often encounter is where 2 people have edited the same file, and one uploads his changes first, then the second fails to upload. It's the only thing keeping me from SVN ( since obviously, at first, we'll be editing alot of the same files ). Is there an easy way to fix this?"


SVN is specifically designed to handle this. The second user just does an SVN update, fixes any conflicts that may have arisen and then does a normal commit.

[b]
Isocadia
15
Years of Service
User Offline
Joined: 24th Jul 2009
Location:
Posted: 30th May 2012 18:06
The point is that if I changed the variable pink to blue, and the a commit changes pink to red, what does SVN do? Does he try to remove pink, sees that is already is gone and adds red? Or does it completely remvoe blue and start over with red, leaving the first user with all his work to be done over?

I think I'm gonna go with SVN though, VSanywhere, though supporting real time multi user editing, seems kinda buggy and unstable...
Diggsey
19
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 30th May 2012 19:12 Edited at: 30th May 2012 19:14
Quote: "The point is that if I changed the variable pink to blue, and the a commit changes pink to red, what does SVN do? Does he try to remove pink, sees that is already is gone and adds red? Or does it completely remvoe blue and start over with red, leaving the first user with all his work to be done over?"


When you try to commit your change pink -> blue, SVN sees that there has been another commit affecting the same files and your commit will fail. You then do an SVN update at which point you will have both sets of changes on your system. Each file which is in a state of conflict will need to be resolved before you can commit. SVN will automatically resolve changes on different lines, but in this case it won't be able to automatically merge them, so for each conflicting file you will have 3 options: 1) Choose to use your version of the conflicting file (pink -> blue) 2) Choose to use the other version of the conflicting file (pink -> red) or 3) Manually merge the changes in the file. Then, once you're done you just commit your changes as usual.

[b]
Isocadia
15
Years of Service
User Offline
Joined: 24th Jul 2009
Location:
Posted: 30th May 2012 19:22
Both sets of changes? What do you mean by this. If I update the file test.xml, and it conflicts. Do I get two test.xml files, one which is mine and one which is the repo file?

I guess I'll find out when it happens

Anyway, we're currently setting up SVN, so thank you all for your help

Isocadia
Diggsey
19
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 30th May 2012 20:17
The actual files you see only contain your version of the changes, all the other data required by svn is stored in a hidden .svn directory in the root folder which you don't need to worry about. If you use tortoiseSVN it has tools to easily fix conflicts and the like, it's really very easy. Good luck

[b]
Isocadia
15
Years of Service
User Offline
Joined: 24th Jul 2009
Location:
Posted: 30th May 2012 20:25
thanks
bitJericho
22
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 30th May 2012 22:29
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 1st Jun 2012 09:41
Quote: " the only problem I often encounter is where 2 people have edited the same file, and one uploads his changes first, then the second fails to upload"


It fails? As in you get an error? I've been using SVN for almost 7 years and GIT for about 1 year, and they are both *essential* for team developing. Hell, I even have about a dozen SVN repositories for my own personal projects where I'm the only developer. It could be insanely useful to see the differences between a current file and the same file from two months ago.

It's also crucial to commit often, and if you get neck-deep in an update and bork something, you can always revert to the last stable version of the file. That's a lifesaver for those of us who forget how to get their code back to a workable state if they've spend hours fiddling here and there trying to get something to work and failing. If you need to go back, how would you do that without some form of source control?

I've not worked in a software house that didn't use source control, so get used to it if you want to do what the pros do


Senior Developer - CBS Interactive Music Group
Benjamin
22
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 1st Jun 2012 11:37
Quote: "It could be insanely useful to see the differences between a current file and the same file from two months ago. "


Seconded.

I use SVN (using a local SVN server that is automatically backed up online) for my private projects, and I find it very useful. The fact that it saves every version of each file (more specifically, the differences) means you can view the project a specific time ago, to see what you did differently. If you accidentally remove something and then decide you need it later on, you can go back and fetch it.



Support a charitable indie game project!
bitJericho
22
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 1st Jun 2012 12:31 Edited at: 1st Jun 2012 12:32
I use redmine with svn myself. Redmine is a super pain in the butt, particularly when updates come along for redmine or the server itself, but once you figure out how to maintain it, it's really nice. I create a new project on the redmine site and an svn repo is automatically made. With redmine i get a per project wiki, user account management, and an online repo browser. It's awesome! You can see my public redmine installation over at http://darkbit.devstorm.co.uk/redmine

Login to post a reply

Server time is: 2025-05-18 23:39:51
Your offset time is: 2025-05-18 23:39:51