Changes between Version 1 and Version 2 of StartModPatchAndPullReq


Ignore:
Timestamp:
Nov 24, 2013, 2:16:28 PM (9 years ago)
Author:
Beman Dawes
Comment:

Paste in Nathan's instructions

Legend:

Unmodified
Added
Removed
Modified
  • StartModPatchAndPullReq

    v1 v2  
    1515== Pull Requests ==
    1616
    17 The preferred GitHub patch approach for open source projects is to fork the library involved, develop your patch, and then submit a pull request to the library maintainer. Here is what GitHub says about what they call the "Fork and Pull" approach:
     17The preferred !GitHub patch approach for open source projects is to fork the library involved, develop your patch, and then submit a pull request to the library maintainer. Here is what !GitHub says about what they call the "Fork and Pull" approach:
    1818
    1919 The Fork & Pull Model lets anyone fork an existing repository and push changes to their personal fork without requiring access be granted to the source repository. The changes must then be pulled into the source repository by the project maintainer. This model reduces the amount of friction for new contributors and is popular with open source projects because it allows people to work independently without upfront coordination.
    2020
    21 [https://help.github.com/articles/using-pull-requests Read the entire article] for more information on pull requests.
     21[https://help.github.com/articles/using-pull-requests Read the entire !GitHub article] for more information on pull requests. Having a [https:/github.com !GitHub] account is a prerequisite, so open an account if you don't already have one.
    2222
    2323=== Boost Library Pull Request Example===
     
    2525Here is how a pull request works for a Boost library:
    2626
     27First, using a web browser and your !GitHub account, fork the Boost super-project and the Boost library you want to patch. The !GitHub Bootcamp [https://help.github.com/fork-a-repo Fork a Repo] instructions give all the details, but basically you just go to the boostorg repo and click the "Fork" button on the upper-right side of the super-project or library's repo page.
     28
     29Then do the following from the command line:
     30
     31{{{
     321. Fork boostorg/boost
     332. Clone *just* boostorg/boost, not all the sub-projects (as this will fail):
     34 - `git clone git@github.com:boostorg/boost.git modular-boost`
     352.5 (Optional) Create a branch (I called mine 'updated')
     363. Edit .gitmodules and change all the relative URLs to absolute, SSH
     37or HTTPS (whichever kind you or your company firewall likes).
     38 - I ran `:%s/\.\./https:\/\/github.com\/boostorg\/utility.git/g` in
     39vim to use https.
     403. Fork the particular repos you want to apply patches to:
     41 - For this example, I forked 'range'.
     424. Edit the 'range' url line in boost/.gitmodules to point to your fork:
     43 - I changed the https://github.com/boostorg/range.git to
     44git@github.com:ncrookston/range.git.
     455. Commit your gitmodules change, push it to your fork:
     46 - `git commit -a -m "create local boostorg"; git push origin updated`
     476. Now get all the submodules:
     48 - `git submodule update --init`.
     49
     50You should see it fetch most libraries from boostorg, but those you've
     51edited will be registered with the URL you gave in step 4.
     52
     53If you need to make a fresh clone it's straightforward:
     54If you created a new branch:
     55 - `git clone -b updated --recursive
     56git@github.com:ncrookston/boost.git modular_boost`
     57If you did not:
     58 - `git clone --recursive git@github.com:ncrookston/boost.git modular_boost`}}}
     59
    2760== Acknowledgements ==
    2861