Why using git would be awesome for nexuiz

Developer discussion of experimental fixes, changes, and improvements.

Moderators: Nexuiz Moderators, Moderators

Postby alpha » Mon May 18, 2009 8:14 am

[-z-] wrote:So ignorant. SVN is fundamentally flawed and a VCS like git, which is distributed, could be very beneficial to an open-source project. No need to branch because technically every user has their own fork, and resolving the differences when pushing to the master becomes easier in these smaller chunks. This means less wasted time.


I don't see how nexuiz can benefit from lots of people having their own version of core code, with their own set of patches, because THAT'S WHAT GIT IS ALL ABOUT.

You see [-z-], when you are working on a large software project, you dont WANT to have your own version of code. You want *EXACTLY* the same as everyone else, and you want it to stay as synced as possible.

Git is a soap bubble.
quit for good
alpha
Alien trapper
 
Posts: 492
Joined: Tue Jun 17, 2008 7:18 pm

Postby divVerent » Mon May 18, 2009 11:04 am

You do know that changing the SCM entirely changes the process of e.g. building releases, which will have to be rewritten. And you'll find no volunteers to do that, I bet.
1. Open Notepad
2. Paste: ÿþMSMSMS
3. Save
4. Open the file in Notepad again

You can vary the number of "MS", so you can clearly see it's MS which is causing it.
divVerent
Site admin and keyboard killer
 
Posts: 3809
Joined: Thu Mar 02, 2006 4:46 pm
Location: BRLOGENSHFEGLE

Postby Psychcf » Mon May 18, 2009 7:11 pm

divVerent wrote:You do know that changing the SCM entirely changes the process of e.g. building releases, which will have to be rewritten. And you'll find no volunteers to do that, I bet.


I don't see how that changes anything; all you would do is change any SVN commands into git commands, which isn't very hard:

http://git.or.cz/course/svn.html

The only thing is that git doesn't really have an info command, but you could use "git show <file>" to get the revision hash of the last change.

alpha wrote:
[-z-] wrote:So ignorant. SVN is fundamentally flawed and a VCS like git, which is distributed, could be very beneficial to an open-source project. No need to branch because technically every user has their own fork, and resolving the differences when pushing to the master becomes easier in these smaller chunks. This means less wasted time.


I don't see how nexuiz can benefit from lots of people having their own version of core code, with their own set of patches, because THAT'S WHAT GIT IS ALL ABOUT.

You see [-z-], when you are working on a large software project, you dont WANT to have your own version of code. You want *EXACTLY* the same as everyone else, and you want it to stay as synced as possible.

Git is a soap bubble.


Well, with SVN, if you want to contribute back a portion of code (for example, the keyhunt gameplay mode), you need to run svn diff, and it spits out a patch. With Git, the commit history would be preserved, and you would be able to see all the changes progressively. Since you can look back at the whole commit history for a contributed work, it makes it easier to maintain later on. Because of this, you can also make these changes as if you started with a different revision, so it's even easier to merge things into the repo (that's called rebasing).

tl;dr: having your own version of the code makes it easier to merge code and easier to maintain changes by people who don't have commit access to the repository.
Psychcf
Forum addon
 
Posts: 1554
Joined: Sun Dec 03, 2006 11:38 pm
Location: NY, USA

Postby divVerent » Wed May 20, 2009 5:22 am

So? You can do all this if the master repository is a svn. Just use git-svn and shut the hell up.

There is a reason why svn is a de-facto standard, and git is a weird obscure tool almost nobody uses. It starts with the commands - it has command names that simply make no sense.

And I have no incentive to learn weird push/scream/fsck stuff as the commit/update/annotate/diff/merge stuff works fine.

If you give me a git frontend that accepts svn/cvs command, it'd be an entirely different story.
1. Open Notepad
2. Paste: ÿþMSMSMS
3. Save
4. Open the file in Notepad again

You can vary the number of "MS", so you can clearly see it's MS which is causing it.
divVerent
Site admin and keyboard killer
 
Posts: 3809
Joined: Thu Mar 02, 2006 4:46 pm
Location: BRLOGENSHFEGLE

