I have found a couple of these issues as well. SVN diffs files, where git Git diffs changesets. I did not stop between every commit to test everything, and I confess some of the changesets where confusing for me since my knowledge of the core is still limited.
I don't believe it is necessary for core developers (especially Pako) to create their own fork of the repository. The members of the EventGhost organization on GitHub automatically have write access to the EventGhost repository. Note the distinction between organization and repository. Side note: It will be easy to create another repository under the organization, say for a plugin that many contribute to.
Pako, I would clone
the repo instead of forking it. Depending on how much you've read about Git you'll know you can create a branch and keep it local OR push it up to the remote/origin/GitHub so others can contribute to. So say I want to update the serial port library, I would create a branch off of develop
and commit as many changes as I want and then when I'm done I can merge it back into develop
. I never pushed the branch up to the remote though, so no one sees the changes until that merge commit on develop. This is perfect for playing around with an idea, because no one sees it and can be deleted easily.
On a previous post, I mentioned this article
, which I suggest we loosely follow.
A couple of Git practices I follow:
1) No fast fowards (--no-ff). That article talks about this about half way down, so I won't go into detail. But basically it forces a merge commit to be made, which keeps the branch separated in history. I can go into why this is good if need be.
2) When doing a pull
use the rebase
For example, say Pako and I have made commits to develop
, and he pushes his up to the remote
. Then I go to push
my changes, but I can't (git error something along the lines of "branch head behind remote"). I need to pull
down the changes on remote. Pull
is a shortcut for fetch
updates your copy of the repo with everything on the remote (remember git is distributed), but the remote branch is still separate from your local branch.
When I pull a merge commit will be made merging remote develop into local develop. This is confusing. What we really want is to rebase
, which takes my changes a puts them on top of the remote branch. So now Pako's changes were inserted and then mine are placed on top of his. This keeps everything on one line, which makes sense since these changes were on the same branch. That may be a horrible explanation, but there's tons of info on this stuff. Summary: rebase your changes before pushing.
Now as that article states, bugfixes are committed directly to develop. Pako I would encourage you to do this with the errors you've found. I have found one so far and I'll commit that to develop.
I will create a feature branch for svn to git changes and push that up so you and others can take a look and contribute.
I've use SourceTree
on Mac, and it works great. They have a windows version too, I'm trying out. I think it only falls short when there are merge conflicts.
The other is TortoiseGit
. I started Git with this and it integrates with windows explorer nicely. Also handles merge conflicts better.
I have yet to try out GitHub's app
, but it is a serious contender too.
Well I've pushed some changes up. I've had a hell of a time trying to get it to run from source though. I finally was able to get gcc-xml install and all the other dependencies setup. Builder still gets stuck...and app freezes. Apparently wxPython 3.0.0 is a bit different than the one we require released 5 years ago...who would've thought. I think the "wx.build.config" module needs to be exluded.
Going to look into both tomorrow.
Ok so it turns on wxPython 3.0 is what's causing the freeze. I think this bug should be made a priority after git is setup, but I know very little about the wx library.
Pako, can you tell me the versions of each dependency you're using to make the builds?