libgit2 / libgit2/pygit2

branch upstream_name InvalidRefSpec error on literal remote values for branch

未关闭
#865 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

libgit2
主要语言
Python
星标
1.7k
派生
408
平均合并
2 天 57 分钟
30 天内合并 PR
7

描述

when using hub (https://hub.github.com) to checkout pull requests, it generates a config entry for the branch with the direct reference to the remote git url instead of adding in a remote. This seems to cause some confusion for pygit, specifically iy will end up throwing an InvalidSpecError as pygit tries to follow the remote as a name instead of being to handle a literal git repo value. I'd suggest in such a case pygit simply return the remote name.

https://github.com/libgit2/pygit2/blob/master/src/branch.c#L245

$ branch
<_pygit2.Branch object at 0x10d1197b0>
$ branch.upstream_name
*** _pygit2.InvalidSpecError: 'https://github.com/steveparker-1984/cloud-custodian.git' is not a valid remote name.

entry in .git/config

[branch "fail-on-assume-role-error"]
        remote = https://github.com/steveparker-1984/cloud-custodian.git
        merge = refs/heads/fail-on-assume-role-error

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先检查 src/branch.c 第 245 行附近,并在 branch.remote 中使用字面量 HTTPS 值复现所示配置。跟踪该值的 branch.upstream_name 处理;当它不再引发 InvalidSpecError 并遵循所要求的远程名称行为时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
git, python
领域
tooling
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。