加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
entry_with_update.py 1.31 KB
一键复制 编辑 原始数据 按行查看 历史
lvmin 提交于 2023-08-17 16:25 . fix ownership
import os
import sys
root = os.path.dirname(os.path.abspath(__file__))
sys.path.append(root)
os.chdir(root)
try:
import pygit2
pygit2.option(pygit2.GIT_OPT_SET_OWNER_VALIDATION, 0)
repo = pygit2.Repository(os.path.abspath(os.path.dirname(__file__)))
branch_name = repo.head.shorthand
remote_name = 'origin'
remote = repo.remotes[remote_name]
remote.fetch()
local_branch_ref = f'refs/heads/{branch_name}'
local_branch = repo.lookup_reference(local_branch_ref)
remote_reference = f'refs/remotes/{remote_name}/{branch_name}'
remote_commit = repo.revparse_single(remote_reference)
merge_result, _ = repo.merge_analysis(remote_commit.id)
if merge_result & pygit2.GIT_MERGE_ANALYSIS_UP_TO_DATE:
print("Already up-to-date")
elif merge_result & pygit2.GIT_MERGE_ANALYSIS_FASTFORWARD:
local_branch.set_target(remote_commit.id)
repo.head.set_target(remote_commit.id)
repo.checkout_tree(repo.get(remote_commit.id))
repo.reset(local_branch.target, pygit2.GIT_RESET_HARD)
print("Fast-forward merge")
elif merge_result & pygit2.GIT_MERGE_ANALYSIS_NORMAL:
print("Update failed - Did you modified any file?")
except Exception as e:
print('Update failed.')
print(str(e))
print('Update succeeded.')
from launch import *
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化