Postby tundramagi » Wed May 20, 2009 5:47 am

Ah the wonderful "better that others move an entire mountain, than I rebuild my own house (or bother to install a door, in the case of git-svn gateway)" opinion.

The fact of the matter is that everyone knows cvs and by extention svn.
Few people understand git, except for linus trovalds and those that have to deal with development for the linux root-vunerability-every-month kernel.

Rather than be tasked with moving the mountain, every non-git familiar will just walk away and not even think of starting to get earnestly involved in the development process of nexuiz: too alien.
tundramagi
Forum addon
 
Posts: 974
Joined: Sun Jan 04, 2009 4:53 pm

Postby C167 » Wed May 20, 2009 6:31 am

Well, i already use git to keep track of changes in both nexuiz and darkplaces, and with a few simple commands, i can adjust things to my needs. for example, i have local changes to the darkplaces buildsystem and to some files (casts). I usually run
Code: Select all
git stash; git svn rebase; git stash apply; make cl-nexuiz
git stash backs up my changes, and git stash apply re-applies them to my working tree. So i wrote a simple alias so that i just fire
Code: Select all
git update
which does that.

@div: I never had to use stuff like git fsck, not on any repo. sure. git has some more commands, but hey, its a more powerful system.

also, the diff and merge stuff is better and more clear (to me) and using tools like qgit or gitk makes live easier.
extremly old pics of qgit: here and here (things have improved since then)

Hey, just found out that my .git folder is at 1.5GB space, less than the checkout (trunk only).

By the way, using git, no one has to fiddle around with those .svn dirs everywhere, there's just one .git in the checkout root, and thats where the single .gitignore file is.
C167
Member
 
Posts: 29
Joined: Wed Oct 31, 2007 5:24 pm

Postby Alien » Wed May 20, 2009 9:59 am

svn has export to get rid of .svn so it's not a big deal, so it's a matter of convenience only
Alien
Forum addon
 
Posts: 1212
Joined: Tue Apr 22, 2008 7:12 am

Postby alpha » Wed May 20, 2009 11:44 am

When people say "just use git's svn capabilities" it just makes me giggle :D
quit for good
alpha
Alien trapper
 
Posts: 492
Joined: Tue Jun 17, 2008 7:18 pm

Postby parasti » Wed May 20, 2009 1:28 pm

divVerent wrote:If you give me a git frontend that accepts svn/cvs command, it'd be an entirely different story.


SVN emulation wouldn't make any sense, because you don't switch VCS just to say you did. If you want SVN, use SVN.
parasti
Alien
 
Posts: 110
Joined: Sun May 11, 2008 11:32 pm
Location: On the walls and the ceiling

Postby divVerent » Wed May 20, 2009 7:10 pm

And I want svn.

And I do not want to switch the system because _I_ see no point in doing so. Only you guys always come with stupid demands. I'd only change for your demands if it does not cost MY time. And that includes that I refuse to relearn a whole command set because of stupid demands from some guys on the forum who never contributed anything and never will.

What I want is simple semantics of well-known command names.

And I am not talking about a full emulation. There's like six seven commands that actually are used frequently:

update
commit
diff
annotate
revert
status
log

Anything else can have obscure names, as they're so seldomly used that one would look them up before use anyway (apart from checkout, but checkout is only used once per repository and thus does not matter).

If git is worth ANYTHING, there are direct equivalents to these seven commands.

All I ask for is if git could get these as alias (the remaining syntax can sure be SCM dependent, e.g. revisions are specified differently in cvs and svn) to the existing commands doing that, to make git less obscure. This is simply about user friendliness.

If the git guys refuse to add such aliases, one can follow that they don't care about their users. And nobody wants to use SUCH a system then.
1. Open Notepad
2. Paste: ÿþMSMSMS
3. Save
4. Open the file in Notepad again

You can vary the number of "MS", so you can clearly see it's MS which is causing it.
divVerent
Site admin and keyboard killer
 
Posts: 3809
Joined: Thu Mar 02, 2006 4:46 pm
Location: BRLOGENSHFEGLE

PreviousNext

Return to Nexuiz - Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron