git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git-svn dcommit losing/detaching head when commit message empty

From
HLHin-Tak Leung <hintak.leung@gmail.com>
Date
Feb 24, 2011, 01:27 UTC
Message-ID
<AANLkTi=A-UG2aOcwwNbjoBK4pYDtKp=0nFmcwrgVv0f8@mail.gmail.com>
Hi,

I have just encountered a small problem with git-svn dcommit, which while not fatal, were quite worrying as it resulted in a detached head(?) for a while. This is with git-1.7.4-1.fc14.x86_64 .

What happened is that I was trying to cherry-pick from one svn branch (of commits from somebody else using genuine svn) into another svn branch and then do some fix-ups before dcommit to push into another svn branch.

When dcommit'ing, it bombed out in the middle because one of the older cherry-picks has no/empty svn commit message. So it results into this message:

-------------------
A repository hook failed: 'pre-commit' hook failed with error output:
Please enter a commit message which details what has changed during this commit.
 at /usr/libexec/git-core/git-svn line 576
-------------------

That's fair enough and obvious enough, but then at that point, the index is at the pre-bomb, and the working directory is post-bomb, I think, and neither is HEAD of my working branch. This is quite worrying - I think if I had done 'git gc --prune=now --aggressive' at this point I would have lost my work? Luckily I had a "git log" display before, so I did "git checkout -b preserving_work sha1_of_working_branch_head" to keep it.

So I did git rebase -i to edit the original commit messages to add something to them. (which arguably git-svn should do automatically? or empty messages really frowned upon? I always commit with at least a trivial message, but as I said, I was cherry-picking others' commits, whose development habits I have no control over)

After I fixed that and continue as I intended, then there is another bomb-out, when git-svn complains about a git commit message of mine (with minor edit): ------------- Running perl -pi -e 's(sometag="original")(sometag="replacement")' directory/* ------------- being empty. On hind-sight, it is probably not a good idea to have perl regular expression code within a commit message (git-svn itself being in perl), but complaining about a non-empty commit message (and seem to be a valid one, no strange utf8/chinese characters, etc) being empty seems to be a bug.

Hope this helps. BTW, git-svn is a great tool, and thanks a lot for that - I wouldn't use anything else (including the "authentic" svn client) to interact with svn repositories these days.

Hin-Tak
Next: Hin-Tak Leung
Message 1 of 3 in “git-svn dcommit losing/detaching head when commit message empty”
  1. Hin-Tak LeungFeb 24, 2011
  2. Hin-Tak LeungFeb 24, 2011
  3. Eric WongFeb 27, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.