PDA

View Full Version : Any chance of a git/github migration?


addingice
01-09-2013, 04:07 PM
Just wondering.

I realize that this project is older and so it's been on svn for a long while, but I would love to submit a lot of basic code clean up patches (since I love this project) but I don't bother because it's just not worth it for those tiny patches to jump through the hoops to get them to you guys.

with a github setup it's pretty simple to do so.

example simple fixes I'm talking about is in AA.cpp. lots of magic number things all over. aka,

spell_id = <insert magic number here>

None of which is a huge issue. It's not to bad to look up the values and figure out what they mean. But I would love to throw out a couple small patches fixing those minor things (ie, #define CELESTIAL_REGENERATION_2_ID 3250)

these minor fixes aren't a huge deal but it makes it real easy to pull in more programmers when these tiny pulls can be done. sort of a 'toes in the water' type thing.

Vexyl
01-09-2013, 04:46 PM
Personally, I like the way github works more so than google code.
It's very easy to fork, and git pull requests are extremely useful.

Also, it's nice to be able to see the amount of forks for a given project, and there are other small features that are just plain nice.

addingice
01-09-2013, 05:11 PM
Agreed.

I also like the issues and tracking capabilities.

KLS
01-09-2013, 05:29 PM
We'll be switching to a new vcs at some point after the CMake changes. We haven't decided exactly on the specifics other than it will either be Mercurial or Git.

Git is a bit more mature in some respects for the core but Mercurial has significantly better support on Windows. Also should point out: when we change we will also move off of google code instead of use their git/hg option.

addingice
01-09-2013, 05:58 PM
Awesome!

Anyone know how the support is for binary blobs in Mercurial?

I would love to set up an auto download / build / confirmation script for building a linux vm image.

ie, download this image and VirtualBox zip and your server works out of the box on a network. After that adding a simply script (python or something else simple) for modifying it for safety for using as a public-able server.

demonstar55
01-09-2013, 07:10 PM
We'll be switching to a new vcs at some point after the CMake changes. We haven't decided exactly on the specifics other than it will either be Mercurial or Git.

Git is a bit more mature in some respects for the core but Mercurial has significantly better support on Windows. Also should point out: when we change we will also move off of google code instead of use their git/hg option.

I actually got a little giddy (more than I probably should have) when I saw this CMake branch since EQEmu's build system is rather lacking. And moving to git/hg also gives me the same amount of excitement :P

Personally I would say git, but that's only because I know it better, but I can learn hg as well!

KLS
01-09-2013, 09:44 PM
Rather lacking is the nice way of saying it. I've heard good things from people who have used it so far. I have a few more changes I want to do before I reintegrate the branch but shouldn't be long.

rhyotte
01-09-2013, 10:57 PM
Another hopeful vote for GIT, it is getting better on windows pretty steadily. It has quite a few genuinely nice features overall.

Besides, how many serious servers use Windows? I am not trolling, im honestly curious.

Gary

KLS
01-10-2013, 12:29 AM
How many serious developers use Windows? A lot.

There aren't many servers hosted on Windows though. It is vastly easier to develop and debug under though. Also I mention it as something to consider not as a deal breaker.

Vexyl
01-10-2013, 04:31 PM
How many serious developers use Windows? A lot.

There aren't many servers hosted on Windows though. It is vastly easier to develop and debug under though. Also I mention it as something to consider not as a deal breaker.

I disagree. I think it greatly depends on a person's experience, and what they're used to.
Linux and development tools designed for it are very powerful, and with experience with them, one can develop just as easily as someone with experience on Windows.

Some of the most commonly used tools on Linux may not be quite as intuitive as their Window's counterparts, but there are more user-friendly tools out there.
Even with the aforementioned tools an experienced developer can work quickly and efficiently.

It's simply a matter of what you're most comfortable with.

addingice
01-10-2013, 04:38 PM
As a developer in a windows shop, let me tell you, we use git. It's passed the point where it was to painful to use on windows. That being said hg *is* still nicer to use on windows. not by a whole lot, but it is.

I just think the git ecosystem makes it superior to hg is all. github is a great example of why.

Git Gui, giggle, tortoiseGit, git visual studio plugin, ect..

KLS
01-10-2013, 06:07 PM
I think we'll probably go with git. Not sure if we're going to do a total repo conversion or just leave the old svn one up if someone wants to see the history. I've taken a crack at conversion and it is definitely not a quick process.

addingice
01-11-2013, 12:55 AM
<squeeeee!>

demonstar55
01-11-2013, 04:56 PM
I think we'll probably go with git. Not sure if we're going to do a total repo conversion or just leave the old svn one up if someone wants to see the history. I've taken a crack at conversion and it is definitely not a quick process.

https://github.com/mackal/projecteqemu this took a few hours to do.


Just ran:
$ git svn clone --stdlayout https://projectname.googlecode.com/svn projectname
$ git for-each-ref refs/remotes | cut -d / -f 3- | grep -v @ | while read branchname; do git branch "$branchname" "refs/remotes/$branchname"; git branch -r -d "$branchname"; done

I then just deleted the other old branches a that showed up so there were only the ones that you see on Google Code (git branch -D <name>)

$ git remote add origin git@github.com:GITHUB_USERNAME/REPO_NAME.git
git push origin --all

