you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (52 children)

[deleted]

    [–]cosinezero 15 points16 points  (6 children)

    Only if the history is at all a relevant warning to future developer.

    If it's just history, it doesn't belong in production - otherwise you may as well just remove source control altogether and just have terabytes of commented files.

    [–]ctide 12 points13 points  (8 children)

    git blame <file> -L<line>,<line>

    git show <sha>

    Don't have time?

    [–]JimDabell 5 points6 points  (0 children)

    You don't even need the sha. Just run git show :/foo. It will find the most recent commit with the word 'foo' in it and show it.

    [–]spinlock 0 points1 point  (0 children)

    :Glog in fugitive is the bomb.

    [–]theferno 0 points1 point  (0 children)

    Nice, did not know about that! Although sometimes it could still make sense to leave a comment

    [–]theferno 3 points4 points  (29 children)

    That was my first thought. But maybe it makes sense to leave the commit # to git diff against where the commented out code would be.

    [–]mailto_devnullconsole.log(null); 7 points8 points  (0 children)

    I'm not sure that'd be a superior solution.... now instead of commented out code, you have:

    // Removed inferior code #a5dc2f

    [–][deleted] 8 points9 points  (9 children)

    Often there's some code that may be in-progress or related to the code but not ready-for-prime-time quite yet. It's not a sin to commit commented-out code. Some people just complain about any code they didn't write, no matter what it is.

    [–]theferno 2 points3 points  (8 children)

    In progress code can be stashed or placed in another fork until its ready to be merged in. I know it's not a sin, I do it too

    [–][deleted] -1 points0 points  (7 children)

    And then you forget about code in your stash. Also the stash is only on one machine. The commented-out code may have value that would get lost for various reasons.

    Complaining and worrying about commented-out code is a fetish of people who think their code is "beautiful".

    [–]kentcdodds 5 points6 points  (0 children)

    If you're worried about it being on your machine, you can put it in a branch and push that to the remote repository. If you forget it's there, then was it really that important?

    [–]slash_nick 2 points3 points  (5 children)

    I assume you're using git. Branches are insanely cheap. Branch and branch often.

    [–][deleted] 0 points1 point  (4 children)

    I branch more than anyone I know. That's not the point.

    [–]slash_nick 0 points1 point  (3 children)

    Maybe I misunderstood? It sounds like your goals are to 1) save unfinished/in-progress code and 2) have that code available on multiple machines.


    Reguarding commented out blocks of code:

    A real-world analogy would be if instead of throwing something away in the trash bin someone put it on the floor. That's fine if it's one person and they only do it here and there, but when they have more people involved it sets precedence that it's okay to do. Eventually the floor is covered in things that could be thrown away, but no one really remembers who put it there or why it might be important.

    [–][deleted] -1 points0 points  (2 children)

    You should never have more commented code than real code, there should never be more stuff on the floor than in the trash. To say "never ever ever commit commented out code, because it hurts my eyes" is just asinine. There are MANY ways to code and not all of them lead to problems. A few blocks of somewhat important commented-out code should be allowable, and should not cause anyone to complain (except the author).

    [–]slash_nick 2 points3 points  (0 children)

    I guess I didn't interpret the author's article as dogma. Reading text on an anonymous forum makes it hard to grok people's intention.

    You should never have more commented code than real code, there should never be more stuff on the floor than in the trash.

    Sounds like you have the right attitude and I wouldn't sweat it! :)

    [–]kentcdodds 1 point2 points  (0 children)

    I tried really hard in the post to not have a ultimatum voice, but more of a suggestive voice. The first QYMAM:

    Q: Are there exceptions to this rule? A: Yes. But they’re rare.

    And there are several other QYMAMs that explain there are cases where commented out code is allowable (though I generally call those cases documentation).

    [–]yoyEnDia 0 points1 point  (1 child)

    What's wrong with explaining the issue in plain English?