Homesource Forums

Homeworld Source Editing Talk
It is currently Thu Sep 21, 2017 2:34 pm

All times are UTC - 5 hours




Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Sat Apr 05, 2008 8:45 am 
Offline
coder
User avatar

Joined: Tue Dec 14, 2004 3:24 pm
Posts: 324
Location: UK (UTC+0)
I'm toying with the idea of moving the Homeworld SDL repository to use git instead of Subversion.

git is a distributed source code management system and has a number of benefits. It's fast; robust (the Linux kernel is maintained with it) and makes development more flexible since developers can commit to their own repository as much as they like and only externally publish complete changes. Having your own copy of the repository means you are no longer dependent on having a network connection available and have a complete copy of the history to hand (up to your last "pull" anyway).

It's possible that some of you are already wrapping the current Subversion repository with your own git interface anyway but what you won't have is the project history. With git, if I were to get hit by a bus :( , you wouldn't lose access to all of the project's history and could make alternative arrangements for hosting the "master" repository based on one of the many git clones available.

I'm curious to know what people think about this idea and what personal experiences you may have had with git.

Reference:

Linus Torvalds talks about source code management systems and why he wrote git

Randal Schwartz on the more technical aspects of using git

git svn comparison

_________________
MacHomeworld | HomeworldSDL.org


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 7:40 pm 
Offline

Joined: Thu Aug 09, 2007 9:46 am
Posts: 7
why not go to source forge?


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 7:40 pm 
Offline
coder
User avatar

Joined: Tue Dec 14, 2004 3:24 pm
Posts: 324
Location: UK (UTC+0)
lmop wrote:
It's possible that some of you are already wrapping the current Subversion repository with your own git interface anyway but what you won't have is the project history.

Actually you will since git-svn iterates over all the entire revision range sucking all the history out. Cheeky but helpful ;)

_________________
MacHomeworld | HomeworldSDL.org


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 06, 2008 5:44 am 
Offline
coder
User avatar

Joined: Tue Dec 14, 2004 3:24 pm
Posts: 324
Location: UK (UTC+0)
It's not the hosting (the machine where the source code lives) I'm talking about; it's the software used to track the changes. SourceForge only supports CVS and Subversion (both are centralised repository systems) which fits well with SourceForge's community goals.

git is better designed for self-contained individual development or groups of people working on a specific parts of a large code base. These work streams then get merged together by other developers with a wider remit who publish an integrated version which the community designates as the primary version. I say community-designated because all developers are equal and any version you publish is just as valid as Alice's or Bob's. This sounds like a nightmare of potential forking and confusion but there's a powerful force acting against it - people are lazy. They will get their source code from those that meet their needs best: frequent updates; few bugs; few regressions (previously good code which is now broken); acceptance of their own submissions. Integrators doing a good job will become the de-facto distribution standard.

Subversion uses write permissions to determine who can change the one, true version of the source code. This can create a "them and us" elitism. git, on the other hand, doesn't have write permissions and instead relies on trust - which is what those permissions are actually trying to define. If you trust Alice to make worthwhile changes (and only merges in changes from others that are also good) then you'll set up your repository to merge in her changes. You don't need Bob (as maintainer of a central repository) to make that decision for you. Bob might make the same decision as you but you don't have to wait for him. Indeed, if you trust Alice and Bob trusts you, Bob doesn't need to know anything about Alice since he'll get her changes through you.

Anyway, hard-on for open source software, The Community and democratisation of source code aside, I think I'm coming to the conclusion that git is the thing to use for large projects and small projects where communication is subject to delays. Smaller projects with tight communication (like those for companies where there is a single development team in an office) can work perfectly well with Subversion especially if developers wrap Subversion with git when branching.

Unfortunately, I can't make my mind up where Homeworld SDL fits in scale. The number of people and likelihood of conflicts is probably small enough to remain at the "maintain in Subversion and people can use git if they want" level but it wouldn't take much more to make me believe git would be preferable instead. That's why I'm soliciting for input! :)

_________________
MacHomeworld | HomeworldSDL.org


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 16, 2008 1:55 pm 
Offline

Joined: Tue Oct 10, 2006 2:04 pm
Posts: 73
Location: North germany
I switched to git a while back and I have to say I skipped all work on projects not using git. First of git is the fastes SCM software I know (handling branches is just great), secondly you can get a free repro and using it you really see that it was programmed by people who actually use it everyday.
Using cvs the only bearable thing was wincvs - but since there is no decend ui available for linux I never liked cvs or subversion there.
So IMO go for it :)

_________________
.: The hardest punishment are the innocent eyes of a child searching for truth :.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 16, 2008 4:32 pm 
Offline
coder

Joined: Mon Jan 29, 2007 2:45 pm
Posts: 61
CVS is rather bad, but SVN is actually a decent centralized system. There is also git-svn, which is quite usable.


Top
 Profile  
 
PostPosted: Wed Jun 03, 2009 2:13 am 
Offline
coder
User avatar

Joined: Tue Dec 14, 2004 3:24 pm
Posts: 324
Location: UK (UTC+0)
For those who are interested, LCID Fire has a public git repository for his developmental changes:

http://github.com/LCID-Fire/homeworld/tree/master

and uses the `git svn` command to commit to the main Subversion repository when done. Feel free to fork and play with the code and try the analysis tools at github. If people are generally in favour then we could deprecate the use of the Subversion repository.

For the record, I never got any reply from anyone from Relic to my queries as to whether they would be happy with a public repository like like this. You may recall 1.1(b) of the license:

Code:
1.1 License Grant. Provided that the LICENSEE complies with the terms set
forth herein, RELIC hereby grants LICENSEE a limited purpose, nonexclusive,
royalty-free, terminable, worldwide, non-transferable license to:

  (a) use, reproduce and modify the SOFTWARE PRODUCT and the MODIFIED SOFTWARE
(as defined in section 2.1) solely for non-commercial purposes; and

  (b) distribute the SOFTWARE PRODUCT and the MODIFIED SOFTWARE, solely for
non-commercial purposes, and only to registered members of RDN-RELIC
Developer's Network who have agreed to abide by the terms of this Agreement.

Well a public repository (like git) would technically break that clause as you can't dictate who has access to the code (which is why the current Subversion repository has an access control list). However, the cessation of support for the Relic Developer Network would also make that clause impossible to comply with for newly interested parties as you can no longer register with RDN. I understand the history of the license is such that it is more draconian than originally intended and would hope that the general view taken by Relic/Sierra is one of "play with our code; but don't steal our hard work and try to make money off it" in which case we should be good. But then again, I'm not a lawyer; the license says what it says and I have no written confirmation from Relic clarifying the matter...

_________________
MacHomeworld | HomeworldSDL.org


Top
 Profile  
 
PostPosted: Wed Jun 03, 2009 3:06 am 
Offline

Joined: Tue Oct 10, 2006 2:04 pm
Posts: 73
Location: North germany
lmop wrote:
Well a public repository (like git) would technically break that clause as you can't dictate who has access to the code (which is why the current Subversion repository has an access control list).

IMO there is not much change to the current situation. One can checkout the svn code anonymously - and for making changes you need to have explicit write access on both - which I gave to you yesterday ;)

_________________
.: The hardest punishment are the innocent eyes of a child searching for truth :.


Top
 Profile  
 
PostPosted: Wed Jun 03, 2009 3:59 am 
Offline
coder
User avatar

Joined: Tue Dec 14, 2004 3:24 pm
Posts: 324
Location: UK (UTC+0)
LCID Fire wrote:
One can checkout the svn code anonymously

No you can't and if you can, that's a bug.

LCID Fire wrote:
[as for] making changes you need to have explicit write access on both - which I gave to you yesterday ;)

I'm not sure I follow your meaning here. Are you talking about git (in which case I'm puzzled because that doesn't follow the traditional push/pull model) or svn (in which case did you create a duplicate repository?).

_________________
MacHomeworld | HomeworldSDL.org


Top
 Profile  
 
PostPosted: Wed Jun 03, 2009 4:21 am 
Offline

Joined: Tue Oct 10, 2006 2:04 pm
Posts: 73
Location: North germany
lmop wrote:
LCID Fire wrote:
making changes you need to have explicit write access on both - which I gave to you yesterday ;)

I'm not sure I follow your meaning here. Are you talking about git (in which case I'm puzzled because that doesn't follow the traditional push/pull model) or svn (in which case did you create a duplicate repository?).

I'm talking about the github repo. You cannot write to that unless you have write permission. The same with svn - you can copy the source to an alternate svn server - but unless you have write permission you can't submit to the originating svn.

_________________
.: The hardest punishment are the innocent eyes of a child searching for truth :.


Top
 Profile  
 
PostPosted: Wed Jun 03, 2009 10:34 am 
Offline
coder
User avatar

Joined: Tue Dec 14, 2004 3:24 pm
Posts: 324
Location: UK (UTC+0)
LCID Fire wrote:
The same with svn - you can copy the source to an alternate svn server - but unless you have write permission you can't submit to the originating svn.

FYI, the Homeworld SDL Subversion repository is also read-access limited - anonymous public access is not allowed. Of course, I'd prefer that wasn't the case but that's what I did (actually I think the original repository was the same) to try and comply with the license whilst still having something useful.

_________________
MacHomeworld | HomeworldSDL.org


Top
 Profile  
 
PostPosted: Thu Jun 18, 2009 11:14 pm 
Offline
coder

Joined: Wed Oct 01, 2008 2:55 pm
Posts: 103
Location: Michigan
would this break xcode's built in svn interface? as xcode 3.0 is a huge improvement over 2.5 and svn is REALLY nice.


Top
 Profile  
 
PostPosted: Wed Aug 01, 2012 1:37 pm 
Offline

Joined: Wed Jun 13, 2012 1:05 pm
Posts: 5
I have a git svn clone on github: https://github.com/timdetering/HomeworldSDL


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group