Page History

Turn Off History

To merge a pull request from github into your htcondor repository, you need to add github as a remote repository, and then create a new branch from the pull request. Following these directions will preserve authorship and timestamps.

Adding github as a remote repository is something you only need to do once for a given repo:

One-time config: add the github htcondor repository as a remote repository called github
git remote add github https://github.com/htcondor/htcondor.git

Here is the general form for converting a github pull request to a branch. Below this you will see many specific examples showing the convention for branch naming and commands to run in various different scenarios.

General: fetch a pull request ID from remote github creating branch BRANCHNAME
git fetch github pull/ID/head:BRANCHNAME


IT IS VERY IMPORTANT THAT YOUR MERGE THE PULL REQUEST INTO THE BRANCH IT WAS CREATED FROM.

Most people create pull requests off of the master branch. Look at the pull request on github, and near the top, directly under the title you will see a line similar to this:

Example message on github website
zmiller wants to merge 1 commit into htcondor:master from zmiller:changing-some-htcondor-code

Now that you know the target branch, create a new branch with the correct name and the pull request number.

Example 1: create a branch targeting *master* (V8_9 in this example) for github pull request ID 107
git fetch github pull/107/head:V8_9-pr107

Example 2: create a branch targeting *stable* (V8_8 in this example) for github pull request ID 107
git fetch github pull/107/head:V8_8-pr107

Now check out the target branch and merge the branch containing the pull request. There are two cases below.

MOST LIKELY, the pull request was made from master. So you probably want to just do this:

Example: check out the master and merge the V8_9-pr107 branch created above
git checkout master
git pull
git merge V8_9-pr107
git push master

Then, if the pull request was made from master but should also apply to the stable branch (because it's a bug fix), then cherry-pick the commit back to the correct branch. There may be more than one commit in a pull request. If this is the case, make sure you do them in the correct order. If you are picking into a release branch consult with TimT and TJ first.

Example: Cherry-pick the commit(s) back to stable (V8_8-branch in this example)
git checkout V8_8-branch
git pull
git cherry-pick <commit-hash-1>
git cherry-pick <commit-hash-2>
...
git push V8_8-branch

THIS IS EXTREMELY RARE, but if the pull request was targeted for stable (or a release branch), merge the pull request branch to the target branch and then do the normal merges forward. Consult with TimT and TJ if dealing with a release branch.

Example: Merge the pull request into a stable branch (V8_8-branch in this example) and then forward into master
git checkout V8_8-branch
git pull
git merge V8_8-pr107
git push V8_8-branch
git checkout master
git pull
git merge V8_8-branch
git push master


THAT'S IT! If you targeted the correct branch, the pull request should automatically close when gethub detects the SHA was merged.