1 Star 0 Fork 0

ZyElite/depot_tools

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
git_mark_merge_base.py 2.01 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/env python3
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
Explicitly set/remove/print the merge-base for the current branch.
This manually set merge base will be a stand-in for `git merge-base` for the
purposes of the chromium depot_tools git extensions. Passing no arguments will
just print the effective merge base for the current branch.
"""
from __future__ import print_function
import argparse
import sys
from subprocess2 import CalledProcessError
from git_common import remove_merge_base, manual_merge_base, current_branch
from git_common import get_or_create_merge_base, hash_one, upstream
def main(argv):
parser = argparse.ArgumentParser(
description=__doc__.strip().splitlines()[0],
epilog=' '.join(__doc__.strip().splitlines()[1:]))
g = parser.add_mutually_exclusive_group()
g.add_argument(
'merge_base', nargs='?',
help='The new hash to use as the merge base for the current branch'
)
g.add_argument('--delete', '-d', action='store_true',
help='Remove the set mark.')
opts = parser.parse_args(argv)
cur = current_branch()
if opts.delete:
try:
remove_merge_base(cur)
except CalledProcessError:
print('No merge base currently exists for %s.' % cur)
return 0
if opts.merge_base:
try:
opts.merge_base = hash_one(opts.merge_base)
except CalledProcessError:
print(
'fatal: could not resolve %s as a commit' % opts.merge_base,
file=sys.stderr)
return 1
manual_merge_base(cur, opts.merge_base, upstream(cur))
ret = 0
actual = get_or_create_merge_base(cur)
if opts.merge_base and opts.merge_base != actual:
ret = 1
print("Invalid merge_base %s" % opts.merge_base)
print("merge_base(%s): %s" % (cur, actual))
return ret
if __name__ == '__main__':
try:
sys.exit(main(sys.argv[1:]))
except KeyboardInterrupt:
sys.stderr.write('interrupted\n')
sys.exit(1)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Zy.Elite/depot_tools.git
git@gitee.com:Zy.Elite/depot_tools.git
Zy.Elite
depot_tools
depot_tools
main

搜索帮助

0d507c66 1850385 C8b1a773 1850385