Closed leamas closed 11 years ago
@leamas, thanks for taking the time to write this up. I have to be honest, this is more effort than I'm willing to spend on this plugin right now. It seems like you have a vision to make it into something much bigger than what it is. This is essentially a one weekend project that I have maintained because it's useful and it works. For example, I don't see a lot of value in things like validation tools on such a small plugin.
To respond to some specific points:
@git log
instead of @log
) for a reason.This is all a long-winded way of saying you will probably want to maintain a separate fork from me. If everyone seems to prefer your fork over mine, I can abandon mine. Thanks again and I look forward to seeing where your fork is going.
Here is a list of the changes I have made. The code is now in a reasonable state, with running tests and pilot installation. In my opinion, it's a step forward (from a good start!).
If you are interested, I'm willing to cooperate to get this merged. However, the current history is a mess, so just merging that is a no-go. Also, I don't really expect (or want) you to just accept all these changes. So this message is an invitation to discuss things. If you close it, I will consider the discussion finished.
Once again, if you are interested, my proposal is that you check this list of changes and cross-checks it with the forked code. It guess it would start a discussion about what to merge, what to drop and what to enhance. From that discussion I'll try to make patches, one at a time, which looks reasonable that we can merge into the main repo.
I know it's a lot. I'm perfectly happy if you just pick some pieces as a start. But just sending some commits isn't really the way here IMHO. From my point of view it would make sense to start with the basic issues: style, pylint, threading. But that's me :;)
Compatibility
The changes sketched here are big enough to need a new version IMHO. If we decide to walk this road I suggest leaving current version of plugin maintained as-is while starting a new branch heading for a new version. In this version we drop both GitPython 1.0, old command line commands and git.ini compatibility. A clean cut, so to say. Of course, maintaining some or all of these interfaces is possible, but not worth the cost IMHO.
Style:
Static checking:
Logging
Exceptions
Threading
Configuration:
Multiple branches
Refactoring
Some code has been refactored due to reasons such as pylint warnings, threading, multiple branches, commands to create/kill repos etc. Examples:
Command format
Generally depends on other changes, notably using multiple branches and supybot configuration setup. Besides that: