Why using git would be awesome for nexuiz

Developer discussion of experimental fixes, changes, and improvements.

Moderators: Nexuiz Moderators, Moderators

Sat May 23, 2009 7:59 pm

  • [-z-] wrote:I'm not part of the RoR circle jerk and still enjoy git. It's never been as painful to me as SVN. You can't honestly tell me you've never fucked up SVN.


    The only thing how I mess up SVN is accidentally committing a file I did not want to commit by "svn commit", or forgetting to "svn add" a newly created file.

    A solution to this would be, when it opens the editor to show which files it'll send, allowing me to delete items from that list before committing. Because, if editing that part would change anything, I'd actually do it, and therefore notice if a file is in the list I didn't mean to commit.

    Does git provide that out of the box?

    On Windows, TortoiseSVN provides that feature (in the commit dialog, I can uncheck files to not commit them, and it also tells me which files are new so I can add them). So it apparently is all a matter of the client program, and not whether it's a DVCS or not. Too bad the commandline svn client cannot do this, it would be really neat. Maybe I'll write a script for it.
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sat May 23, 2009 8:04 pm

  • "The biggest non-technical difference between git and mercurial is the rabid culture surrounding git. mercurial users fairly happily and quietly use their tool, while I've had to send two separate door-to-door git missionaries away today alone."

    That sums it up pretty well. git = jehova's witnesses.

    SCNR (seriously: git is just another hype)
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sat May 23, 2009 8:10 pm

  • I believe git is more than just hype, the hype comes from the RoR guys that use it, this is part of THEIR culture, the ~holier than thou~ attitude.

    However, the logic and reasons behind the system make a lot of sense and personally, I've found it easier to use.

    Just a suggestion but I think you may want to try it with a smaller project like NetRadiant and form some opinions on it then. Otherwise, I guess this is just a dead subject because you'll be using it more than anyone else and thus the decision lies in your hands.

    But seriously, you should give it a shot with smaller projects.
    User avatar
    [-z-]
    Site Admin and Nexuiz Ninja
     
    Posts: 1794
    Joined: Mon Nov 13, 2006 12:20 am
    Location: Florida

Sat May 23, 2009 8:12 pm

  • divVerent wrote:None of these methods are as simple and efficient as comparing two small numbers. You don't need any tools for THAT.


    I think it's pretty obvious that this is the one property that SHA1 hashes don't have (except equality, of course). I wasn't trying to argue for/against anything; as far as I'm aware, the decision was made a while ago. I was just elaborating on your statement that "you'd have to manually check out this revision and verify that the bug is fixed in it".
    User avatar
    parasti
    Alien
     
    Posts: 110
    Joined: Sun May 11, 2008 11:32 pm
    Location: On the walls and the ceiling

Sat May 23, 2009 8:19 pm

  • From google:
    WHY VISUAL SOURCESAFE IS BETTER THAN X

    * Sourcesafe requires a serial number and registration, thus preventing unregistered use.
    * Sourcesafe is secure; even the user who created a repo is frequently unable to access it.
    * New checkout feature allows two different users to access files in two separate repositories at the same time. Usually.
    * De-corruption utilities almost entirely effective in over 40% of cases.
    * Much, much cheaper than Team Foundation Server.


    This time I would agree with div. If C167, z, parasti became active contributors to nexuiz, than yes, git would be good, because div wouldn't need to check their each minor fix committed to main trunk all the time.
    Currently, git would be useful only for mrbougo and psychcf, who are actually coding nexuiz mods/addons. If more devs joined, then switch would be made simply because of convenience (I think).
    Last edited by Alien on Sat May 23, 2009 8:24 pm, edited 1 time in total.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Sat May 23, 2009 8:20 pm

  • divVerent wrote:"The biggest non-technical difference between git and mercurial is the rabid culture surrounding git. mercurial users fairly happily and quietly use their tool, while I've had to send two separate door-to-door git missionaries away today alone."

    That sums it up pretty well. git = jehova's witnesses.

    SCNR (seriously: git is just another hype)

    That is very true. Honestly, the only reason I installed Git at all was to show myself that, despite all that hype, Git sucks and I hate it. You can see how that turned out. :P
    User avatar
    parasti
    Alien
     
    Posts: 110
    Joined: Sun May 11, 2008 11:32 pm
    Location: On the walls and the ceiling

Sun May 24, 2009 8:57 am

  • Alien wrote:This time I would agree with div. If C167, z, parasti became active contributors to nexuiz, than yes, git would be good, because div wouldn't need to check their each minor fix committed to main trunk all the time.


    LOL.

    Someone has to check it, or the code base gets as bad as it once was again, with commits by people I won't name here.

    Which is why I maintain that "stable branch" of Nexuiz.

    Currently, git would be useful only for mrbougo and psychcf, who are actually coding nexuiz mods/addons. If more devs joined, then switch would be made simply because of convenience (I think).


    Nope. MrBougo has commit access, and did commit Nexball.

    Basically, if you really want a transition to git, do it as a smooth transition.

    Do NOT switch the repo to git just because you can, and let all existing processes die until someone fixes them.

    Instead, switch all existing processes/scripts to git using git-svn FIRST, and THEN the repo can be changed to a git one.

    For example, what about submitting fixed versions of "Nexuiz SVN builds for Noobs", "makebuild.sh", "branch-manager" that use git instead of svn and work on git-svn managed repositories?
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sun May 24, 2009 9:25 am

  • [-z-] wrote:Just a suggestion but I think you may want to try it with a smaller project like NetRadiant and form some opinions on it then. Otherwise, I guess this is just a dead subject because you'll be using it more than anyone else and thus the decision lies in your hands.

    But seriously, you should give it a shot with smaller projects.


    NetRadiant certainly won't move to git, simply because one goal was making building Radiant EASIER (which e.g. led to scons stuff getting removed in favor of make which about everyone has).
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sun May 24, 2009 10:30 am

  • [-z-] wrote:You can't honestly tell me you've never fucked up SVN.


    I can. I have sometimes to deal with SVN problems other people cause (oh hai Z :> ), but I have never broken my own repo.
    quit for good
    alpha
    Alien trapper
     
    Posts: 492
    Joined: Tue Jun 17, 2008 7:18 pm

Sun May 24, 2009 10:30 am

  • divVerent wrote:
    Alien wrote:This time I would agree with div. If C167, z, parasti became active contributors to nexuiz, than yes, git would be good, because div wouldn't need to check their each minor fix committed to main trunk all the time.


    LOL.

    Someone has to check it, or the code base gets as bad as it once was again, with commits by people I won't name here.

    Which is why I maintain that "stable branch" of Nexuiz.

    No, I mean different thing. These could exist as separate until you deem them worthy to be included.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Sun May 24, 2009 10:42 am

  • This can be done just as well with git-svn.

    All the arguments pro git you bring also apply if git-svn is used on a svn master repository.

    And as long as this is the case, I see no single reason to switch SCM.
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sun May 24, 2009 11:09 am

  • divVerent wrote:LOL.

    Someone has to check it, or the code base gets as bad as it once was again, with commits by people I won't name here.

    Which is why I maintain that "stable branch" of Nexuiz.
    Well, then you want to practice what Linus does with the linux kernel? devs send him pull requests or patches per mail and he integrates them if he thinks they are okay. This is one of the development ways git was made for...
    C167
    Member
     
    Posts: 29
    Joined: Wed Oct 31, 2007 5:24 pm

Sun May 24, 2009 11:15 am

  • But I am already doing this with svn.
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sun May 24, 2009 11:47 am

  • i know :-)
    As i've never done that, i don't know if it may be easier with git, at least, the individual commits including their commit message does not get lost. if someone merges the revs from a different repo, the commits stay untuched, and if there are merge conflicts, the commit that commited the merge includes the changes, but it is an additional commit, so stuff does not get merged with the last commit from the other repo. and, git has ways to import a complete mbox full of patches.

    cause currently, it is not clear who made the code (unless you say it in the commit message), and blame does not know either, cause such commits are commited by you.

    Additionally, one gets single patches for each commit when issuing git format-patch <rev> which is also quite handy, as they contain everything needed including the hash, so no one can change something in it without modifying the hash. such a commit can be seen here.
    Last edited by C167 on Sun May 24, 2009 11:55 am, edited 1 time in total.
    C167
    Member
     
    Posts: 29
    Joined: Wed Oct 31, 2007 5:24 pm

Sun May 24, 2009 11:52 am

  • No one wants git, case closed.
    quit for good
    alpha
    Alien trapper
     
    Posts: 492
    Joined: Tue Jun 17, 2008 7:18 pm

Sun May 24, 2009 12:09 pm

Sun May 24, 2009 10:53 pm

  • Woah, everyone went crazy while I was gone.

    Let me just re-iterate this point... I notice a lot that people are doing more and more 3rd party mods (myself included), and I'm just suggesting that git would make merging said changes a lot easier, and would encourage people to get their work into the main repo.

    Also, we don't need to choose between one or the other! Git-svn allows us to keep an SVN repo and a git repo in sync with each other, so those who still want SVN can stick with SVN, while everyone willing to try something new can use Git.
    User avatar
    Psychcf
    Forum addon
     
    Posts: 1554
    Joined: Sun Dec 03, 2006 11:38 pm
    Location: NY, USA

Mon May 25, 2009 2:20 am

  • Psychcf wrote:Woah, everyone went crazy while I was gone.

    Let me just re-iterate this point... I notice a lot that people are doing more and more 3rd party mods (myself included), and I'm just suggesting that git would make merging said changes a lot easier, and would encourage people to get their work into the main repo.

    Also, we don't need to choose between one or the other! Git-svn allows us to keep an SVN repo and a git repo in sync with each other, so those who still want SVN can stick with SVN, while everyone willing to try something new can use Git.


    I like the mutator you made. Please keep on it! It's really good and is almost done (and it WORKS!) (I tried it out.)
    tundramagi
    Forum addon
     
    Posts: 974
    Joined: Sun Jan 04, 2009 4:53 pm

Mon May 25, 2009 10:25 am

  • Psychcf wrote:Woah, everyone went crazy while I was gone.

    Let me just re-iterate this point... I notice a lot that people are doing more and more 3rd party mods (myself included), and I'm just suggesting that git would make merging said changes a lot easier, and would encourage people to get their work into the main repo.

    Also, we don't need to choose between one or the other! Git-svn allows us to keep an SVN repo and a git repo in sync with each other, so those who still want SVN can stick with SVN, while everyone willing to try something new can use Git.


    But you already can use git-svn! So what's your problem?
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Mon May 25, 2009 11:22 am

  • It seems people don't really understand how git-svn works. It can't abstract an SVN repo so it looks like just another Git repo, and it definitely can't be used to access a Git repo as an SVN repo. git-svn is basically a very advanced SVN client with offline history, interactive rebase, hunk staging, bisection, etc, but with its history rewriting it makes interaction with other Git (and git-svn) repos very frustrating, unless you know a lot about Git and how git-svn works internally.
    User avatar
    parasti
    Alien
     
    Posts: 110
    Joined: Sun May 11, 2008 11:32 pm
    Location: On the walls and the ceiling

Mon May 25, 2009 11:40 am

  • So how would it help to use git-svn to mirror the svn repository, like you suggested?
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Mon May 25, 2009 2:21 pm

  • divVerent wrote:So how would it help to use git-svn to mirror the svn repository, like you suggested?

    The only use for a git-svn mirror I can think of is to reduce the time it takes to set up your own git-svn repo. A "git clone" takes a fraction of the time it would take to fetch all the revisions directly from SVN (a checkout of trunk alone takes as long as cloning the mirror with entire history of all branches) and of course eliminates any load on the SVN server itself.

    But I wasn't even suggesting anything, because I already found a mirror (set up by Psychf on Github) and used it to set up my own repo. I bumped the thread because I knew Icculus has Git support and a yes or no hadn't been given yet.
    User avatar
    parasti
    Alien
     
    Posts: 110
    Joined: Sun May 11, 2008 11:32 pm
    Location: On the walls and the ceiling

Mon May 25, 2009 4:05 pm

  • So in other words, you people already have your toy. can you post the access data to the mirror on github so everyone can be happy and use it, instead of demanding we switch to another SCM?
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Mon May 25, 2009 4:58 pm

  • commit access to the github mirror does not help as far as i know, cause you still need svn commit access
    C167
    Member
     
    Posts: 29
    Joined: Wed Oct 31, 2007 5:24 pm

Mon May 25, 2009 5:53 pm

  • AFAIK, it is
    Code: Select all
    git clone git://github.com/psychcf/nexuiz-classbased.git


    But this also includes the class mutator (not bad, just means it's not the exact same as svn)
    some-guy
    Member
     
    Posts: 25
    Joined: Tue May 12, 2009 1:28 am

Mon May 25, 2009 5:54 pm

Mon May 25, 2009 6:00 pm

  • why isn't the class thingy made as a branch? Isn't that what git's supposed to do so well?
    User avatar
    Blµb
    Alien trapper
     
    Posts: 277
    Joined: Thu Mar 29, 2007 1:49 pm

Mon May 25, 2009 6:05 pm

  • Blµb wrote:why isn't the class thingy made as a branch? Isn't that what git's supposed to do so well?

    Well, that repo is supposed to be a branch of nexuiz svn, so...
    some-guy
    Member
     
    Posts: 25
    Joined: Tue May 12, 2009 1:28 am

Mon May 25, 2009 7:03 pm

  • C167 wrote:commit access to the github mirror does not help as far as i know, cause you still need svn commit access


    So in the end, you just want commit access for everyone?

    The decision on who gets commit access and who doesn't does not depend on the SCM being used. The situation would be the VERY SAME with git.
    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.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Mon May 25, 2009 7:59 pm

  • divVerent wrote:So in other words, you people already have your toy. can you post the access data to the mirror on github so everyone can be happy and use it, instead of demanding we switch to another SCM?


    The repo URL is git://github.com/psychcf/nexuiz-classbased.git. The master branch has Psychf's changes and is out of sync with SVN, but the repo has a bunch of remote-tracking branches that appear to be completely in sync with all SVN branches (probably due to some Github feature). Plain "git clone" won't fetch them, though, so you'd need to do something like
    Code: Select all
    mkdir repo
    cd repo
    git init
    git svn init --prefix=svn/ -s svn://svn.icculus.org/nexuiz
    git fetch git://github.com/psychcf/nexuiz-classbased.git refs/remotes/*:refs/remotes/svn/*
    git checkout -b master svn/trunk
    git svn rebase


    I did it differently (and in a more complicated way, in retrospect), so I haven't tested all this.

    BTW, nobody cares about commit access. Git is a DVCS, which means everyone has their own repo, so there's no political nonsense about who gets or doesn't get commit access. Patch reviews would be great, though.
    User avatar
    parasti
    Alien
     
    Posts: 110
    Joined: Sun May 11, 2008 11:32 pm
    Location: On the walls and the ceiling

PreviousNext


Return to Nexuiz - Development




Information
  • Who is online
  • Users browsing this forum: No registered users and 1 guest