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

Git *accepts* a branch name, it can't identity in the future?

From
Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Date
Aug 20, 2017, 07:51 UTC
Message-ID
<1503215489.5824.4.camel@gmail.com>
Hello all,

First of all, I would like to tell that this happened completely by accident and it's partly my mistake. Here's what happened.

I recently started creating 'feature branches' a lot for the few patches that I sent to this mailing list. To identify the status of the patch corresponding to that branch I prefixed them with special unicode characters like ✓, ˅ etc. instead of using conventional hierarchical names like, 'done/', 'archived/'.

Then I started finding it difficult to distinguish these unicode- prefixed names probably because they had only one unicode character in common. So, I thought of switching to the conventional way of using scoped branch names (old is gold, you see). I wrote a tiny script to rename the branches by replacing a specific unicode prefix with a corresponding hierachy. For example, the script would convert a branch named '✓doc-fix' to 'done/doc-fix'.

I made a small assumption in the script which turned out to be false. I thought the unicode prefixes I used corresponded to only two bytes. This lead to the issue. The unicode character '✓' corresponds to three characters and as a result instead of removing it, my script replaced it with the unknown character '�'. So, the branch named '✓doc-fix' became 'done/�doc-fix'. Here's the issue. I couldn't use 

    $ git branch -m done/�doc-fix done/dic-fix 

to rename the branch. Nor could I refer to it in anyway. Git simply says,

    error: pathspec 'done/�doc-fix' did not match any file(s) known to git.

It's not a big issue as I haven't lost anything out of it. The branches have been merged into 'master'.

I just wanted to know why git accepted a branch name which it can't identify later?

If it had rejected that name in the first place it would have been better. In case you would like to know how I got that weird name, here's a way to get that

    $ echo '✓doc-fix' | cut -c3-100
-- 
Kaartic
Next: Johannes Sixt
Message 1 of 5 in “Git *accepts* a branch name, it can't identity in the future?”
  1. Kaartic SivaraamAug 20, 2017
  2. Johannes SixtAug 20, 2017
  3. Kaartic SivaraamAug 20, 2017
  4. Jeff KingAug 20, 2017
  5. Kaartic SivaraamAug 20, 2017

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.