mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-12-20 08:52:12 +01:00
patman: Allow setting a git directory when sending
Support specifying the git-directory when creating and sending patches. This will allow better testing of this functionality, since we can use a test directory. For count_commits_to_branch() support an end commit while we are here. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
60b8709b98
commit
a5afb75c6d
@ -754,7 +754,7 @@ def get_metadata_for_list(commit_range, git_dir=None, count=None,
|
|||||||
pst.finalise()
|
pst.finalise()
|
||||||
return series
|
return series
|
||||||
|
|
||||||
def get_metadata(branch, start, count):
|
def get_metadata(branch, start, count, git_dir=None):
|
||||||
"""Reads out patch series metadata from the commits
|
"""Reads out patch series metadata from the commits
|
||||||
|
|
||||||
This does a 'git log' on the relevant commits and pulls out the tags we
|
This does a 'git log' on the relevant commits and pulls out the tags we
|
||||||
@ -769,8 +769,9 @@ def get_metadata(branch, start, count):
|
|||||||
Series: Object containing information about the commits.
|
Series: Object containing information about the commits.
|
||||||
"""
|
"""
|
||||||
top = f"{branch if branch else 'HEAD'}~{start}"
|
top = f"{branch if branch else 'HEAD'}~{start}"
|
||||||
series = get_metadata_for_list(top, None, count)
|
series = get_metadata_for_list(top, git_dir, count)
|
||||||
series.base_commit = commit.Commit(gitutil.get_hash(f'{top}~{count}'))
|
series.base_commit = commit.Commit(
|
||||||
|
gitutil.get_hash(f'{top}~{count}', git_dir))
|
||||||
series.branch = branch or gitutil.get_branch()
|
series.branch = branch or gitutil.get_branch()
|
||||||
series.top = top
|
series.top = top
|
||||||
return series
|
return series
|
||||||
|
|||||||
@ -112,7 +112,7 @@ def email_patches(col, series, cover_fname, patch_files, process_tags, its_a_go,
|
|||||||
|
|
||||||
|
|
||||||
def prepare_patches(col, branch, count, start, end, ignore_binary, signoff,
|
def prepare_patches(col, branch, count, start, end, ignore_binary, signoff,
|
||||||
keep_change_id=False, cwd=None):
|
keep_change_id=False, git_dir=None, cwd=None):
|
||||||
"""Figure out what patches to generate, then generate them
|
"""Figure out what patches to generate, then generate them
|
||||||
|
|
||||||
The patch files are written to the current directory, e.g. 0001_xxx.patch
|
The patch files are written to the current directory, e.g. 0001_xxx.patch
|
||||||
@ -123,11 +123,12 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff,
|
|||||||
branch (str): Branch to create patches from (None = current)
|
branch (str): Branch to create patches from (None = current)
|
||||||
count (int): Number of patches to produce, or -1 to produce patches for
|
count (int): Number of patches to produce, or -1 to produce patches for
|
||||||
the current branch back to the upstream commit
|
the current branch back to the upstream commit
|
||||||
start (int): Start partch to use (0=first / top of branch)
|
start (int): Start patch to use (0=first / top of branch)
|
||||||
end (int): End patch to use (0=last one in series, 1=one before that,
|
end (int): End patch to use (0=last one in series, 1=one before that,
|
||||||
etc.)
|
etc.)
|
||||||
ignore_binary (bool): Don't generate patches for binary files
|
ignore_binary (bool): Don't generate patches for binary files
|
||||||
keep_change_id (bool): Preserve the Change-Id tag.
|
keep_change_id (bool): Preserve the Change-Id tag.
|
||||||
|
git_dir (str): Path to git repository (None to use default)
|
||||||
cwd (str): Path to use for git operations (None to use current dir)
|
cwd (str): Path to use for git operations (None to use current dir)
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
@ -139,7 +140,8 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff,
|
|||||||
"""
|
"""
|
||||||
if count == -1:
|
if count == -1:
|
||||||
# Work out how many patches to send if we can
|
# Work out how many patches to send if we can
|
||||||
count = (gitutil.count_commits_to_branch(branch) - start)
|
count = (gitutil.count_commits_to_branch(branch, git_dir=git_dir) -
|
||||||
|
start)
|
||||||
|
|
||||||
if not count:
|
if not count:
|
||||||
str = 'No commits found to process - please use -c flag, or run:\n' \
|
str = 'No commits found to process - please use -c flag, or run:\n' \
|
||||||
@ -148,9 +150,9 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff,
|
|||||||
|
|
||||||
# Read the metadata from the commits
|
# Read the metadata from the commits
|
||||||
to_do = count - end
|
to_do = count - end
|
||||||
series = patchstream.get_metadata(branch, start, to_do)
|
series = patchstream.get_metadata(branch, start, to_do, git_dir)
|
||||||
cover_fname, patch_files = gitutil.create_patches(
|
cover_fname, patch_files = gitutil.create_patches(
|
||||||
branch, start, to_do, ignore_binary, series, signoff,
|
branch, start, to_do, ignore_binary, series, signoff, git_dir=git_dir,
|
||||||
cwd=cwd)
|
cwd=cwd)
|
||||||
|
|
||||||
# Fix up the patch files to our liking, and insert the cover letter
|
# Fix up the patch files to our liking, and insert the cover letter
|
||||||
@ -161,7 +163,7 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff,
|
|||||||
return series, cover_fname, patch_files
|
return series, cover_fname, patch_files
|
||||||
|
|
||||||
|
|
||||||
def send(args, cwd=None):
|
def send(args, git_dir=None, cwd=None):
|
||||||
"""Create, check and send patches by email
|
"""Create, check and send patches by email
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -172,7 +174,7 @@ def send(args, cwd=None):
|
|||||||
series, cover_fname, patch_files = prepare_patches(
|
series, cover_fname, patch_files = prepare_patches(
|
||||||
col, args.branch, args.count, args.start, args.end,
|
col, args.branch, args.count, args.start, args.end,
|
||||||
args.ignore_binary, args.add_signoff,
|
args.ignore_binary, args.add_signoff,
|
||||||
keep_change_id=args.keep_change_id, cwd=cwd)
|
keep_change_id=args.keep_change_id, git_dir=git_dir, cwd=cwd)
|
||||||
ok = check_patches(series, patch_files, args.check_patch,
|
ok = check_patches(series, patch_files, args.check_patch,
|
||||||
args.verbose, args.check_patch_use_tree, cwd)
|
args.verbose, args.check_patch_use_tree, cwd)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user