bergerkiller / NoLagg

Prevents common lag causes on your server
27 stars 14 forks source link

Useful commit messages and seperate commit for each change #7

Closed elad661 closed 12 years ago

elad661 commented 12 years ago

This is a simple request. What I'm asking for is rather basic, and is done by all Open Source projects out there. I suggest that from now on, for each change / bugfix / whatever, you'll make a separate commit, with a commit message describing what you changed and why.

This method would allow easier regression fixing, make it easier for other developers to contribute to the project, and learn from the code.

bergerkiller commented 12 years ago

It's a solo project, so I use GitHub as a sort of code base mostly. And believe me, the commits contain a lot of changes most of the time, and since I need to use the console to manually commit & push the changes, I don't feel like doing that for every time I change a line. :)

I know, you should keep commits small with an understandable description, but in this case it's not feasible with 500 additions and 300 removals every day...

elad661 commented 12 years ago

You don't need a new commit per line, you need a new commit per change. You can change multiple lines, but each commit should be specific for a single fix/improvement.

bergerkiller commented 12 years ago

Sorry, not going to happen. It's not like I am writing a simple block logger here, it contains mutliple inter-connected features. If I change one thing, I have to change three other things too. For example, if I need to edit the spawn limiter, I'll also have to edit the WorldMetaData, ChunkMetaData, entity listener, multiple classes under the spawnlimiter package and probably have to add configuration nodes in the main NoLagg.java file.

Example is today: all I did was get rid of the custom async saving implementation. I ended up completely re-writing the custom chunk loader, auto save interval changer, configuration, chunk event listeners and PerformanceMonitor.

Committing a single commit for every single location (30 locations spreaded over 8 files or so) will make plugin development take 2x as long, and it's not worth it for me.

https://github.com/bergerkiller/NoLagg/commit/eaee5fbb5aeafc653ab367064dbca9a84b33d4a0 Gives you an idea.

elad661 commented 12 years ago

Well, no problem. But sometimes, a release contains more than one change. When that happens, you need more than one commit per change.

bergerkiller commented 12 years ago

That is why I keep a changelog which contains all important changes from version to version, it's on Dev bukkit though.

Voziv commented 12 years ago

If you're using windows to develop I would suggest getting Git Extensions. I don't develop on Linux or mac so I just use the command line or tig for what is needed.

I believe what elad661 means is that if you do work to fix Bug #123xyz then make a commit just for that bug. If you implement a new feature make a commit just for that feature.

Entirely up to you on what you do, we're just making suggestions that will lead to a better experience for everyone on board :)

bergerkiller commented 12 years ago

If I could I would, but the GUI apps never worked for me...and hey, I am now used to the console, so why not? :)