Jump to content

Now Available on GitHub!


Euphy

Recommended Posts


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

Now Available on GitHub!

 

As some of you might have noticed already, rAthena now has an up-to-date repository on GitHub. We've added basic support for it in our repository, so you'll be able to choose between running a GIT- or SVN-based server.

Why GIT?

GIT's non-linear environment allows users to choose specific commits to merge, making updating less of a hassle for more-customized servers. Users can easily submit pull requests to add their own code to rAthena, following a review by our developers.

 

GitHub also allows users to comment on commits and specific lines of code, and offers its own code viewer and Timeline for commits.

How this affects you

If you're happy with SVN (still hosted by SourceForge), this change will not affect you at all. All of our GIT commits will be automatically pushed into our SVN, so you'll be--at most--one minute behind on updates. We'll continue to reference changes with revision numbers. And even though we now have GIT Timeline, Trac will remain available for use.

Thanks for reading!

  • Upvote 13
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  81
  • Topics Per Day:  0.02
  • Content Count:  1654
  • Reputation:   583
  • Joined:  08/09/12
  • Last Seen:  

Thanks for this!!
(Finaly *someone-at-work* had finished it) /no1

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  106
  • Reputation:   28
  • Joined:  11/08/11
  • Last Seen:  

Currently the SVN log message says only that the GIT branch was merged, but would it be possible to also include the GIT log message so you actually know what was changed and you don't have to search the GIT timeline for the respective changes?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

Currently the SVN log message says only that the GIT branch was merged, but would it be possible to also include the GIT log message so you actually know what was changed and you don't have to search the GIT timeline for the respective changes?

We're working on it. Only Brian has access to the cron that's pushing our GIT commits, so it won't get fixed 'til he's back.
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  106
  • Reputation:   28
  • Joined:  11/08/11
  • Last Seen:  

Ah okay, thank you :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  74
  • Topics Per Day:  0.02
  • Content Count:  420
  • Reputation:   89
  • Joined:  01/30/12
  • Last Seen:  

We'll continue to reference changes with revision numbers. 

 

Good! Perhaps GIT is superior, but personally I don't like it's hash codes. As opposed to revisions, I can't tell where I stand in time only from it's code. I think they wanted something different so badly when they created GIT that in the aspect of labeling the changes they got on the wrong side...

 

Revision numbers are much more understandable and rational.

Edited by Antares
Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  153
  • Topics Per Day:  0.04
  • Content Count:  2285
  • Reputation:   745
  • Joined:  06/16/12
  • Last Seen:  

great /no1

 

honestly, I have no idea on Git stuffs. /heh

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  2223
  • Reputation:   593
  • Joined:  10/26/11
  • Last Seen:  

As opposed to revisions, I can't tell where I stand in time only from it's code. I think they wanted something different so badly when they created GIT that in the aspect of labeling the changes they got on the wrong side...

 

Revision numbers are much more understandable and rational.

I thought the same way, until I understood Git better. Git commits are not linear, that's why incremental revision numbers would not make sense (SVN commits are linear).

Here are examples of how Git commits can be branched & merged:

https://github.com/csswizardry/CSS-Guidelines/network

https://github.com/propublica/upton/network

https://github.com/libgit2/libgit2/network

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  74
  • Topics Per Day:  0.02
  • Content Count:  420
  • Reputation:   89
  • Joined:  01/30/12
  • Last Seen:  

@Brian

I had a feeling this was the case. You are completely right.

 

But if we wouldn't continue to use revisions, how could comeone send a bugreport and tell what version does he/she have? Send a hash of the whole project as it is? Or send a list of every single applied change? :D

Ok, I'm only joking, but still, what's the best practice for this?

 

Is it even possible to compare the versions in a non-linear system? Or simply there are 2 cases: fully or partially applied changesets.

 

&the examples: Holy Molly! That's like my usual route in the supermarket searching for milk! :D

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


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  52
  • Reputation:   6
  • Joined:  01/06/12
  • Last Seen:  

^ You can use the SHA to look at the change history. Even if there's mods made, git keeps track of ancestry, so you'll know the origin branch "revision".

You could probably just say the date/time of the last pull/merge though, for a rough estimate equivalent of revision.

Edit: though the idea is usually to always be up to date. So posting revision shouldn't matter, you should always pull/merge latest changes before making a report. Usually how we use git at work anyway.

Edited by Variant
  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  74
  • Topics Per Day:  0.02
  • Content Count:  420
  • Reputation:   89
  • Joined:  01/30/12
  • Last Seen:  

Another question I have:

 

Why revisions in the SVN are in random order since we use Git? I know Git is not linear, but shouldn't it be still incremental versioning, since a robot pulls the changes from Git one by one? I'm getting confused here. The whole purpose of revision numbers is that they are incremental.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  52
  • Reputation:   6
  • Joined:  01/06/12
  • Last Seen:  

SVN is pretty much: Central repository -> other people

 

The central repo is what gets updated, and you HAVE to be connected to it somehow to make commits.

 

Git is pretty much: Everyone has their own repo. Once you pull, you now have a local repository that you can make commits to. This conforms to 'version control'. It's pretty much just a powerful 'undo' system.

 

So you'd: 

1. Pull the repo

2. Git checkout into a new branch (this is a new local branch you'll use to make changes)

3. Make your customized changes, making several commits to your local repo

4. Test your stuff out

->Hey, I found a bug with this feature, what should I do!?

4a. No worries friend, just revert the commit, that's why it's called version control.

5. Once everything is tested out, switch back to master (original branch) and pull to update it

6. Then switch back to your custom branch, and merge changes in. 

 

Voila, you now have a clean up-to-date branch, and a custom branch that's up to date with your changes.

 

To do this in SVN? You'd need to SVN checkout, copy that repo somewhere you can always access it (probably on your own machine), and then merge two repos together (gross). 

 

Usually with SVN people would just keep one repo and merge in changes, but having the clean branch comes in handy. But you couldn't do local commits.

 

->leading up to answering your question, the reason it's not linear is because now there's 2 branches that have had stuff happen to them either before or after (could be either, they could even happen simultaneously), so you can't really keep track of them in a linear fashion (incremental numbers).

 

Edit: also, your local commits might not match up with the central repos, or other people, so if you were to all 'push' changes back to the origin, how would you keep track of the numbers? The answer is there's really no good way, because each one was effectively changing a different repo altogether.

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


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   2
  • Joined:  09/25/12
  • Last Seen:  

I have never used GitHub, but I will try to understand it because updating a server with a lot of modification can be really annoying like the guy mentioned in the post above.

Edited by AngelRO
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  105
  • Reputation:   67
  • Joined:  04/05/13
  • Last Seen:  

Another question I have:

 

Why revisions in the SVN are in random order since we use Git? I know Git is not linear, but shouldn't it be still incremental versioning, since a robot pulls the changes from Git one by one? I'm getting confused here. The whole purpose of revision numbers is that they are incremental.

 

This is due to the GIT->SVN mirroring process still being somewhat manual and there's still a few kinks that cause it to go out of order when synching timestamps with the GIT side of the house. GIT has no care if commits are in a particular order, each "commit" is considered independent and are applied separately until you get to the current codebase (this is how GIT rebasing is able to work).

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   2
  • Joined:  09/25/12
  • Last Seen:  

I wish we could create private forks on github (for free). I've spent the day trying to figure out a way to push my own files without making it public and so far, the only good service I found to host my files is bitbucket, but I'm struggling to understand how git works.

 

I like how easy it is to set up branches on git, but I want to share my files with some other people, so branching my files locally doesn't help. Is it possible to mirror files on github to another git service, like bitbucket or assembla automatically, or do we need to update our local git and commit every time there is an update on rathena?

 

Edit:

 

I just realized there is a feature on bitbucket that imports a github directory directly. It looks really nice.

 

Edit2:

 

Done... I successfully set up a rAthena mirror on bitbucket and configured it to check for updates every hour. I got more than what I was expecting, I can finally start applying my mods to my private fork.

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


  • Group:  Members
  • Topic Count:  48
  • Topics Per Day:  0.01
  • Content Count:  410
  • Reputation:   29
  • Joined:  04/04/12
  • Last Seen:  

I had a question about the GIT and SVN repos.

 

Is the SVN repo automatically updated?  It seems like there are GIT updates more frequently but the SVN hasn't been updated in a few days.

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  74
  • Topics Per Day:  0.02
  • Content Count:  420
  • Reputation:   89
  • Joined:  01/30/12
  • Last Seen:  

I had a question about the GIT and SVN repos.

 

Is the SVN repo automatically updated?  It seems like there are GIT updates more frequently but the SVN hasn't been updated in a few days.

 

Same question here. I think a frequent merge would be nice :)

Edited by Antares
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

The admins are still working on this; we may switch to a different auto-sync system if this doesn't get resolved soon. We apologize for the delay.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...