Git
Git
Git is teh SUCK
Today, I had two separate incidents in which my git repository was corrupted! To the point that nothing, git fsck or git reflog or git just-work-or-i-WILL-shoot-you didn’t work. The first time, there was no harm done, I just cloned my repository again, and moved on. The second time that it happened, it was after I had ~10 commits locally that weren’t pushed. I had my working copy intact, but I didn’t want to lose the history. I asked around, and got a couple of suggestion to move to mercurial instead, because git has no engineering behind it. Based...
Git commits as code review?
I just had to go through a code base where I had a bunch of of comments. Instead of going with the usual route of just noting the changes that I think should be done, I decided to do something else. I fixed each individual change, and commit them individually. This is how it looks like, each commit is usually less than a single screen of changes (diff mode). I wonder if it is something that I can apply more generally.
Git renames
One of the things that I like about Git is that I don’t have to think about operations that I make in my source. For example, I am working on the refactoring from NH Prof to ÜberProf, and I wanted to change the directories & project files. So I just went to explorer and renamed them. Then I had to fix some namespaces references in the project file. It looks like this: Notice that it capture both the rename and the content change? You can also see how it looks in the log file:...
Distributed Source Control
I had a short discussion with Steve Bohlen about distributed source control, and how it differs from centralized source control. After using Git for a while, I can tell you that there are several things that I am not really willing to give up. Fast commits Local history Easy merging To be sure, a centralized SCM will have commits, history and merging. But something like Git takes it to a whole new level. Looking at how it changed my workflow is startling. There is no delay to committing,...
Git for OSS projects
If I needed more reasons to move to Git, this would be it: Just to make things more interesting, a couple of those are pull requests, but the middle is just a patch that I got sent. That patch also include a binary file. Automatically tracking who did what and where, even for people who aren’t members of the project? Not having to handle binary files in patches in a special way? That is just makes things so much simpler…
Why Git?
I have been using Git for the past week or so, enough to get a good handle on its benefits and disadvantages. I moved to Git from Subversion, after having done a stint of almost 6 years of using Subversion. A stint which also included doing some development on Subversion. Despite appearances, I actually took a fairly structured (and long running) approach to learning Git, I got a book and read it, I played around with it, and I mostly dismissed it as “it isn’t solving my problem” and “I already know how source control works”. Last...
Git warning signs
This is what made me leave Subversion: Grr!