Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging workflow #72

Closed
z33ky opened this issue Jan 24, 2017 · 16 comments
Closed

Merging workflow #72

z33ky opened this issue Jan 24, 2017 · 16 comments

Comments

@z33ky
Copy link
Collaborator

z33ky commented Jan 24, 2017

Currently we use a merge-heavy workflow, which of course results in plenty merge commits. Many of those are fast forwardable, i.e. "unnecessary" merges.
Having merges even when fast forwardable commits are integrated preserves the branch structure. On the other hand, it litters the log with merge commits.
So to get to the point, I am wondering whether we want to continue with a merge-heavy workflow, or if we want to use fast forwarding (i.e. avoiding merge commits) when possible. Note that in pull requests you have the option of using rebase instead of merge to integrate the changes, which avoids the merge commit.
I can also --force push a modified, linear history for the existing history, which would require everyone else to do a git reset --hard on their master branches (assuming no additional commits were made in private; a git pull --rebase might throw a tantrum about the changed history) though - but only as a one-time thing.

@Quaker762
Copy link
Member

I'll leave this decision up to you. I don't really know all that much about git/version control (unlike you), so make whatever decision is best (but make sure to give me instructions haha).

@z33ky
Copy link
Collaborator Author

z33ky commented Jan 29, 2017

There are a couple of issues with how git handles conflict resolution when rebasing, but I'm a bigger fan of the linear history. I'll get on it soon (today or tomorrow).

@z33ky
Copy link
Collaborator Author

z33ky commented Feb 18, 2017

I'll get on it soon (today or tomorrow).

Hhheh.

So I created the branch master-linear.
Try rebasing the branches you need onto master first, so that they're up-to-date, and then on that master-linear branch.
If you got no problems there I'll rename master to old-master (which we can remove after a while) and master-linear to master.

@Quaker762
Copy link
Member

Quaker762 commented Feb 19, 2017

Try rebasing the branches you need onto master first, so that they're up-to-date, and then on that master-linear branch.

How would I go about doing this? I'll probably screw my fork if I attempt this myself (I have literally no clue lol). Is this for stuff I'm currently working on??

If you got no problems there I'll rename master to old-master (which we can remove after a while) and master-linear to master

Alright sure thing. Also could you update Readme.MD with a section on how to make changed?

@z33ky
Copy link
Collaborator Author

z33ky commented Feb 19, 2017

How would I go about doing this?

First let's bring master up-to-date with git checkout master && git pull upstream. Then for each other branch, do git rebase master, fix the conflicts if you get any and finally git rebase upstream/master-linear (assuming you named the Palm-Studios remote upstream).
You can set your master branch to be master-linear via git reset --hard upstream/master.

You'll need to push with the --force-with-lease flag to indicate that you know the branch histories differ and origin should just accept the new one.

Also could you update Readme.MD with a section on how to make changed?

You mean add the instructions I just wrote? To the current (non-linear) master branch?

@Quaker762
Copy link
Member

Then for each other branch, do git rebase master, fix the conflicts if you get any and finally git rebase upstream/master-linear (assuming you named the Palm-Studios remote upstream).

Okay I've done this for each branch I have. Do I need to git push after the rebase??

You can set your master branch to be master-linear via git reset --hard upstream/master.

Do I only need to do this for master??

You mean add the instructions I just wrote? To the current (non-linear) master branch?

Oh, so there's no difference in opening Pull Requests?? I don't quite understand how this works haha.

@Quaker762
Copy link
Member

By the way, 8-bit textures are now oficially working (the colours are still a tad weird, and the warning has a weird shift, but it works well). Now, it's just the pic format we need to tackle, and we basically have every image format done (a big step!). Perhaps now we should create a few milestones for us to work towards (and actually have you make some PRs hehe :P )

konami_logo

warning

@Quaker762
Copy link
Member

@z33ky I think I just fucked up... I pushed changes to a branch (texture_new) and it has seemingly added every commit ever to it...

@z33ky
Copy link
Collaborator Author

z33ky commented Feb 20, 2017

Do I need to git push after the rebase??

