GitHub is a marvel. But it’s a PITA to submit pull requests. It’s too heavyweight; in particular you’re required to log in to GitHub and make a fork. Here’s what you have to do:
- Log in or sign up to GitHub
- Fork the project
- Check out your fork
- Manually “git remote add upstream”
- Create a branch
- Make your changes and commit them to the branch
- Push your changes back to GitHub
- Submit a pull request
- (time passes, you want to submit another patch)
- Pull changes from upstream to your local repo
- Push your merging of those changes back to GitHub
- Go back to step 5 for next patch.
The thing that really gets me is if I want to make a one line patch to a repo, I’m committing to creating and maintaining a fork. The necessity that I remember to pull changes from upstream and commit them if I ever revisit that project is particularly onerous. In practice I find myself deleting my forks after my pull request is done.
I’d really like to be able to do all this without GitHub, just using git’s native pull request support. Ie, let me just check out a copy of the master project (read-only), then make my changes locally and use some combination of git pull-request and git format-patch to upload my pull request to GitHub. But now that I look at it, maybe those tools aren’t robust enough. Not sure.