Port and patch submissions via ticket vs. via PR.

Mojca Miklavec mojca at macports.org
Thu Apr 5 05:59:06 UTC 2018


(I noticed that my previous email was flying to some strange address.
I'm sorry if this is the second post, I cannot see the other one in
mail archive, so I'm not sure if it went through.)

On 4 April 2018 at 16:28, Jonathan Stickel wrote:
>
> Some instructions about
> recommended procedures for pull requests would be helpful to me to
> transition to that approach. If anything already exists, please point me to
> it!

I'm not sure if we have written anything. This is upstream documentation:

    https://help.github.com/articles/creating-a-pull-request/

Now that I read what I wrote below it sounds more complicated than it
actually is.


The basic idea is that:

- You need an account on GitHub, make sure you add your ssh public key there
  (if you use website for editing, your primary email set there will
appear as commit author)
- Log in to GitHub, fork https://github.com/macports/macports-ports
- (You might want to delete any branch in your  fork that's not
"master", but that's optional)

- Clone repo to your machine:
    git clone git at github.com:macports/macports-ports.git
    git remote add some-easy-name
git at github.com:your-username/macports-ports.git
the name of remote can be changed in .git/config.

- It might help to use that git checkout as the main source specified in
    /opt/local/etc/macports/sources.conf

- Then try to remember not to ever commit to the master branch, but
always use a separate branch for each pull request.
    # each time before changing anything make sure you have everything
up to date
    git fetch --all # optional
    git checkout master # make sure you switch to master branch
    git pull origin master [--rebase] # update, you don't need rebase
if you don't pollute your master

    # make the edits, do all the testing
    git branch update-2.19 # create a branch
    git checkout update-2.19 # switch to that branch (you may combine
these two steps)
    git add path/to/Portfile
    git commit # write commit message
    git push some-easy-name # use same name as above; this will push
the changes to your fork

- Usually, when you navigate back to
https://github.com/macports/macports-ports you will see a yellow box
asking you if you want to open a pull request.

There are a few other useful commands:
    git commit --amend # to make changes to last commit
    git push -f some-easy-name # will force-push changes to the PR in
case you fix existing commits
    git rebase -i HEAD~N # where N is the number of the last few
commits you want to change

If you opened a pull request which takes a long time to merge for one
reason or another and you want to bring that branch in sync with
master, it's
    git checkout update-2.19
    git rebase master
Then you'll have the latest version from master with that commit with
update on top.

Mojca


More information about the macports-dev mailing list