Hello Joel,

I wrote a short script to find different commits based on author and subject (see attached python-script). It seems that there are quite some differences (see attached output).

The big blog of HDMI on Beagle patches that is only on master is caused by me. These have been developed by Vijay while I was a mentor for his project. Would be a question whether that's a feature that should be on the stable branch too or not. Some commits will be most likely only on one branch (for example 816a2f912f where Chris updated rtems_waf).

Best regards

Christian

On 24/07/2021 18:40, Joel Sherrill wrote:


On Sat, Jul 24, 2021, 11:30 AM Christian Mauderer <o...@c-mauderer.de <mailto:o...@c-mauderer.de>> wrote:

    Hello Joel,

    On 24/07/2021 18:18, Joel Sherrill wrote:
     >
     >
     > On Sat, Jul 24, 2021, 10:19 AM Christian Mauderer
    <o...@c-mauderer.de <mailto:o...@c-mauderer.de>
     > <mailto:o...@c-mauderer.de <mailto:o...@c-mauderer.de>>> wrote:
     >
     >     Hello,
     >
     >     in a discussion with Husni I noted that the patches adding
    ttcp are
     >     only
     >     on the 6-freebsd-12 branch of libbsd. Is there a reason that
    they are
     >     not on master too?
     >
     >
     > Yes but forgetting isn't a good reason. I know I have a recent
    patch so
     > apps using C99 or C++03 can compile using libbsd missing also. I
    will
     > survey OAR and make sure we catch up.

    I missed something like that in the past too and I will miss it in the
    future. And I'm sure that I have some on master that are not on
    6-freebsd-12. So no problem. Just wanted to check that there is no
    other
    reason.


We probably need to collectively be more diligent about asking that any patches go onto 6-freedbsd-12 and master. Some also should go to 5-freebsd-12. We are all busy and just forget.


    By the way: Please tell me if you find patches that I missed ;-)


I would if we can figure.out how to spot them.


     >
     > Is there any reason rtemsbsd/ just shouldn't be the same?
     >

    Most of it most likely is the same. But there are differences. Some of
    them might shouldn't be there but they are there. Try to checkout
    master
    and do a

         git diff 6-freebsd-12 -- rtemsbsd/

    I don't think that someone wants to clean that up on an update.


Is it possible to take the output of that and do a git blame on the 6-freebsd-12 branch, grab the hash and author, and generate a master list of hashes and who was responsible for review?

It would make the audit easier.

Changes to the FreeBSD directory might be harder. I know Kinsey back ported some stuff.

--joel


    Best regards

    Christian

     >
     >
     >
    
https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=af06b267c5ce04e8a4a7719cb0c723ee4a27f4b4
    
<https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=af06b267c5ce04e8a4a7719cb0c723ee4a27f4b4>
>  <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=af06b267c5ce04e8a4a7719cb0c723ee4a27f4b4 <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=af06b267c5ce04e8a4a7719cb0c723ee4a27f4b4>>
     >
    
https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=7960ab7a43d5a7c6ceccdd67f8e379adfce7a633
    
<https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=7960ab7a43d5a7c6ceccdd67f8e379adfce7a633>
>  <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=7960ab7a43d5a7c6ceccdd67f8e379adfce7a633 <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=7960ab7a43d5a7c6ceccdd67f8e379adfce7a633>>
     >
    
https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=6cc63cbe657c3ee664727cce1a54acc7e7b5fe9d
    
<https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=6cc63cbe657c3ee664727cce1a54acc7e7b5fe9d>
>  <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=6cc63cbe657c3ee664727cce1a54acc7e7b5fe9d <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=6cc63cbe657c3ee664727cce1a54acc7e7b5fe9d>>
     >
    
https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=8dfea31d729fafab69b5cf1846598f5104b0faeb
    
<https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=8dfea31d729fafab69b5cf1846598f5104b0faeb>
>  <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=8dfea31d729fafab69b5cf1846598f5104b0faeb <https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=8dfea31d729fafab69b5cf1846598f5104b0faeb>>
     >
     >     Background for the question: I expect that an update to
    FreeBSD 13 will
     >     use only what is on the master branch. That's basically what
    master is
     >     for: Tracking the development to keep up with new stuff in
    FreeBSD and
     >     make it easy to jump to the next FreeBSD release. In other
    words: I
     >     think a (possible future) 6-freebsd-13 branch will be based
    on master
     >     and not on 6-freebsd-12. Am I wrong with that assumption?
     >
     >     Again: please correct me if I'm wrong but with that in mind I
    would say
     >     that it is a good idea to port to master and 6-freebsd-12 or (for
     >     experimental stuff) only to master. But not only to 6-freebsd-12.
     >
     >     Best regards
     >
     >     Christian
     >

INFO: Head of master: 8f870a3593 (Gedare Bloom: aarch64/nexus: add GEM 
definitions for Versal)
INFO: Head of 6-freebsd-12: c5e81a2169 (Joel Sherrill: linker_set.h: Add 
alignof implementation for when not C11 or C++11)
INFO: Common ancestor: 8ae22c48b3 (Christian Mauderer: freebsd/if_cpsw: Port.)
WARNING: Only on master: 8f870a3593 (Gedare Bloom: aarch64/nexus: add GEM 
definitions for Versal)
WARNING: Only on master: 5251e0c816 (G S Niteesh Babu: iicbus/rtems-i2c.c: Add 
rtems,path as an additional bus path)
WARNING: Only on master: 9b9a976847 (Vijay Kumar Banerjee: Revert "Import 
telnetd from RTEMS repository")
WARNING: Only on master: 1b07480ddc (Vijay Kumar Banerjee: Import telnetd from 
RTEMS repository)
WARNING: Only on master: c66e527ab7 (Vijay Kumar Banerjee: libbsd.py: Build i2c 
shell command)
WARNING: Only on master: 3cdf289424 (G S Niteesh Babu: arm/ti/ti_pinmux: Remove 
TI pinmux driver)
WARNING: Only on master: 33bfaee89a (Christian Mauderer: wpa: Fix multiple 
definition of `hmac_md5`)
WARNING: Only on master: 90a9fd66e0 (Chris Johns: Update the CONTRIBUTING with 
kernel/user space notes.)
WARNING: Only on master: 5f29d17bee (Sebastian Huber: linux/crc32.h: Update due 
to API changes)
WARNING: Only on master: 48e33f00e4 (Sebastian Huber: linux/genalloc.h: Update 
due to API changes)
WARNING: Only on master: 56fd3765e9 (Jan Sommer: e1000: Add missing files)
WARNING: Only on master: 35fc309241 (Vijay Kumar Banerjee: wscript: add 
uninstall command)
WARNING: Only on master: f1eb69a4a3 (Vijay Kumar Banerjee: Update rtems_waf)
WARNING: Only on master: c81707c3e2 (Christian Mauderer: README: Update with 
information for RTEMS 6)
WARNING: Only on master: b96abfd647 (Vijay Kumar Banerjee: libbsd.py: Install 
the evdev header files)
WARNING: Only on master: 792d56bd33 (Sebastian Huber: NVME(4): Fix for big 
endian platforms)
WARNING: Only on master: 9215a81d08 (Jan Sommer: i386: Add to build)
WARNING: Only on master: a5ddb0ea69 (Sebastian Huber: Update to FreeBSD head 
2019-09-24)
WARNING: Only on master: 951c4b92cf (Vijay Kumar Banerjee: rtemsbsd: remove 
dead code fb.c)
WARNING: Only on master: 530f8f5abd (Vijay Kumar Banerjee: am335x display 
drivers: Port to RTEMS)
WARNING: Only on master: 7adbe5b0bd (Vijay Kumar Banerjee: am335x display 
drivers: Import from FreeBSD)
WARNING: Only on master: d7c01f4569 (Vijay Kumar Banerjee: fbd: Port to RTEMS)
WARNING: Only on master: fa976bc5aa (Vijay Kumar Banerjee: fbd: Import from 
FreeBSD)
WARNING: Only on master: 2cf7b6b3e4 (Vijay Kumar Banerjee: TDA19988: Port to 
RTEMS)
WARNING: Only on master: b7458b0915 (Vijay Kumar Banerjee: TDA19988: Import 
from FreeBSD)
WARNING: Only on master: 59ce99a357 (Vijay Kumar Banerjee: Pinmux: Port to 
RTEMS)
WARNING: Only on master: e3bc24e616 (Vijay Kumar Banerjee: Pinmux : Import from 
FreeBSD)
WARNING: Only on master: b68ca55c96 (Vijay Kumar Banerjee: Add mmap)
WARNING: Only on master: 4ed60d9076 (Vijay Kumar Banerjee: i2c tool : port to 
RTEMS)
WARNING: Only on master: e8c5db1e87 (Vijay Kumar Banerjee: i2c tool : Import 
from FreeBSD)
WARNING: Only on master: 7ab9e2ad53 (Vijay Kumar Banerjee: Add rtems i2c 
adaptation layer)
WARNING: Only on master: 4e1325a338 (Vijay Kumar Banerjee: iicbus: port to 
RTEMS)
WARNING: Only on master: 627fd1624e (Vijay Kumar Banerjee: iicbus: Import from 
FreeBSD)
WARNING: Only on master: 9a4ed64d5a (Vijay Kumar Banerjee: CONTRIBUTING: 
mention pyelftools dependency)
WARNING: Only on master: 589f43d6af (Christian Mauderer: Import FreeBSD license 
files.)
WARNING: Only on master: e2fc908281 (Christian Mauderer: builder.py: Add case 
for plain text files.)
WARNING: Only on master: c64a1ebaf9 (Christian Mauderer: Add helper script to 
find licenses.)
WARNING: Only on master: 3f2b54d971 (Vijay Kumar Banerjee: Remove 
pcap_version.h)
WARNING: Only on master: 5754194298 (Sebastian Huber: README: Add branch 
description)
WARNING: Only on master: 5a8ccdabf6 (Sebastian Huber: CONTRIBUTING: Fix format)
WARNING: Only on master: 9391f52d14 (Sebastian Huber: README.md: Add Qemu and 
networking section)
WARNING: Only on master: 2cfb4f190d (Sebastian Huber: README.md: Fix path)
WARNING: Only on master: 04e8a83c51 (Sebastian Huber: README.md: Rework FreeBSD 
kernel options)
WARNING: Only on master: ba556909dc (Sebastian Huber: README.md: Remove 
maintainer information)
WARNING: Only on master: 32a41a1736 (Sebastian Huber: Ignore .waf*)
WARNING: Only on master: f60ac53420 (Sebastian Huber: Update 
rtems-bsd-kernel-namespace.h)
WARNING: Only on master: 2b2563da95 (Sebastian Huber: Update to FreeBSD head 
2018-12-20)
WARNING: Only on 6-freebsd-12: c5e81a2169 (Joel Sherrill: linker_set.h: Add 
alignof implementation for when not C11 or C++11)
WARNING: Only on 6-freebsd-12: c41318075e (Stephen Clark: nexus: Added SDHCI 
driver to ZynqMP)
WARNING: Only on 6-freebsd-12: a53aeb5eb9 (Kinsey Moore: rtemsbsd: Present all 
ZynqMP interfaces by default)
WARNING: Only on 6-freebsd-12: 14576608a9 (Kinsey Moore: freebsd/if_cgem: Fail 
probe for unterminated MII)
WARNING: Only on 6-freebsd-12: b0c8153d54 (Kinsey Moore: rtemsbsd: Use 
config.inc to control ZynqMP ethernet)
WARNING: Only on 6-freebsd-12: 8dfea31d72 (Stephen Clark: rtemsbsd: Added a 
test for the TTCP command.)
WARNING: Only on 6-freebsd-12: 6cc63cbe65 (Stephen Clark: rtemsbsd: Made TTCP 
command build for RTEMS)
WARNING: Only on 6-freebsd-12: 7960ab7a43 (Stephen Clark: rtemsbsd:Updated TTCP 
code with network demo code)
WARNING: Only on 6-freebsd-12: af06b267c5 (Stephen Clark: rtemsbsd: Added 
original TTCP code)
WARNING: Only on 6-freebsd-12: 4ce914cb90 (Kinsey Moore: rtemsbsd: Make ZynqMP 
CGEM interfaces selectable)
WARNING: Only on 6-freebsd-12: 023e94fd8b (Kinsey Moore: nexus: Add UKPHY 
driver to ZynqMP)
WARNING: Only on 6-freebsd-12: 3abebabf1d (Kinsey Moore: linker: Enforce set 
alignment requirements)
WARNING: Only on 6-freebsd-12: 28129f8ee6 (Kinsey Moore: ck: Update for ILP32)
WARNING: Only on 6-freebsd-12: e256668d6e (Kinsey Moore: nexus: Add ZynqMP SLCR 
driver)
WARNING: Only on 6-freebsd-12: 1d9f93cbaa (Kinsey Moore: nexus: Switch ZynqMP 
platforms to CGEM3)
WARNING: Only on 6-freebsd-12: b7a12cc8f9 (Kinsey Moore: if_cgem: Add support 
for ZynqMP CGEM)
WARNING: Only on 6-freebsd-12: 0c60fe524e (Kinsey Moore: rtembsd: Fix alignment 
of allocations for 64bit)
WARNING: Only on 6-freebsd-12: 68e79b6d18 (Kinsey Moore: zynq: Add support for 
SDHCI devices)
WARNING: Only on 6-freebsd-12: dbf72c205d (Jan Sommer: waf: Add path-mappings 
feature)
WARNING: Only on 6-freebsd-12: 816a2f912f (Chris Johns: rtems_waf: Update to 
origin/master.)
WARNING: Only on 6-freebsd-12: 46b3858b27 (Sebastian Huber: Update to FreeBSD 
stable/12 2020-02-10)
WARNING: Only on 6-freebsd-12: 8618727d51 (Sebastian Huber: Add compatiblity 
for older Newlib variants)
WARNING: Only on 6-freebsd-12: 37323bb819 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-09-23)
WARNING: Only on 6-freebsd-12: 3411e3d738 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-08-26)
WARNING: Only on 6-freebsd-12: 5283630d2c (Sebastian Huber: Update to FreeBSD 
stable/12 2019-07-09)
WARNING: Only on 6-freebsd-12: bbd07d1ac9 (Sebastian Huber: Import missing 
header file)
WARNING: Only on 6-freebsd-12: 7ece7548c1 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-06-26)
WARNING: Only on 6-freebsd-12: 705e362ea5 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-06-05)
WARNING: Only on 6-freebsd-12: 481397ff24 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-03-27)
WARNING: Only on 6-freebsd-12: eb1d30ad35 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-03-11)
WARNING: Only on 6-freebsd-12: 556ec29b4e (Sebastian Huber: Update to FreeBSD 
stable/12 2019-02-11)
WARNING: Only on 6-freebsd-12: 4a8bc9e5fa (Sebastian Huber: Update to FreeBSD 
stable/12 2019-02-04)
WARNING: Only on 6-freebsd-12: a5b385b26f (Sebastian Huber: Update to FreeBSD 
stable/12 2019-01-29)
WARNING: Only on 6-freebsd-12: 1354d9bf97 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-01-21)
WARNING: Only on 6-freebsd-12: aec8db05b2 (Sebastian Huber: Update to FreeBSD 
stable/12 2019-01-16)
#!/usr/bin/env python3

# Copyright (c) 2021 Christian Mauderer <o...@c-mauderer.de>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import git

import logging
import argparse
import sys

parser = argparse.ArgumentParser(
    description=(
        "Compare commits on two branches with a common parent\n"
    ))

parser.add_argument(
    "-l", "--loglevel",
    help = "Define log level.",
    type = str.upper,
    choices = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
    default = 'INFO'
)

parser.add_argument(
    "-1", "--one",
    help = "Name of the first branch",
    default = 'master',
)

parser.add_argument(
    "-2", "--two",
    help = "Name of the second branch",
    default = '6-freebsd-12',
)

parser.add_argument(
    "-r", "--repo",
    help = "Location of the repository.",
    default = '.',
)

args = parser.parse_args()

# set up logging
numeric_loglevel = getattr(logging, args.loglevel)
logging.basicConfig(level = numeric_loglevel, format="%(levelname)s: %(message)s")
logger = logging.getLogger(__name__)
logger.debug(f"Started with the following options: {str(args)}")

# Open repo
repo = git.Repo(args.repo)

def readable(commit):
    sha = commit.hexsha[:10]
    author = commit.author
    subject = commit.message.split("\n")[0]
    return f'{sha} ({author}: {subject})'

# find common ancestor of branches
one = repo.commit(args.one)
logger.info(f"Head of {args.one}: {readable(one)}")
two = repo.commit(args.two)
logger.info(f"Head of {args.two}: {readable(two)}")
merge_base = repo.merge_base(one, two)[0]
logger.info(f"Common ancestor: {readable(merge_base)}")

# Go through commits and index them by commit message
def get_commits(commit, merge_base):
    info = {}
    c = commit
    while c != merge_base:
        subject = c.message.split("\n")[0]
        author = c.author
        key = f"{author}: {subject}"
        info[key] = c
        c = c.parents[0]
    return info

one_commits = get_commits(one, merge_base)
two_commits = get_commits(two, merge_base)

for k in one_commits.keys():
    if k not in two_commits:
        logger.warning(f"Only on {args.one}: {readable(one_commits[k])}")

for k in two_commits.keys():
    if k not in one_commits:
        logger.warning(f"Only on {args.two}: {readable(two_commits[k])}")
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to