-
Notifications
You must be signed in to change notification settings - Fork 3.1k
pip freeze figures out the current commit SHA for a git repo but not (reliably) the current branch #2059
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
Comments
Following the command proposed here:
It would be easy to add a method similar to
Then there would be no need for randomly picking a branch, which the user might or might not be currently on. If you want I can prepare a PR for this. |
@cjerdonek Thanks for the links! I don't think #1867 goes far enough though. I think it makes more sense to "freeze" the current branch instead of some pointer to the current commit, even if this pointer is made deterministic through msabramo@7473615. |
Looking at this, this appears to still be a real issue, however I believe the correct behavior here is to pin it to a commit and not keep a branch at all. Freezing an environment is intended to reproduce the current environment. |
The branch is not emitted by pip freeze anymore since #3312, only the commit id. So we'll let the bot close this unless there is a reaction otherwise. |
This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further. |
The problem originates from this line.
When local branches track up to date remote branches, the mapping from SHA to branch is not unique and remote branches with syntax "origin/my_branch" may be picked (see comment in the code), even though they are NOT checked out.
Finally, pkg_resources does not allow a slash in the version pattern and raises a ValueError if a branch name containing a
slash
is picked.My use case:
I have a local git repo which originates from a different local path on my file system. I installed it via:
Now I do
The file looks something like this:
If I then create a new virtual environment and try to install my requirements file I get an error in pip_vendor\pkg_resources.py", line 2573, in scan_list.
I noticed that the problem goes away when the line in the requirements file reads:
The text was updated successfully, but these errors were encountered: