Skip to content

Conversation

@blahgeek
Copy link

@blahgeek blahgeek commented Nov 2, 2025

Copy link
Member

@Byron Byron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for tackling this!

I think it would be useful to add a small test-index directly, one that is known to be V3. The Gitoxide repository definitely has them: https://github.com/GitoxideLabs/gitoxide/blob/ecd354119c3a8b150a06df7205ddf022a825d6cd/gix-index/tests/fixtures/loose_index/extended-flags.git-index

Thanks again.

def test_index_version_v3(self, tmp_dir):
tmp_dir = Path(tmp_dir)
with cwd(tmp_dir):
subprocess.run(["git", "init", "-q"], check=True)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be possible to use the Git type instead? That way one would benefit from all the 'extras', especially around finding the right Git binary.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK done


repo = Repo(tmp_dir)

assert len(repo.index.entries) == 1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To test this, I think the index.version must be exposed and validated here.
I don't see at all why it would use index version 3 here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To test this, I think the index.version must be exposed and validated here.

Done.

I don't see at all why it would use index version 3 here.

git add -N (--intent-to-add) would produce version 3 index. I added a comment.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

index.version

There's this minor thing that I'm not sure if it's an issue:

Currently, the version field of IndexFile is always set to 2 after __init__. Since it's lazy loaded, it's only after its first read of entries when its version field is set correctly. Do you think we can keep it this way?

@blahgeek
Copy link
Author

blahgeek commented Nov 8, 2025

I think it would be useful to add a small test-index directly, one that is known to be V3. The Gitoxide repository definitely has them: https://github.com/GitoxideLabs/gitoxide/blob/ecd354119c3a8b150a06df7205ddf022a825d6cd/gix-index/tests/fixtures/loose_index/extended-flags.git-index

OK. I've copied the file here and added a test case

@blahgeek blahgeek requested a review from Byron November 8, 2025 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants