SRL Archive - General

The Switch to GIT


Sir R. M8gic1an

2010-04-14 12:25:36

If I remember correctly, no SL opposed this.

As you can see from the other thread, GIT has countless advantages. This thread is about how we will use them.

This is more or less what I had in mind. Me as the most senior dev amongst us, I'll be holding the stable repos. Then I put Coh3n and Naum as the one pushing to me, as they seem to be the most active from the SLs.

SLs pushing and pulling happily from each other. Only having Naum and Coh3n pushing to me also ensures that at least 3 people go through the code. 3 Seems to be a reasonable and reliable number to catch any errors and inefficiencies and so on.

The squares / rectangles are branches, as you can probably tell. Here is the workflow I imagine will happen within a branch.



Basically, I imagine people will work with each other, depending on what part each person is working on, you'll start trusting some people more than others and happily pull and push from each other, as we start to get a feel for it.


One important thing is that each time you branch down, a stable version of the upper branch needs to be maintained for anyone who might want to use it. I'm not exactly sure how git does this, but just for us to keep in mind while we experiment with it.

[php]
[ Stable Repos Wants development ] - - [ back up repos ]
|
|
|
|
[ development repos ] (pushes to stable once stabilized & finished)
| | | | |
| | | | |
| | | | |
| | | | |
People developing commiting
to this branch
[/php]

I think this whole backup stuff git does it on its own through the branching system, but thought I might as well post :p


As for the lines I put between SLs and branches, they are no lines in particular, it was just for the example.




How does this sound to everyone?

~RM

Wizzup?

2010-04-14 12:38:59

I can host a repos at villavu if you want, but I highly recommend http://github.com if you want a more easy setup. (Without needing my interference :p )
It also allows you to push over http + password, like we are doing with srl + svn ATM.

Coh3n

2010-04-14 15:13:45

Okay, I'm not sure if I'm understanding it right or not.

If Blumblebee/NCDS find an error, then have to push their version to me/Naum, and then we have to push to RM, who then can commit for everyone to use? I don't like that, so I'm going to assume I'm not getting it…

Sir R. M8gic1an

2010-04-14 15:45:48

From: Coh3n
Okay, I'm not sure if I'm understanding it right or not.

If Blumblebee/NCDS find an error, then have to push their version to me/Naum, and then we have to push to RM, who then can commit for everyone to use? I don't like that, so I'm going to assume I'm not getting it…


50 / 50

I'll be (hopefully) holding an absolutely stable branch, because lets face it, I haven't been coding that much for MSI and I can always join a sub-branch if I do want to participate.

In principle, those who want absolute stability would pull from me. However, others that want faster updates might be happy to pull from any of the SLs. Maybe even happy to pull from other SRL Members.

So it comes down to this: There is no central repos like there is with tortoise. It's distributed (search wikipedia). So people can take their "current revision" from whoever they wish.


This pushing and pulling chain will just always ensure that the further up you pull from, the more stable it is. That's about it, nothing too much to dislike ;)

~RM

Coh3n

2010-04-14 15:51:47

Much clearer, thank you. :)

Now I can see why everyone wants to switch. :)

I'll have to read more about it to figure out how you would actually pull from anyone you wish, but it sounds really cool. So say NCDS fixed a bug in his branch, if he pushed his version to me, that wouldn't override my version would it?

I should probably just do more reading on how git works…

Sir R. M8gic1an

2010-04-14 16:19:24

From: Coh3n
Much clearer, thank you. :)

Now I can see why everyone wants to switch. :)

I'll have to read more about it to figure out how you would actually pull from anyone you wish, but it sounds really cool. So say NCDS fixed a bug in his branch, if he pushed his version to me, that wouldn't override my version would it?

I should probably just do more reading on how git works…


Nope, you'd receive a pull request, and then you'd pull from him if you wanted to :)

~RM

Coh3n

2010-04-14 16:21:00

From: Rasta Magician
Nope, you'd receive a pull request, and then you'd pull from him if you wanted to :)

~RM

Ah okay, I understand. :)

Blumblebee

2010-04-14 17:16:29

I'm sorry to swear but this looks fu*king sweet :) So me and Naum are heading up the core section then? (So Git allows for more personalized updating I see/think)

Sir R. M8gic1an

2010-04-14 17:19:30

From: Blumblebee
I'm sorry to swear but this looks fu*king sweet :) So me and Naum are heading up the core section then? (So Git allows for more personalized updating I see/think)


Not necessarily, I just put those lines up as an example :) But I'm glad you liked it :D

~RM

Blumblebee

2010-04-14 17:21:33

From: Rasta Magician
Not necessarily, I just put those lines up as an example :) But I'm glad you liked it :D

~RM


oh haha, I was hoping that was a bad paint attempt at what it would look like :<

Will there be the ability for one section to commit without having to worry about it their other section is up to date?

Sir R. M8gic1an

2010-04-14 17:23:47

From: Blumblebee
oh haha, I was hoping that was a bad paint attempt at what it would look like :<

Will there be the ability for one section to commit without having to worry about it their other section is up to date?


Well it is a bad paint attempt. :) Yes.

The only thing that I said is there as an example is exactly which part each person will be working on. I'll leave that up to you guys / we'll figure it out later, but the image pretty much shows what'll happen :)

~RM

Boreas

2010-04-15 00:26:58

+1 for github. You have a branch on your hard drive that nobody can pull from (actually you can have multiple, but they would have to be named different or in different folders, so for includes this is a pain), and you can go nuts here. Then you can have one or more public branches hosted on github that anyone can pull from, and people you add as collaborators can push to. You can push your local branch (or one of them) to your github hosted branch. If collaborators are pushing to your github branch, you then can then pull that down to your local after they make changes. If you don't want to give someone write access all the time (collaborator), they can just send a request for your to pull from them, rather than them push to you. You can also make forks of existing branches if you want to work on an experimental feature or something. You can have another branch on github for stable snapshots, where you just copy from the development branch at a time when it's stable, and people can pull from either. They can also pull from anyones branches that are on github if they want a certain feature now. People can come up with additions, ask someone that works in that area to pull from them, they pull to a local copy, test it out, and if it's good push to their github copy.