I’ve been playing around with git a lot as an alternative to subversion and am really loving it. However, I’m getting an error every time I try to commit:
Duplicate Signed-off-by lines.
I can see where this is being thrown inside .git/hooks/commit-msg, but it wasn’t immediately obvious what the problem was. I did a quick google search and found that others have had the same problem, but at least some members of the git community have been less than helpful. I did figure out the problem, and figured I’d share it here for others.
The commit-msg script is written using bash style shell expansions,
foo = $(bar)
while the shebang at the top of the file is set to /bin/sh. On many systems, this is not a bash shell. The solution is to simply modify the shebang to wherever bash is on your system (probably /usr/bin/bash or similar).
6 Comments
Odd that I’ve not had this problem, since my shell is dash.
Perhaps the debian git has a patch fixing this issue :)
Thanks so much for the solution, ‘twas threatening to drive me batty!
(No issue in OS X 10.5.6’s bash, but for some reason TextDrive’s bash (on Solaris, presumably) and a slightly stale version of git (1.6.0.2) were misbehaving)
Great catch. This affected an OpenSolaris system I was just working with.
Thanks for posting this, very helpful.
This helped me git going again on Joyent’s Shared Accelerators once I realized I needed to modify the first line of the
.git/hooks/commit-msgfile in my repository from this:to this:
Thanks for helping put an end to that frustration.
Brilliant - this solved the problem for me on my Joyent Shared as well.
One question: is there any way of making this change permanent for all Git repos I pull onto my Joyent Shared?