使用 cdk 获取两个分支(代码提交)之间的所有 CommitId
Get all CommitIds between two Branches (codecommit) with cdk
我想获取两个分支之间的所有commitId,但我只获取它们之间的第一个和最后一个commitId。
这是我到目前为止所得到的:
difference = client.get_differences(
repositoryName=repo_name,
beforeCommitSpecifier=main_branch_name,
afterCommitSpecifier=dev_branch_name
)
print("difference between branch "+ dev_branch_name + " and "+main_branch_name )
print(difference)
differences = difference['differences']
for diff in differences:
print("diff")
print("afterBlob")
if 'afterBlob' in diff:
after_or_before_blob = diff['afterBlob']
if 'beforeBlob' in diff:
after_or_before_blob = diff['beforeBlob']
print(after_or_before_blob['blobId'])
blob = client.get_blob(
repositoryName=repo_name,
blobId=after_or_before_blob['blobId']
)
print("after_blob 1:")
print(blob)
I need the CommitIds like in the picture, but i only get e029... and b0ca...
我也尝试使用 git 来解决这个问题,例如 git diff,但是这段代码应该放在 AWS Lambda 中,而 git-remote-codecommit 不会为我工作。
什么可以解决我的问题?
我找到了符合我需求的答案,虽然有点慢。
我在错误的地方搜索了解决方案。差异仅显示文件中的差异,而不是提交本身的差异。
因此我递归地使用了 GetCommit 和给定的 ParentId。
def get_list_of_commits(self, client, main_commit_id, repo_name, list_commit_ids=[], list_commits=[]):
commit_main = client.get_commit(
repositoryName=repo_name,
commitId=main_commit_id
)
parents = commit_main['commit']['parents']
for parent in parents:
self.get_list_of_commits(client, parent, repo_name, list_commit_ids, list_commits)
commit = commit_main['commit']
if main_commit_id not in list_commit_ids:
list_commit_ids.append(main_commit_id)
list_commits.append(commit)
return list_commit_ids, list_commits
如果有人知道更好的答案,我会很高兴听到。
我想获取两个分支之间的所有commitId,但我只获取它们之间的第一个和最后一个commitId。
这是我到目前为止所得到的:
difference = client.get_differences(
repositoryName=repo_name,
beforeCommitSpecifier=main_branch_name,
afterCommitSpecifier=dev_branch_name
)
print("difference between branch "+ dev_branch_name + " and "+main_branch_name )
print(difference)
differences = difference['differences']
for diff in differences:
print("diff")
print("afterBlob")
if 'afterBlob' in diff:
after_or_before_blob = diff['afterBlob']
if 'beforeBlob' in diff:
after_or_before_blob = diff['beforeBlob']
print(after_or_before_blob['blobId'])
blob = client.get_blob(
repositoryName=repo_name,
blobId=after_or_before_blob['blobId']
)
print("after_blob 1:")
print(blob)
I need the CommitIds like in the picture, but i only get e029... and b0ca...
我也尝试使用 git 来解决这个问题,例如 git diff,但是这段代码应该放在 AWS Lambda 中,而 git-remote-codecommit 不会为我工作。
什么可以解决我的问题?
我找到了符合我需求的答案,虽然有点慢。
我在错误的地方搜索了解决方案。差异仅显示文件中的差异,而不是提交本身的差异。
因此我递归地使用了 GetCommit 和给定的 ParentId。
def get_list_of_commits(self, client, main_commit_id, repo_name, list_commit_ids=[], list_commits=[]):
commit_main = client.get_commit(
repositoryName=repo_name,
commitId=main_commit_id
)
parents = commit_main['commit']['parents']
for parent in parents:
self.get_list_of_commits(client, parent, repo_name, list_commit_ids, list_commits)
commit = commit_main['commit']
if main_commit_id not in list_commit_ids:
list_commit_ids.append(main_commit_id)
list_commits.append(commit)
return list_commit_ids, list_commits
如果有人知道更好的答案,我会很高兴听到。