Jump to content

Convert to GIT


Jonne

Recommended Posts


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  149
  • Reputation:   33
  • Joined:  12/24/11
  • Last Seen:  

So, another suggestion I would like to make. Converting from SVN to GIT. GIT has more functionality and has stronger compression methods. I heard when Mozilla moved FireFox from SVN to GIT they saved 80% of memory. Also it seems to be faster, it's easier to work in teams and the branching makes it possible to work on something while still getting updates and also creating hotfixxes.

Opinions?

P.S.: There are tools to convert SVN to GIT. I think it's called GIT-SVN under Linux.

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  112
  • Reputation:   89
  • Joined:  11/12/11
  • Last Seen:  

It's harder than it looks because of the large amount of people that use svn for their servers, how many that wont convert and come here posting about it, and how many need help converting.

If this were decided before rA went live on the other hand, I could see this being a lot more debated.

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  27
  • Reputation:   5
  • Joined:  11/19/11
  • Last Seen:  

I aprove to change svn to git. I think everyone knows the benefics of changing the systems.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  148
  • Reputation:   46
  • Joined:  11/02/11
  • Last Seen:  

Keep a git mirror just as eA on github. Brian maintains it xD

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  61
  • Reputation:   153
  • Joined:  11/10/11
  • Last Seen:  

Just because Linus Torvalds is involved with GIT or because of the hype?

So, another suggestion I would like to make. Converting from SVN to GIT. GIT has more functionality and has stronger compression methods. I heard when Mozilla moved FireFox from SVN to GIT they saved 80% of memory. Also it seems to be faster, it's easier to work in teams and the branching makes it possible to work on something while still getting updates and also creating hotfixxes.

I might not be a GIT-Guru, so could you clarify some of your arguments? What functionalities and compression methods has GIT? How would a project, such as rAthena, benefit of using GIT instead of Subversion? Can you give a link where it is written down, that Mozilla really saved 80% of memory? Is this related to the compression methods (just out of curiosity)? What exactly seems to be faster? I thought Subversion is popular for their definition of "branching", where does GIT differ from Subversion in this case? Why is it easier to work in teams? How does the merging work like? What do you mean with "still getting updates and also creating hotfixxes"?

I aprove to change svn to git. I think everyone knows the benefics of changing the systems.

Seems like I'm quite a noob, so could you explain this benefits in details from your personal experience with GIT?

  • Upvote 5
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  27
  • Reputation:   5
  • Joined:  11/19/11
  • Last Seen:  

Just because Linus Torvalds is involved with GIT or because of the hype?

So, another suggestion I would like to make. Converting from SVN to GIT. GIT has more functionality and has stronger compression methods. I heard when Mozilla moved FireFox from SVN to GIT they saved 80% of memory. Also it seems to be faster, it's easier to work in teams and the branching makes it possible to work on something while still getting updates and also creating hotfixxes.

I might not be a GIT-Guru, so could you clarify some of your arguments? What functionalities and compression methods has GIT? How would a project, such as rAthena, benefit of using GIT instead of Subversion? Can you give a link where it is written down, that Mozilla really saved 80% of memory? Is this related to the compression methods (just out of curiosity)? What exactly seems to be faster? I thought Subversion is popular for their definition of "branching", where does GIT differ from Subversion in this case? Why is it easier to work in teams? How does the merging work like? What do you mean with "still getting updates and also creating hotfixxes"?

I aprove to change svn to git. I think everyone knows the benefics of changing the systems.

Seems like I'm quite a noob, so could you explain this benefits in details from your personal experience with GIT?

I personally just used GIT like a simple svn repository, without using git advanced features. But the concept of fork (cutting the tie with original project), and subbimit change to original project is something better than svn.

You can make the changes, and "commit" it to project, and anyone involved with project (developers) can approve or reject it... better than uploading or sending a diff.

Another thing that i'm studying at moment is the possibility of having YOURS repo (saving your changes), but also syncronized with original repo (rAthena). Its good for me, so i can have my private modifications saved on a repositorie, and still receiving updates from original repo. I know thats someone will hate this because of "private" of a public thing, but...

Right now i have the rAthena svn inside of my private git repositorie.

Also, tools involved with git sounds better for me.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  149
  • Reputation:   33
  • Joined:  12/24/11
  • Last Seen:  

Just because Linus Torvalds is involved with GIT or because of the hype?

So, another suggestion I would like to make. Converting from SVN to GIT. GIT has more functionality and has stronger compression methods. I heard when Mozilla moved FireFox from SVN to GIT they saved 80% of memory. Also it seems to be faster, it's easier to work in teams and the branching makes it possible to work on something while still getting updates and also creating hotfixxes.

I might not be a GIT-Guru, so could you clarify some of your arguments? What functionalities and compression methods has GIT? How would a project, such as rAthena, benefit of using GIT instead of Subversion? Can you give a link where it is written down, that Mozilla really saved 80% of memory? Is this related to the compression methods (just out of curiosity)? What exactly seems to be faster? I thought Subversion is popular for their definition of "branching", where does GIT differ from Subversion in this case? Why is it easier to work in teams? How does the merging work like? What do you mean with "still getting updates and also creating hotfixxes"?

I aprove to change svn to git. I think everyone knows the benefics of changing the systems.

Seems like I'm quite a noob, so could you explain this benefits in details from your personal experience with GIT?

As I would, concerning the "compression methods", just quote this anyways, here is a link. A small sum up: Both, SVN and GIT, use the same compression algorithm, but SVN keeps some files uncompressed whereas GIT doesn't. The Post also explains how it keeps up its speed anyways (even speeds up).

It is easier to work in teams because of the forking that SkzBR mentioned. You create Sub-Branches without creating a whole new folder with all files (save disk space) and can work in it while the Main-Branch still keeps getting updated. You can then merge your changes to the Main-Branch. The Main-Branch could be a "Stable" release whereas the other one is a developing version. Every developer can have "unlimited" amounts of branches etc. Also there is the possibility of the team to share Diff's directly instead of commiting and fetching from the Main-Server but rather Commit to a teammember into his Branch. GIT proves to have taken SVN as draft but added lots of functionality.

Edited by Jonne
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  47
  • Reputation:   8
  • Joined:  12/06/11
  • Last Seen:  

I approve the change.

The servers shouldn't be affected. The staff can still mantain a read-only SVN mirror of the Git repository.

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

The decision on choice of Control Version System should not be affected by how it could impact end-user experience, because CVS is a developers' thing. In my opinion, end-users should not even bother about repositories; rAthena should make releases on regular basis for all folks that won't ever look into source code. For everybody else, who are proficient enough to maintain own SVN repos or make source code modifications, switching to another CVS should not be too steep learning curve anyway.

Having that in mind, from what I've read about Git (never used it though) it's far superior when it comes to performing tasks that most developers do. Take a quick read here: http://thinkvitamin....version-to-git/ and you'll know what I mean.

rAthena's development cycle needs improvements. That's a fact. Nothing has changed since we forked from eAthena, except larger and more active development team. There is still no stable branch. I suppose with Git it could be much easier than with Subversion. Git has been created with rapid branching and merging in mind. The way Subversion handles it often causes so many problems, and nobody's willing to do it (see how somehow everybody in rAthena is afraid(?) of creating additional branches). So switching to Git could make necessary workflow improvements less painful. Sure it would require ppl involved to learn Git, but if we had learned SVN in the past, we wouldn't we learn Git as well?

  • Upvote 4
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  61
  • Reputation:   153
  • Joined:  11/10/11
  • Last Seen:  

But the concept of fork (cutting the tie with original project), and subbimit change to original project is something better than svn.

You mean the decentralized approach used by GIT, where each developer has his own full copy of the project? I'm note quite sure if this would really improve the workflow of such a small project as rAthena..

You can make the changes, and "commit" it to project, and anyone involved with project (developers) can approve or reject it... better than uploading or sending a diff.

Doesn't the first part sound exactly like subversion? In addition, it has the diff option, but you're not forced to use it. Or do you mean that anyone, even without access to the CVS, can commit changes and the rAthena developers have to decide whetever a commit will be accepted or not?

Another thing that i'm studying at moment is the possibility of having YOURS repo (saving your changes), but also syncronized with original repo (rAthena). Its good for me, so i can have my private modifications saved on a repositorie, and still receiving updates from original repo. I know thats someone will hate this because of "private" of a public thing, but...

I'm actually doing this myself with subversion, where I just merge the changes from the original repository to my own (with conflicts coming up now and then). Is it correct to believe that GIT does not have this conflicts? If it has them, why is it better than SVN?

