4 ms·
Also, if you are using git, `git bisect` will do a great job at automating this kind of history search. It'll also do a nice binary search quickly narrowing dow
by pilif 14y ago
Also, if you are using git, `git bisect` will do a great job at automating this kind of history search. It'll also do a nice binary search quickly narrowing down the culprit.
Additionally, you said "As luck would have it, it was a big one," - this is what I personally use `git add -p` and `git rebase -i` for before pushing to the public repo: I try to keep the commits as small and self-contained as possible such that finding the faulty commit gets much simpler, because there will be no "big one".
- scott_w 14y agoKeeping commits small is crucial. I've been bitten by the "big commit" enough times to force myself to keep commit diffs to a few lines across a few files. I even go as far as to put "formatting" changes into one commit, and actual code into a separate commit. Formatting changes tend to be things like "unindent this large block of code", or "strip extraneous whitespace". They can be larger than usual commits, but they allow me to separate functional changes from non-functional changes. And yes, I've seen a non-functional change break working code before.
- steferson 14y ago>And yes, I've seen a non-functional change break working code before. Really? how? I'm really curious about this.
- scott_w 14y agoHonestly, I don't know how it happened. The changeset was unindenting an HTML file with in-line JavaScript by 4 spaces. The JavaScript stopped working, so I reverted the change and it worked again.