-
-
Notifications
You must be signed in to change notification settings - Fork 934
Progress parsing #20
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
Progress parsing #20
Conversation
Recent versions of git do not output progress without this flag when not connected to a tty.
Your change looks good - and to get things done I would probably have ended up with a similar solution. Something I am wondering about is whether we should break support for git pre 1.7 which didn't yet have the --progress flag. Probably that wouldn't be such a good idea, and a prior check to repo.git.version() could help to fix this. Something I don't like about git.version() yet is that it would call a command every time and return a string that needs to be parsed manually. Instead the method could be implemented on the git command type itself to cache the result, and return parsed information, something like:
which could return a tuple with all version integers, like (1,7,3,2). What do you think ? |
--progress is not a valid flag for earlier versions of git, so we check for the version before using it.
I've tried implementing something like what you suggested. I'm not sure what version the Also, I don't have earlier versions on my system and it would be a pain to install them, so I haven't really tested whether the code works when I tried running Also fixed up some indentation in the previous commit (spaces -> tabs). |
The tests are supposed to run, except for two which will require a git-daemon to run (the error message would tell you what to do though). Besides I just noticed that its probably not a good idea to override git.version directly, as this breaks code for everyone who wanted to use the 'old' version as git.version(). Hence I suggest it to be renamed to Once you could verify the tests are still working, especially the push/pull tests which use the git-daemon, I will have a look and see which version introduced --progress, in order to set the version to compare to correctly. |
Most of the errors are AttributeErrors saying that various objects have no attribute called |
Actually I have no idea. I know that the rorepo attribute is created on the base type for all test cases, and on my recent checkout of master it works without an issue. |
Hmm. I switched to your version of nose but the problem remains.. just to make sure I am getting things right: to run the tests, I just need to run |
Yes, it will do from the root or from the git subdirectory. |
Is it possible for the tests to be run on just your end? I really can't get it to work on my box. |
Ok, will do. I might not get to it too soon, as I am actually applying plenty of changes in another branch which will clearly collide with these changes here. Nonetheless I try to maintain master in the meanwhile, so lets see when I get to it. |
Alright then. I've renamed version to version_info like you suggested. Sorry I couldn't help more! |
""" Get and parse git version string. """ | ||
version_str = self._call_process('version') | ||
version_numbers = version_str.rpartition(' ')[2] | ||
return tuple(version_numbers.split('.')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you forgot to convert the strings to integers.
The line should be something like
tuple(int(n) for n in version_numbers.split('.'))
I have implemented the contents of this pull request and pushed the changes to the new 0.3 branch. This is to indicate that GitPython 0.3 reached the end of its life and is in maintenance mode. A proper release of 0.3 will follow. Master now moved on to the latest stable development, which will be 0.4 one day. As master was reset, you will have to reset your local master as well. Thanks for your participation, |
These 3 commits do the following:
class Remote
into theutil
module so that the git-clone code could use it as well. I'm not sure this is the best way to organize things; let me know if I should make changes.