Also, tools involved with git sounds better for me.

On what os are you developing? I'm on windows and don't want to miss something like TortoiseSVN's integration into the explorer. Has GIT similiar tools or what tools sound better than those for SVN?

Both, SVN and GIT, use the same compression algorithm, but SVN keeps some files uncompressed whereas GIT doesn't.

rAthena does not have the same size as the linux core (GIT was developed for this purpose, no?). So could someone make a comparison of the size difference between GIT and SVN with rAthena?

You create Sub-Branches without creating a whole new folder with all files (save disk space) and can work in it while the Main-Branch still keeps getting updated. You can then merge your changes to the Main-Branch. The Main-Branch could be a "Stable" release whereas the other one is a developing version. Every developer can have "unlimited" amounts of branches etc. Also there is the possibility of the team to share Diff's directly instead of commiting and fetching from the Main-Server but rather Commit to a teammember into his Branch.

Isn't this also possible with SVN, even easier?

The decision on choice of Control Version System should not be affected by how it could impact end-user experience, because CVS is a developers' thing. In my opinion, end-users should not even bother about repositories;

I don't fully agree on this one. Who are those end-users? Probably not the players on a server, but those that run the emulator and therefore maintain the server. Especially critical for bug hunting which is only really successful with the help of those end-users. I won't say that it is impossible to hunt bugs the other way, but this way lessens the burden on the developers.

It seems like the decision should be made on the type of project, but so far I haven't really saw any real reason why rAthena would actually benefit from using GIT. I have read some recent articles that wrote about "Why GIT is better than SVN!" and felt sad that there is no realy "Why SVN is better than GIT!" which leads to the thoughts that it really is just some hype with praised features that work in theory, but haven't proved yet in practise since it's a pretty young project, whereas subversion have been proven to be easy to use.

Here are also some links that don't praise GIT:

http://www.databasesandlife.com/why-subversion-is-better-than-git/

http://programmers.stackexchange.com/questions/111633/what-does-svn-do-better-than-git

http://unspecified.wordpress.com/2010/03/26/why-git-aint-better-than-x/

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   20
  • Joined:  12/31/11
  • Last Seen:  

You can make the changes, and "commit" it to project, and anyone involved with project (developers) can approve or reject it... better than uploading or sending a diff.

Doesn't the first part sound exactly like subversion? In addition, it has the diff option, but you're not forced to use it. Or do you mean that anyone, even without access to the CVS, can commit changes and the rAthena developers have to decide whetever a commit will be accepted or not?

Yes, everyone can send pull requests (pending commits) and the developpers can either accept (commit), or refuse them.

Here a example how this looks like:

https://github.com/symfony/symfony/pulls

Edited by saithis
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  47
  • Reputation:   8
  • Joined:  12/06/11
  • Last Seen:  

On what os are you developing? I'm on windows and don't want to miss something like TortoiseSVN's integration into the explorer. Has GIT similiar tools or what tools sound better than those for SVN?

There's TortoiseGit but it's not as user-friendly as TortoiseSVN in my opinion (TortoiseGit is only an UI to msysgit and not a full Git client). It's friendly enough to the Dev Team though. If there's no concern about the end-user experience, I can only see benefits on changing the system.

Edited by Vianna
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  149
  • Reputation:   33
  • Joined:  12/24/11
  • Last Seen:  

Another thing that i'm studying at moment is the possibility of having YOURS repo (saving your changes), but also syncronized with original repo (rAthena). Its good for me, so i can have my private modifications saved on a repositorie, and still receiving updates from original repo. I know thats someone will hate this because of "private" of a public thing, but...

I'm actually doing this myself with subversion, where I just merge the changes from the original repository to my own (with conflicts coming up now and then). Is it correct to believe that GIT does not have this conflicts? If it has them, why is it better than SVN?

You don't need to create one folder for the original Repo and one for your own repo. It all works together.

Also, tools involved with git sounds better for me.

On what os are you developing? I'm on windows and don't want to miss something like TortoiseSVN's integration into the explorer. Has GIT similiar tools or what tools sound better than those for SVN?

TortoiseGIT. Same as TortoiseSVN just for GIT.

