Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IndexError: list index out of range #496

Open
rashboldb opened this issue Oct 22, 2024 · 6 comments
Open

IndexError: list index out of range #496

rashboldb opened this issue Oct 22, 2024 · 6 comments

Comments

@rashboldb
Copy link

This is the first time the issues happed, idk what to do. The workflow has no issues running on the other branches, but constantly fails in one specific PR.
image

any ideas?

@rashboldb
Copy link
Author

rashboldb commented Oct 22, 2024

It definitely relates somehow to git LFS. I've added files to fit lfs that were previously simply committed.
After I've updated my .gitattributes file, and then did git add --renormalize . and pushed the commit - then it got broken. If I revert the commit which does this it all works good again.

@ewjoachim
Copy link
Member

Hm, it appears that whatever you did triggered a new line to appear in git diff that the action doesn't know how to parse. This is a consequence of git not really providing an easily-parseable output. Can you figure out what the diff contains ? Then we should be able to 1/ fix this, 2/ make the code more robust, 3/ display the diff in case we fail parsing it.

(PRs welcome if you have the time)

@rashboldb
Copy link
Author

rashboldb commented Oct 24, 2024

@ewjoachim the line it fails on starts with @@����x]o�(:� (it's a part of the binary file, PDF to be explicit). Changing the condition in parse_diff_output from if line.startswith("@@") to if line.startswith("@@ ") (adding a space) will fix the issue in this particular case, but idk how reliable the approach is:)

@ewjoachim
Copy link
Member

I thought git didn't display the diff of binary files. I wonder what makes it decide to do so.

Let's fix this the way you mentioned.

@ewjoachim
Copy link
Member

wait... How does the line start with @@ without being a @@ diff line ? The assumption is that the lines that contain user-dependent files start with + or - or ?

@rashboldb
Copy link
Author

@ewjoachim, idk. mb the problem is that splitlines() doesn't work well with it.
image
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants