Updating haddock

Ben Gamari ben at smart-cactus.org
Mon Sep 5 20:29:42 UTC 2022


Simon Peyton Jones <simon.peytonjones at gmail.com> writes:

> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20220905/2d6ca11b/attachment.sig>


More information about the ghc-devs mailing list