Some other links: https://code.google.com/p/support/wiki/ConvertingSvnToGit
http://git-scm.com/book/ch8-2.html
https://help.github.com/articles/importing-from-subversion

Also: https://github.com/nirvdrum/svn2git would probably be better than what I did, but gentoo's svn2git appears to be a different project and after I emerged that it wouldn't work so I did what I posted above :P

KLS
01-11-2013, 05:05 PM
Yeah was using svn2git, but was taking a long time (45 minutes just for a handful of revisions on my admittedly slow Linux box). Problem is they are busy bees right now with RoF so wanna minimize disruption even for a few hours =/

demonstar55
01-11-2013, 05:11 PM
Yeah was using svn2git, but was taking a long time (45 minutes just for a handful of revisions on my admittedly slow Linux box). Problem is they are busy bees right now with RoF so wanna minimize disruption even for a few hours =/

poking around, probably the best bet is to set a day to convert (or maybe whenever your cmake branch is done) and merge the cmake branch to trunk and just do: svn2git http://projecteqemu.googlecode.com/svn --nobranches --notags --revision #

this will sadly throw away all the history, but we can always have that archived on Google Code. doing svn2git http://projecteqemu.googlecode.com/svn --nobranches --notags --revision 2389 took me 30 mins to get it up on github. (doing a full history preservation took probably almost 2 hours, and I had to do more work with deleting old branches that popped back up)

Amer
01-13-2013, 02:03 AM
I'm also excited about this project possibly moving to git. Great news!

demonstar55
01-17-2013, 06:44 PM
another note on moving to git, if they do preserve the full history, it is probably a good idea to also fill out the authors.txt so the names show up nice and pretty instead of the automatic way svn2git does

3dDavidATgmail.com =
akkadius1ATgmail.com =
AndMetal =
andrew80kATgmail.com =
Angelox22 =
bad.captain01ATgmail.com =
bad.captain01 =
caryatisjrATgmail.com =
Caryatisjr =
cavedude00 =
congdarATgmail.com =
congdar =
Congdar =
DerisionEQATgmail.com =
DerisionEQ =
espause0703ATgmail.com =
espause0703 =
gmt2001ATgmail.com =
jaredbATdaerma.com =
jeremiah.oligarioATgmail.com =
josheb238ATgmail.com =
kayen85ATgmail.com =
KimmySpriteATgmail.com =
KimmySprite =
leere.nichtsATgmail.com =
mikeseveian =
queluum =
realityincarnateATyahoo.com =
retired.ninjaATgmail.com =
ringdahl.danATgmail.com =
rogean =
Rogean =
romai1337 =
sorvaniATgmail.com =
uleat.charismataATgmail.com =
weissresATgmail.com =
weissres =


These are all the authors according to svn log (replaced @ with AT for people sniffy email reasons)

Each should be filed out like, even the duplicate ones, since they are different and will be treated as such.
bob = Bob Smith <bob.smith@example.com>

KLS
01-17-2013, 10:45 PM
Aye, saw that.

Currently in the setting up the organization on Github phase. Gonna merge CMake tomorrow I think then work on transitioning over the next week or two.

trevius
01-18-2013, 12:56 AM
BTW, a couple of months ago I went through the list of committers on the SVN and identified them all in the notes here:

http://code.google.com/p/projecteqemu/people/list

Most are pretty obvious, but some of the usernames don't match the name they are known by for EQEmu.

demonstar55
01-30-2013, 06:37 PM
And Git for VS was announced :P

http://channel9.msdn.com/posts/GitForVisualStudioTFS

KLS
01-30-2013, 07:08 PM
We're still coming up with a new scheme for the database updates before we can do anything on this front. Obviously by SVN revision isn't going to work on a DVCS.

Cavedude and I have been coming up with a separate database revisioning system.

demonstar55
02-05-2013, 03:09 PM
We're still coming up with a new scheme for the database updates before we can do anything on this front. Obviously by SVN revision isn't going to work on a DVCS.

Cavedude and I have been coming up with a separate database revisioning system.

Why not just create a tag for each time you want to mark where the DB is up to on the server repo?

KLS
02-05-2013, 08:30 PM
Two reasons:
1) The system as it stands now is annoying as shit anyway.
2) I think by using tags what that really means is KLS has to continually tag things after people forgot.

wolfwalkereci
02-05-2013, 08:36 PM
Two reasons:
1) The system as it stands now is annoying as shit anyway.
2) I think by using tags what that really means is KLS has to continually tag things after people forgot.

Wait, you don't want to play mommy and clean up after the kids? :-D

KLS
02-15-2013, 05:24 PM
Thinking we will be moved over in the next week or so (hoping to do it this weekend).

brainiac2k
02-16-2013, 07:14 PM
Btw I didn't see it mentioned, but the conversion is significantly faster if you clone the entire svn repo to your local disk first, and use that to convert instead.

KLS
02-16-2013, 07:15 PM
I decided we wont be doing a full convert anyway since I want to reorganize a few things + get the big binaries out of the repo anyway.

I hope to have us switched over by the end of today.

Akkadius
02-16-2013, 07:35 PM
For anyone who is interested in knowing what the contrast will be between SVN and Git, read this:

http://blog.teamtreehouse.com/why-you-should-switch-from-subversion-to-git