
Dear devs I'm working on !8750, which has some knock-on changes that are needed on the Haddock repo. So - in the main repo I have wip/T21623 - in the utils/haddock repo have branch wip/spj-T21623 Periodically I need to rebase on master. Question: what is the Blessed Sequence of Commands that I should use to push the right changes to haddock? I think it is something like: 1. In the main GHC repo, on branch wip/T21623 1. git fetch 2. git rebase origin/master 2. In utils/haddock, 1. identify the set of patches P1..Pn between the trunk and my haddock tip, the changes that I need to haddock. 2. Somehow check out the haddock commit K that corresponds to origin/master 3. Apply P1..Pn on top of K 4. Force-push to origin/wip/spj-T21623 3. Move to the main GHC repo 1. git add utils/haddock 2. Create a patch for that change 3. Push to main repo But I am not sure how to do step 2.2, nor what is an efficient way to do 2.3. I would welcome very precise instructions. Thank you! Simon

Simon Peyton Jones
Dear devs
I'm working on !8750, which has some knock-on changes that are needed on the Haddock repo. So
- in the main repo I have wip/T21623 - in the utils/haddock repo have branch wip/spj-T21623
Periodically I need to rebase on master.
Question: what is the Blessed Sequence of Commands that I should use to push the right changes to haddock? I think it is something like:
1. In the main GHC repo, on branch wip/T21623 1. git fetch 2. git rebase origin/master
2. In utils/haddock, 1. identify the set of patches P1..Pn between the trunk and my haddock tip, the changes that I need to haddock. 2. Somehow check out the haddock commit K that corresponds to origin/master 3. Apply P1..Pn on top of K 4. Force-push to origin/wip/spj-T21623 3. Move to the main GHC repo 1. git add utils/haddock 2. Create a patch for that change 3. Push to main repo
But I am not sure how to do step 2.2, nor what is an efficient way to do 2.3.
In general GHC `master` should always refer to the `ghc-head` branch in the Haddock repository. The easiest way would be to use `git rebase`. Specifically, given a history like: W --- X --- Y --- Z <-- origin/ghc-head \ \--- A --- B <-- wip/spj-T21623 Running: git rebase origin/ghc-head while on wip/spj-T21623 will result in: W --- X --- Y --- Z <-- origin/ghc-head \ \--- A --- B <-- wip/spj-T21623 Do be sure to update your local tracking branches before doing this (using `git remote update origin`). Overall, this would look something like: $ cd utils/haddock $ git remote update origin # update local tracking branches $ git checkout wip/spj-T21623 # ensure you are on your WIP branch $ git rebase origin/ghc-head $ git push -f origin wip/spj-T21623 # push your Haddock branch $ cd ../.. $ git commit utils/haddock $ git push -f origin wip/TspjT21623 # push your GHC branch Cheers, - Ben
participants (2)
-
Ben Gamari
-
Simon Peyton Jones