libgit2 / libgit2/pygit2

create_commit does not update the reflog

Aperta
#727 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
1.7k
Fork
408
Merge medio
2g 57m
PR unite (30g)
7

Descrizione

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.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
git, python
Ambito
devtools
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.