Question

I'm working on a non-bare repository with pygit2

index = repo.index
index.read()

# write in test/test.txt

index.add('test/test.txt')
treeid = index.write_tree()

repo.create_commit(
    'HEAD',
    author, committer,
    'test commit',
    treeid,
    [repo.head.oid]
)

This is successful, but when I perform a git status, I got this :

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    test/test.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   test/

And after a git reset --hard, everything is fixed.

Is there a way to update correctly the index with pygit ?

Était-ce utile?

La solution

You're only writing out a tree from your in-memory index and leaving the on-disc index unmodified, so after the commit it is at the same state as it was before you did anything.

You need to write out the index (index.write()) if you want your changes to be stored on disc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top