Yeah, git push --force-with-lease.

Do I only need to do this for master??

Yeah.

Oh, so there's no difference in opening Pull Requests?? I don't quite understand how this works haha.

Nope, this changes nothing for pull requests (except that we should select "rebase and merge", as we have done for a little while now, so that we don't need to to the master-linear thing again).

and actually have you make some PRs hehe :P

Yeah, writing my bachelors thesis seems to suck out the will to code much on my free time. Sorry.
I know that I get into it once I start to, but it's sooo much easier to just load up a video game or a Youtube video or whatever :S
Don't be shy to remind me though. I just need a git push.

I pushed changes to a branch (texture_new) and it has seemingly added every commit ever to it...

If you did reset --hard upstream/master on your local master branch it should be fine. The stats on Github should also look fine once you push --force-with-lease you master branch.

@Quaker762
Copy link
Member

Nope, this changes nothing for pull requests (except that we should select "rebase and merge", as we have done for a little while now, so that we don't need to to the master-linear thing again).

Alright cool I'll keep that in mind. I'm going to have to read up on git over the next few weeks. I'll probably ask a few of my professors for some info as well haha

Yeah, writing my bachelors thesis seems to suck out the will to code much on my free time. Sorry.

Hahaha no worries totally understandable. What is your thesis on?

Don't be shy to remind me though. I just need a git push.

Excellent pun haha. I'd like you to be in charge of the actual game framework if you don't mind. I'm good at writing the sub-modules but when it comes to putting it all together, I am absolutely trash...

If you did reset --hard upstream/master on your local master branch it should be fine. The stats on Github should also look fine once you push --force-with-lease you master branch.

I fixed it without anything exploding (thank god). I'll open a PR, but it's still WIP for the most part.

Also, I'll set up an IRC/Slack to we can discuss stuff without clogging up issues and PRs, as well as (hopefully) get some more people to come and work on this so it's not just us grinding away for the next n years haha.

@z33ky
Copy link
Collaborator Author

z33ky commented Feb 21, 2017

What is your thesis on?

Hierarchical process/thread scheduling. You can find part of my work here on Github.
The code's messier than I'd like, but it's my first Python project that has more than a single file...

Edit: forgot link

I'd like you to be in charge of the actual game framework if you don't mind.

I can try, but I have limited knowledge and next to no experience with game engines. I'll write down what I'd imagine in the Wiki when I have some ideas.

I'll set up an IRC/Slack

Das nice. I never used Slack, does it interoperate with IRC?

@z33ky
Copy link
Collaborator Author

z33ky commented Feb 21, 2017

Tagging @CSymes to update their repo as described in #issuecomment-280921878.

@Quaker762
Copy link
Member

Hierarchical process/thread scheduling. You can find part of my work here on Github.

Excellent, that'll come in handy if we need some threading ahahaha. It looks super complex..

I can try, but I have limited knowledge and next to no experience with game engines. I'll write down what I'd imagine in the Wiki when I have some ideas.

Don't worry we'll probably need to map it out together. I'm trying to figure out how we're going to load scenes and map doors to other scenes, perhaps a linked list/tree? We'll need to reverse the cld data file I suppose.

Das nice. I never used Slack, does it interoperate with IRC?

No clue, I'll have to look it up.

@z33ky
Copy link
Collaborator Author

z33ky commented Feb 23, 2017

Excellent, that'll come in handy if we need some threading ahahaha. It looks super complex..

Well, this is scheduling, not threading itself. We'll probably just want to leave up scheduling to the operating system.

I'm trying to figure out how we're going to load scenes and map doors to other scenes, perhaps a linked list/tree? We'll need to reverse the cld data file I suppose.

I'd just let each door store which scene it connects to.

@CSymes
Copy link
Collaborator

CSymes commented Feb 27, 2017

Rebased without (permanently) exploding anything, cheers @z33ky. Better actually do some stuff now though :P

@z33ky
Copy link
Collaborator Author

z33ky commented Feb 27, 2017

master is changed.

@z33ky z33ky closed this as completed Feb 27, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants