libgit2 / libgit2/pygit2

create_commit does not update the reflog

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

还没有人认领这个 Issue。

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

描述

Hi,

I have noticed that v0.26.0 of create_commit does not create an entry in the reflog for the initial commit of a branch.

/private/tmp
4> mkdir d

/private/tmp
5> cd d
/private/tmp/d

/private/tmp/d
6> import pygit2

/private/tmp/d
7> repo = pygit2.init_repository(".")

/private/tmp/d
8> repo.config["user.email"] = "foo@bar.com"

/private/tmp/d
9> foo = repo.create_blob("foo")

/private/tmp/d
10> builder = repo.TreeBuilder()

/private/tmp/d
11> builder.insert("foo", foo, pygit2.GIT_FILEMODE_BLOB)

/private/tmp/d
12> tree_id = builder.write()

/private/tmp/d
13> repo.create_commit("refs/test", repo.default_signature, repo.default_signature, "test", tre
13: e_id, [])
13> f610cdd139fab6f738dfaff52839a552a6b8bb9e

/private/tmp/d
14> git reflog refs/test
  File "<ipython-input-14-afa1bc8c3c03>", line 1
    git reflog refs/test
             ^
SyntaxError: invalid syntax


/private/tmp/d
15> !git reflog refs/test

/private/tmp/d
16> !git --no-pager reflog refs/test

/private/tmp/d
17> repo.references["refs/test"].log
17> <function Reference.log>

/private/tmp/d
18> repo.references["refs/test"].log()
18> <_pygit2.RefLogIter at 0x10db93bc0>

/private/tmp/d
19> list(repo.references["refs/test"].log())
19> []

However it works it is not an initial commit.

贡献指南

打开贡献指南

从这里开始

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

调研方向

Start by reproducing the example with repo.create_commit("refs/test", ...) and checking list(repo.references["refs/test"].log()). Read the create_commit and Reference.log entry points and compare initial-commit behavior with the reported working non-initial case. Done means an initial commit creates the expected reflog entry without regressing existing updates.

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

评估

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

把新 issue 发到你的邮箱

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