commit_in_branch.py: add support for checking staging branches
Or any branch that contains a `/` slash. Cc: mesa-stable Signed-off-by: Eric Engestrom <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19988>
This commit is contained in:

committed by
Marge Bot

parent
3b07d57ff9
commit
707015891f
@@ -62,7 +62,7 @@ def branch_has_backport_of_commit(upstream: str, branch: str, commit: str) -> st
|
|||||||
or an empty string if is hasn't
|
or an empty string if is hasn't
|
||||||
"""
|
"""
|
||||||
out = subprocess.check_output(['git', 'log', '--format=%H',
|
out = subprocess.check_output(['git', 'log', '--format=%H',
|
||||||
branch + '-branchpoint..' + upstream + '/' + branch,
|
upstream + '..' + upstream + '/' + branch,
|
||||||
'--grep', 'cherry picked from commit ' + commit],
|
'--grep', 'cherry picked from commit ' + commit],
|
||||||
stderr=subprocess.DEVNULL)
|
stderr=subprocess.DEVNULL)
|
||||||
return out.decode().strip()
|
return out.decode().strip()
|
||||||
@@ -89,7 +89,7 @@ def validate_branch(branch: str) -> str:
|
|||||||
out = subprocess.check_output(['git', 'remote', '--verbose'],
|
out = subprocess.check_output(['git', 'remote', '--verbose'],
|
||||||
stderr=subprocess.DEVNULL)
|
stderr=subprocess.DEVNULL)
|
||||||
remotes = out.decode().splitlines()
|
remotes = out.decode().splitlines()
|
||||||
(upstream, _) = branch.split('/')
|
upstream, _ = branch.split('/', 1)
|
||||||
valid_remote = False
|
valid_remote = False
|
||||||
for line in remotes:
|
for line in remotes:
|
||||||
if line.startswith(upstream + '\t'):
|
if line.startswith(upstream + '\t'):
|
||||||
@@ -125,7 +125,7 @@ if __name__ == "__main__":
|
|||||||
help='colorize output (default: true if stdout is a terminal)')
|
help='colorize output (default: true if stdout is a terminal)')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
(upstream, branch) = args.branch.split('/')
|
upstream, branch = args.branch.split('/', 1)
|
||||||
|
|
||||||
if branch_has_commit(upstream, branch, args.commit):
|
if branch_has_commit(upstream, branch, args.commit):
|
||||||
print_(args, True, 'Commit ' + args.commit + ' is in branch ' + branch)
|
print_(args, True, 'Commit ' + args.commit + ' is in branch ' + branch)
|
||||||
|
@@ -46,6 +46,7 @@ def test_canonicalize_commit(commit: str, expected: bool) -> None:
|
|||||||
'commit, expected',
|
'commit, expected',
|
||||||
[
|
[
|
||||||
(get_upstream() + '/20.1', True),
|
(get_upstream() + '/20.1', True),
|
||||||
|
(get_upstream() + '/staging/20.1', True),
|
||||||
(get_upstream() + '/main', True),
|
(get_upstream() + '/main', True),
|
||||||
('20.1', False),
|
('20.1', False),
|
||||||
('main', False),
|
('main', False),
|
||||||
@@ -73,6 +74,7 @@ def test_validate_branch(commit: str, expected: bool) -> None:
|
|||||||
('20.1-branchpoint', True),
|
('20.1-branchpoint', True),
|
||||||
('20.1', False),
|
('20.1', False),
|
||||||
(get_upstream() + '/20.1', True),
|
(get_upstream() + '/20.1', True),
|
||||||
|
(get_upstream() + '/staging/20.1', True),
|
||||||
('e58a10af640ba58b6001f5c5ad750b782547da76', True),
|
('e58a10af640ba58b6001f5c5ad750b782547da76', True),
|
||||||
('d043d24654c851f0be57dbbf48274b5373dea42b', True),
|
('d043d24654c851f0be57dbbf48274b5373dea42b', True),
|
||||||
('dd2bd68fa69124c86cd008b256d06f44fab8e6cd', True),
|
('dd2bd68fa69124c86cd008b256d06f44fab8e6cd', True),
|
||||||
@@ -91,6 +93,7 @@ def test_is_commit_valid(commit: str, expected: bool) -> None:
|
|||||||
('20.1', 'main', False),
|
('20.1', 'main', False),
|
||||||
('20.1', 'e58a10af640ba58b6001f5c5ad750b782547da76', True),
|
('20.1', 'e58a10af640ba58b6001f5c5ad750b782547da76', True),
|
||||||
('20.1', 'd043d24654c851f0be57dbbf48274b5373dea42b', True),
|
('20.1', 'd043d24654c851f0be57dbbf48274b5373dea42b', True),
|
||||||
|
('staging/20.1', 'd043d24654c851f0be57dbbf48274b5373dea42b', True),
|
||||||
('20.1', 'dd2bd68fa69124c86cd008b256d06f44fab8e6cd', False),
|
('20.1', 'dd2bd68fa69124c86cd008b256d06f44fab8e6cd', False),
|
||||||
('main', 'dd2bd68fa69124c86cd008b256d06f44fab8e6cd', True),
|
('main', 'dd2bd68fa69124c86cd008b256d06f44fab8e6cd', True),
|
||||||
('20.0', 'd043d24654c851f0be57dbbf48274b5373dea42b', False),
|
('20.0', 'd043d24654c851f0be57dbbf48274b5373dea42b', False),
|
||||||
@@ -104,6 +107,7 @@ def test_branch_has_commit(branch: str, commit: str, expected: bool) -> None:
|
|||||||
'branch, commit, expected',
|
'branch, commit, expected',
|
||||||
[
|
[
|
||||||
('20.1', 'dd2bd68fa69124c86cd008b256d06f44fab8e6cd', 'd043d24654c851f0be57dbbf48274b5373dea42b'),
|
('20.1', 'dd2bd68fa69124c86cd008b256d06f44fab8e6cd', 'd043d24654c851f0be57dbbf48274b5373dea42b'),
|
||||||
|
('staging/20.1', 'dd2bd68fa69124c86cd008b256d06f44fab8e6cd', 'd043d24654c851f0be57dbbf48274b5373dea42b'),
|
||||||
('20.1', '20.1-branchpoint', ''),
|
('20.1', '20.1-branchpoint', ''),
|
||||||
('20.1', '20.0', ''),
|
('20.1', '20.0', ''),
|
||||||
('20.1', '20.2', 'abac4859618e02aea00f705b841a7c5c5007ad1a'),
|
('20.1', '20.2', 'abac4859618e02aea00f705b841a7c5c5007ad1a'),
|
||||||
|
Reference in New Issue
Block a user