You create Sub-Branches without creating a whole new folder with all files (save disk space) and can work in it while the Main-Branch still keeps getting updated. You can then merge your changes to the Main-Branch. The Main-Branch could be a "Stable" release whereas the other one is a developing version. Every developer can have "unlimited" amounts of branches etc. Also there is the possibility of the team to share Diff's directly instead of commiting and fetching from the Main-Server but rather Commit to a teammember into his Branch.

Isn't this also possible with SVN, even easier?

You have to create a folder for every branch. This is not the case in GIT. It saves Disc-Space and still keeps it clean.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  737
  • Reputation:   216
  • Joined:  11/29/11
  • Last Seen:  

Shinryo, about size here my little exemple for the exacte same repertory at exact same version same log etc...,

maintening both CVS by git svn.

Client side :

Git : 3150 items, totalling 65.8 MB

Svn : 3923 items, totalling 126.9 MB

Repo :

Git : 13.4mb

SVN : 40mb

About git/svn :

Yes both can do branch you have a little more tool in git but juging from the dev flow it doesn't seem like you have 2 big change in same time so I'll agree Shinryo that there ain't much benefit, but if that help creating branch and that we end-user could do pull request. That may be nice.

Other then that well instead "svn up" you'll do some "git pull" that ain't much a probleme and sure they're GUI tool as fancy as tortoise for that so you wont be too lose.

In the end it's really an organisational issue for Dev and not much user, so if they fell like merge getting complicated due to too much conflit I'll say give a try but don't put all ressource on it now if you don't need it.

Oh little docs for svn user : http://git.or.cz/course/svn.html

Edited by Lighta
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  15
  • Topics Per Day:  0.00
  • Content Count:  277
  • Reputation:   76
  • Joined:  11/23/11
  • Last Seen:  

Personaly I feel Mozila just said that because Google came out with their web browser advertising about its speed.

Things change guys! Cassets, cd, dvd, blu-ray.

Besides all this your not suppose to run your server on rA...

I say GIT ET~!!!

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  427
  • Reputation:   123
  • Joined:  11/17/11
  • Last Seen:  

The decision on choice of Control Version System should not be affected by how it could impact end-user experience, because CVS is a developers' thing. In my opinion, end-users should not even bother about repositories; rAthena should make releases on regular basis for all folks that won't ever look into source code. For everybody else, who are proficient enough to maintain own SVN repos or make source code modifications, switching to another CVS should not be too steep learning curve anyway.

