• Learning a PR process

    Git Workflow

    I’ve been using GitHub since October 2012 but until recently I’ve had very little understanding of any working process that enables me to contribute to other projects using Pull Requests ( PRs ).

    But now I’ve started to try to work with branches. Two reasons:

    1. To enable me to contribute to Gutenberg- for Full Site Editing improvements.
    2. To help others to learn about version control system by collaboratively developing repositories on wppompey.

    In this post I’ll document the process I’m using for developing PRs against Gutenberg issues.

    I read the instructions on WordPress.org. They all made sense, but I couldn’t work out how to create a PR that only contained the changes I’d intended to make. While the overall effect of my PRs were the change I intended, every Pull Request consisted of multiple commits, not just the one I wanted to apply. Obviously I was doing it wrong.

    I read some Stack Overflow items ( thanks Angel for directing me to them ) and discovered the git commands that appear to do the job.

    I’ve now created 4 or 5 PRs using this method. And so far I’ve not had any problems. This is a good thing. I’ve just re-read the Git Workflow process and realised it’s almost exactly the same.

    The process

    Preparation – per repository

    1. Fork the repository in GitHub.
    2. Clone to the directory where you’re going to make your changes.
    3. Add the upstream repository.
    4. Fetch the latest versions.
    cd \apache\htdocs\wordpress\wp-content\plugins
    git clone https://github.com/bobbingwide/gutenberg.git gutenberg-source
    cd gutenberg-source
    git remote add upstream       https://github.com/WordPress/gutenberg.git
    git fetch --all
    

    For each Issue / PR

    Work in a new branch ( gpr.bat )

    git checkout -b fix/%1 upstream/trunk

    Now make and test changes in the new branch. Add files and commit as often as necessary, with a nice commit message, referencing the issue number each time?

    git commit -m "good commit message 50-70 characters

    When ready push the changes to your fork of the repository ( gpush.bat )

    git push -u origin fix/%1

    Theoretically this should work for any repository.

    Then change back to the main branch

    git checkout trunk

    Fetch all

    To keep the local repository up to date use fetch --all. I believe this has to be done in trunk.

    C:\apache\htdocs\wordpress\wp-content\plugins\gutenberg-source>
    git checkout trunk
    git fetch --all
     Fetching origin
     Fetching upstream
     remote: Enumerating objects: 3248, done.
     remote: Counting objects: 100% (3248/3248), done.
     remote: Compressing objects: 100% (273/273), done.
     Receiving objects: 100% (
     Receiving objects: 100% (4749/4749), 51.99 MiB | 3.85 MiB/s, done.
     Resolving deltas: 100% (3648/3648), completed with 996 local objects.
     From https://github.com/WordPress/gutenberg
    ...
    

    What I was doing wrong

    For the 150 or so GitHub repositories under bobbingwide I developed all my changes in the main branch. It’s still called master for many of them. Then I pulled the changes to a local version in C:\github\bobbingwide\repository-name and pushed them from there.

    I had two copies of each repository. One reason for this was protection against having the repository destroyed accidentally by WordPress updates or unpacking .zip files into other development enviroments.

    References

    https://developer.wordpress.org/block-editor/contributors/develop/git-workflow/
    https://developer.wordpress.org/block-editor/contributors/develop/

    ,

    Published:

    Last updated:

    May 28, 2021

Categories

Tide times from tidetimes.co.uk

Tide Times & Heights for Northney on
Saturday, 18 September 2021

Tide times from tidetimes.org.uk

Tide Times & Heights for Northney on
18th September 2021
03:20 Low Tide ( 1.03m )
11:04 High Tide ( 4.27m )
15:46 Low Tide ( 1.07m )
23:18 High Tide ( 4.26m )