On Wed, Sep 9, 2009 at 8:15 AM, Jon Seidel<[address removed]> wrote:
> Hi... I've forked cucumber and patched a couple of bugs.�� Now I want to
> submit them and they (Aslak) wants a diff. Also, I�� forked[masked] and now
> they're now at 0.3.99.
Looking at the cucumber wiki contributing page
(http://wiki.githu...) it looks
like they'll take a pull request. You can likely just commit your
change, push it to your cucumber fork on GitHub and then go to that
branch and hit the 'pull request' button to ask Aslak to pull your
If you want to make it easier on them, you can rebase your work first
(generally something like 'git fetch origin; git rebase
origin/master') which will reapply the work you have done on top of
the current head - making sure if there are any merge conflicts that
you have to deal with them rather than Aslak.
If you really want to actually send them a patch (although some
maintainers don't like having to apply patches instead of pulling git
branches) you can run 'git fetch origin; git format-patch
origin/master' which will create a mbox formatted email of each commit
you've introduced to the codebase - then you can just email those.
If you _really_ want to just create a patch, you can run 'git fetch
origin; git diff origin/master... > feature.patch', though that is the
hardest on the maintainer, since it does not contain parentage like
the other ways do. It will get stale easily, as patch files do. The
other methods tell Git what commits your patch/es were based on and so
can help Git do more effective 3-way merges, keeping the changes from
getting stale and not applying over a short time.
You can also just use 'diff' but it has the same problems as the 'git
diff' solution - the patches become stale and are more difficult to
apply for the maintainer. Plus it's even more work for you than 'git
diff' since I think you would need a second clone to diff against.
I think you'll want to open a ticket in Lighthouse as well and
reference the branch on GitHub (ie: 'schacon/my-fix') so Aslak can
track and close the appropriate ticket when necessary.
Hope that's helpful. Btw, if you haven't forked cucumber on GitHub
yet, and your work was on a public clone of the main project, you can
contribute by hitting the 'fork' button on the cucumber project on
GitHub while logged in, then taking the 'Your Clone Url' and running
this in your project:
$ git remote add github [address removed]:schacon/cucumber.git
Then pushing your work to a remote branch for Aslak like this:
$ git push github master:my-fix
That will push the work in your 'master' branch to the 'my-fix' branch
on your fork on GitHub. Then hit the 'pull request' button.