repo upload 用户名与邮箱不一致导致失败

博客主要探讨了Git配置文件的解析过程,特别是`git_config.py`中的`SshReviewUrl`函数。它从`.repo_*.json`文件中读取配置,如果找不到`review.%s.username`,则使用邮箱地址前部分作为用户名。为了正确配置,可以在JSON文件中添加对应的键值对。这有助于理解Git如何处理用户身份信息,并在与服务器交互时使用正确的配置。
摘要由CSDN通过智能技术生成

由于邮箱帐号与用户名称不一致:

username = repo
email = repo_email@xxx.com

源码路径在当前工作目录的 .repo/repo中
查看源码得知:git_config.py

  def _SshReviewUrl(self, userEmail, host, port):
    username = self._config.GetString('review.%s.username' % self.review)
    if username is None:
      username = userEmail.split('@')[0]
    return 'ssh://%s@%s:%s/' % (username, host, port)

会从config获取 review.%s.username 的值, 如果获取不到则会用邮箱地址@之前的字符串作为用户名。

这个self.review 与服务器有关, 可以将其打印出来,进行拼接

print("self.review: %s" % self.review)

然后这个config从哪里获取的呢?

  def ForRepository(cls, gitdir, defaults=None):
    return cls(configfile=os.path.join(gitdir, 'config'),
               defaults=defaults)

  def __init__(self, configfile, defaults=None, jsonFile=None):
    self.file = configfile
    self.defaults = defaults
    self._cache_dict = None
    self._section_dict = None
    self._remotes = {}
    self._branches = {}

    self._json = jsonFile
    if self._json is None:
      self._json = os.path.join(
          os.path.dirname(self.file),
          '.repo_' + os.path.basename(self.file) + '.json')

由此可以看出获取 .repo_*.json的文件中读取.

可以将改文件打印出来:

print("configFile: %s" %s self.json)

然后在 相应的json文件里增加 key: value. %s 用实际值拼接:

{
    "review.%s.username": [
        "username"
    ]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值