Well, lots of the users are interested in having the latest code, and since much of them has modifications, it may be easier to maintain it with constant updates ( less conflict vs one big update upon a release, and not only those have modifications who have proper knowledge on how to solve conflicts ). Of course, those who creates source modifications etc, will be able to learn GIT, but still we forcing them to. Although as far as I remember GIT ( or some tools for it, at least I'm remembering checking out a repo from github via an svn client ) support svn checkouts, however it is not that stable.

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   9
  • Joined:  03/15/12
  • Last Seen:  

Hy, rAthena trunk was I put on GitHub and I will continue to update at least once per day.

https://github.com/conan513/rAthena

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  7
  • Reputation:   1
  • Joined:  12/06/11
  • Last Seen:  

On cronus-emulator project, we forked with rathena we have mirroring our github to svn repo in read-only. Mirroring git to svn is very simple.

More info can get in: http://www.kerrybuck...git-repository/

I don't think that GIT is just hyperbole or just because Linus Torvalds is involved with the project but yes, Git is simple to use and the impact that your members can to contribute with fix or for new features to the project through pull requests is amazing.

In my opinion this is the best version control I've ever used and i've excited to use git with rAthena.

Cheers

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  47
  • Topics Per Day:  0.01
  • Content Count:  633
  • Reputation:   78
  • Joined:  11/14/11
  • Last Seen:  

It seems GITHUB is getting popular now, php.net is also moving to GITHUB

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  8
  • Reputation:   4
  • Joined:  05/14/12
  • Last Seen:  

Actually, GIT is very well proven, what do you think changes to the Linux kernel are tracked with? The linux kernel dwarfs *Athena both in size (millions of lines of code) and number of developers. Mercurial is also well proven, and has far better cross-platform support than GIT with all its benefits. As for the argument against people updating their servers, it's about as simple as installing the software and checking out the new repo, essentially zero difference. Sure, people who made custom modifications would have a harder time changing, but no more than if they had switched from eA to rA (most people making custom modifications are probably advanced enough to make the migration anyhow). Under windows the tools are similar enough to SVN that migration would be pretty easy for most people (TortoiseHG actually has a far better interface than TortoiseSVN).

For a small project, such as *Athena, I can fully attest that using a distributed system does indeed improve workflow immensely. I'm a senior full-time student at DigiPen, and we not only do a ton of individual projects for our CS degree program, we also have 4 individual years of small to large team collaborative game projects (my last team in Fall was 12 people). When it all comes down to it, HG/GIT beat SVN hands down for every case I've used it for.

First and foremost, a distributed source control system doesn't have a single point of failure like SVN does. Switching to a mirror if another goes down is a pain in the ass in SVN, where in GIT/HG you just add another remote server entry and go. We actually had a situation like that last semester when the school repository server died for us near the end of the semester, we seamlessly migrated to bitbucket within a few minutes. Then just synced it back to the schools servers when they were back online. But during my first year something similar happened while we were using SVN and it caused the entire game team to be dead in the water.

Now I will admit that there are some issues with distributed systems like GIT/HG. But these are issues that *Athena will never run into. Generally you run into problems when you need to often update large files. No I'm not talking a large code file (trivial because they can be compressed very well), but things like game art, audio, and video assets (which a server has none of).

Now when it comes down to doing something like, say, a complete refactor of how an entire system works, this is where GIT and HG really shine. You can easily create a local branch and work on the changes, while keeping it merged and up-to-date with upstream changes. Then when you're done, you can easily merge those changes back into the main branch and close your branch. At no point outside pulling upstream changes are you required to communicate with the server itself, hell not even then (you can sync from -any- copy of the repository). The choice to commit the actual branch upstream is totally up to you.

Also, comparing the size of the GIT vs. SVN repository isn't really fair. You need to actually understand how each technology works, but overall GIT/HG would end up being larger repos in the long run. Sure, initially it may be smaller, but keep in mind that since it's a distributed source control, even though the data is compressed, it's all there. You can roll all the way back to the very first commit in GIT if you want to without ever contacting the server (which is why it has problems with art assets and such). Essentially, it retains -everything- while SVN only checks out the latest copies of the files locally.

For the arguments about using both, I'd highly suggest against doing that. The majority of your users are just going to be doing a clone checkout and running with it, with occasional updates. Hell, most of them probably don't even want to do that, they'd rather download and unpack a zip file. Very few people will likely be making pushes to change the code itself. Using two version control systems just means that you get to manually apply patch files between the systems, which is why doing both is a nightmare (as other devs pointed out). Though as a counter argument, setting up TortoiseGIT is far harder for most people than TortoiseSVN and TortoiseHG. You can't just install it and go, you have to install both TortoiseGIT *AND* MSysGit to use it (which can have many problems of its own). The ease of use is why I'd suggest Mercurial over GIT. It's essentially the exact same thing, just with better tools and simple setup.

  • Upvote 4
Link to comment
Share on other sites

  • 3 weeks later...

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  47
  • Reputation:   8
  • Joined:  12/06/11
  • Last Seen:  

Relevant information:

For those worrying about user-friendliness of TortoiseGit, the new GitHub for Windows looks pretty simple to use.

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  8
  • Reputation:   1
  • Joined:  12/06/11
  • Last Seen:  

i don't really like TortoiseGit. Although it does helps in some ways, but now i really can't get it to work. kept on giving me "No Authorization method found.. " error or whatever. but that is not important. since we are in the subject about converting rAthena to git.

i might just as offer this https://bitbucket.org/hafizbistar/rathena

i know i use bitbucket instead of github, but what can i say, i needed the private repo ;)

have fun.

note: Someone did the same on Github, but his last update was early June. I believe he did a full history convert like i did.

Link to comment
Share on other sites

  • 2 months later...

  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   20
  • Joined:  12/31/11
  • Last Seen:  

Maybe we could use subgit (free for open source projects), if it works like promoted.

Then we could use git and svn at the same time and as soon as every dev knows how to work with git, we could make the svn a read only mirror.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  303
  • Reputation:   101
  • Joined:  11/13/11
  • Last Seen:  

Github is a way better than any other git hosting ._.

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

Github is a way better than any other git hosting ._.

+1

Link to comment
Share on other sites

×
×
  • Create New...