Live data from Hacker News

Git Blame-Someone-Else

github.com

21–30 of 69 posts

Re: Git Blame-Someone-Else

#21

isn't this just a wrap on top of git rebase -i HASH^; git commit --amend --author "Jhon Doe"? Also, as already noted, this overwrites all the history after the commit, making it useless. Then people said it's a joke... I know I will get downvoted for this comment, but How did this make to the first page of HN?

It's Friday, some levity is acceptable here and there.

Re: Git Blame-Someone-Else

#22
post #10

What is more, you can: 1. clone https://github.com/torvalds/linux into /linux" rel="nofollow">https://github.com/ /linux . 2. push a fake "torvalds" commit into your repo. 3. check the SHA of the the commit that you made. 4. the commit will be visible at the original repo URL with your SHA ( " rel="nofollow">https://github.com/torvalds/linux/commit/ ), with no indication whatsoever that this is coming from a differen…

> the repo "network"

This is actually an optimization done by GitHub. It would take up a lot of space if GitHub copied the entire repo every time someone forked it, so they keep all the commits in the original repo. As a side effect, commits in forks are accessible from the original repo since commits from both repos are stored in the same place.

Re: Git Blame-Someone-Else

#23
post #10

What is more, you can: 1. clone https://github.com/torvalds/linux into /linux" rel="nofollow">https://github.com/ /linux . 2. push a fake "torvalds" commit into your repo. 3. check the SHA of the the commit that you made. 4. the commit will be visible at the original repo URL with your SHA ( " rel="nofollow">https://github.com/torvalds/linux/commit/ ), with no indication whatsoever that this is coming from a differen…

I've never really understood Torvalds' reason for not cryptographiclly signing commits. > Btw, there's a final reason, and probably the really real one. Signing each commit is totally stupid. It just means that you automate it, and you make the signature worth less. It also doesn't add any real value, since the way the git DAG-chain of SHA1's work, you only ever need _one_ signature to make all the commits reachable…

Unless I am missing something, his point seems to be different. He doesn’t seem to care about the non-repudiation of a user

Re: Git Blame-Someone-Else

#24
post #10

What is more, you can: 1. clone https://github.com/torvalds/linux into /linux" rel="nofollow">https://github.com/ /linux . 2. push a fake "torvalds" commit into your repo. 3. check the SHA of the the commit that you made. 4. the commit will be visible at the original repo URL with your SHA ( " rel="nofollow">https://github.com/torvalds/linux/commit/ ), with no indication whatsoever that this is coming from a differen…

I've never really understood Torvalds' reason for not cryptographiclly signing commits. > Btw, there's a final reason, and probably the really real one. Signing each commit is totally stupid. It just means that you automate it, and you make the signature worth less. It also doesn't add any real value, since the way the git DAG-chain of SHA1's work, you only ever need _one_ signature to make all the commits reachable…

Because each commit is in a cryptographically secure chain, when you sign a Git tag it vouches for the referenced commit and all the commits preceding it. This can be done at important moments such as each release.

Re: Git Blame-Someone-Else

#25
post #21

isn't this just a wrap on top of git rebase -i HASH^; git commit --amend --author "Jhon Doe"? Also, as already noted, this overwrites all the history after the commit, making it useless. Then people said it's a joke... I know I will get downvoted for this comment, but How did this make to the first page of HN?

It's Friday, some levity is acceptable here and there.

=)

Sounds fair.

Re: Git Blame-Someone-Else

#26

Personally, I find this really useful when I accidentally squash something incorrectly during a rebase and in the process of cleaning it up end up with changes attributed to the “wrong” person.

[deleted]

Re: Git Blame-Someone-Else

#27
post #22
post #10

What is more, you can: 1. clone https://github.com/torvalds/linux into /linux" rel="nofollow">https://github.com/ /linux . 2. push a fake "torvalds" commit into your repo. 3. check the SHA of the the commit that you made. 4. the commit will be visible at the original repo URL with your SHA ( " rel="nofollow">https://github.com/torvalds/linux/commit/ ), with no indication whatsoever that this is coming from a differen…

> the repo "network" This is actually an optimization done by GitHub. It would take up a lot of space if GitHub copied the entire repo every time someone forked it, so they keep all the commits in the original repo. As a side effect, commits in forks are accessible from the original repo since commits from both repos are stored in the same place.

How do they know which branch in my fork is mine vs upstream? Or in the case where I modify a forked branch?

Re: Git Blame-Someone-Else

#28
post #27
post #22

Earlier quoted context omitted.

> the repo "network" This is actually an optimization done by GitHub. It would take up a lot of space if GitHub copied the entire repo every time someone forked it, so they keep all the commits in the original repo. As a side effect, commits in forks are accessible from the original repo since commits from both repos are stored in the same place.

How do they know which branch in my fork is mine vs upstream? Or in the case where I modify a forked branch?

A branch is just a series of commits; if any one of the commits has a different hash (as this hack will do) then the commit and all following commits will have a different hash.

Including the id of the branch (the HEAD).

Re: Git Blame-Someone-Else

#30
post #24

Earlier quoted context omitted.

I've never really understood Torvalds' reason for not cryptographiclly signing commits. > Btw, there's a final reason, and probably the really real one. Signing each commit is totally stupid. It just means that you automate it, and you make the signature worth less. It also doesn't add any real value, since the way the git DAG-chain of SHA1's work, you only ever need _one_ signature to make all the commits reachable…

Because each commit is in a cryptographically secure chain, when you sign a Git tag it vouches for the referenced commit and all the commits preceding it. This can be done at important moments such as each release.

Sure, but in the case presented by great-grand-parent is a leaf commit with an unknown providence.

At the very least I don't think it's "totally stupid", even if I know it's not a panacea for all ills.

Post reply on HN