Working with GIT, applying patches, presenting to the dev team, etc

It's so hard to find a proper category on this forum...

Anyway, I've gone through a wiki page about GIT and still have some questions. I'm very familiar with SVN but have no experience with GIT. Time to fix that.

I've installed GIT, some GUI (SmartGit) and cloned "".

I did some changes to APM Planner and wanted to commit it.

I understand this is open source but I also understand that only trusted devs have a write permission to original repository. I've read so much on "forking" the project but I can't find it (using that SmartGit). Also, I don't see the point on forking the whole repo just to make small changes that could eventually go to main repo.

So maybe instead I should create a patch and present it to Michael Oborne? But I can read here that in that tool there is no way of creating patch. Well, looks like it's a lousy tool and I should switch to Tortoise, like for SVN.

Anyway.. what is the preferred way of making changes to the code and presenting it to the community/dev team?
The question is valid either for Arduino part and for Planner part.

Views: 712

Reply to This

Replies to This Discussion

GIT is the real deal.  It can be a bit difficult to figure out, but well worth it.

You work on your branch and get things working how you want, then submit a pull request.  The pull request asks them to look over the differences and pull them back into the main branch.  If they pull your changes then your branches will be synchronized again.

It has to work this way so that your changes have a place online while you're working on the project.  This enables everyone to work on your branch to make it ready to be merged back.  It really works best this way.

Thanks for your reply but I don't think I follow.

I used "clone" command to grab ardupilot-mega repo on my local machine.

I did some changes and commited it. Git commits are local. So far, so good.

Now the tricky part. In order to show my changes to the world I would have to push them. Push command do not ask where to push it. It tries to push to the same URL the clone command got the code, so the main repository. This returns an error: "remote error: repository not found". This is probably due to lack privileges to push my changes to main repo but I missed the step where I make a remote copy.

Also, I can't find any "pull request" (did you mean push?) in the tool I use.

For sure I'm missing something.

use this guide

this uses tortusegit.

[damn, I wrote huge comment and only small excerpt was sent....]

Thanks! It's working - some commits/pushes went through.

1) 30c26a662d38 + 4cc1c0416fe9 => refresh Config page on connection/disconnection to show proper tabs on the left

2) 7f30f3a47f48 => bring back an error message (without stack trace) to show when connection fails - currently user don't know why Connection button does nothing when there is some error.

What is the best way to let you know about future commits so you can review them?

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service