Hacker News new | ask | show | jobs
by allersj 4054 days ago
For me, I tend to commit frequently, sort of like my obsession with constantly hitting CTRL-S while working in an IDE. Before I push my changes I like to squash the commits into more cohesive commits. If anything, I think it makes it easier on my colleagues for code review.
2 comments

I do the same in hg. I do `hg amend` all the time to keep adding changes to my commit. At the end I may selectively undo some changes with `hg uncommit --interactive` or `hg uncommit --all` and redo the whole thing piecemeal with `hg commit --interactive` in order to slowly split up my work into several commits. Evolve makes it really easy to keep (and ignore!) a meta-history of all of my editions, with a clear lineage of which new commit replaced which prior commit.

I may also rebase my work onto the latest head at the end (not to be confused with git HEAD).

And all of this with a very nice interface. It's always --interactive, not sometimes --patch and sometimes --interactive.

Thanks, that is useful to know.

Mercurial was my first DCVS and I loved using it, but I only touched on the basic features. I stopped using it when I switched jobs and to become proficient with git. I'll have to give it another try with one of my side projects.

Thats not the same kind of rewriting history because its local to you and hasn't yet been pushed out to others.

Git allows you to push commits to other people and then rewrite history, which is different

Ah, gotcha. Thanks for the clarification.

I knew that pushing a rewritten history was possible, but I can't think of any situation where I would ever want to do that.