Re: git fails with control characters in trunk directory name
- From
- Hugo Mildenberger <hugo.mildenberger@namir.de>
- Date
- May 12, 2009, 09:02 UTC
- Message-ID
- <200905121103.00432.Hugo.Mildenberger@namir.de>
- In-Reply-To
- <81b0412b0905112351l126a7c5bh902a7c7748d9a77a@mail.gmail.com>
Hello Alex,
Show 25 quoted lines
> 2009/5/11 Hugo Mildenberger <Hugo.Mildenberger@namir.de>: > > Using the mouse to paste a git url from a website into a terminal session > > in order to clone the repository, I recently managed to include invisible > > control characters into the git trunk directory name. > > Git has no "trunk". Not in CVS/CVN sense, at least > > > Consequently, I faced all sort of strange behaviour like git pull not > > working (error 2), later on a kernel make which supposedly could not > > finding a rule to create the trunk directory and more such > > inconsistencies. > > I then reinstalled git, rcs and so on and also tried unsuccessfully > > several git versions. The next morning I looked into the .git/config file > > and recognized that the "url" key value within the [remote "origin"] > > section contained some control characters: ^J and \n, as fas as I > > remember. > > What platform are you on? > Can you show your .git/config? > > > While this was almost entirely my fault, git could possibly apply a > > filter, reject such a name or at least issue a warning. > > Maybe. Or maybe it can just work (well, assuming the user meant to > use an url with character you considered "control").
I said it actually did not work well, independent from how anyone prefers to classify characters. My platform is Gentoo-hardened with unicode support and an ext3 disk format . With "trunk directory" I meant the top level directory which is created when you run git clone on a remote url -- sorry for still not being a native git speaker. I don't have the original setup anymore. My _working_ ".git/config" is now:
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-testing.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
The remote url did contain something like "^J\n" at the end, as did the top level (the much derided "trunk") directory name on disk. I probably got there by puting the copied url within quotes on the command line, but today I'm unsure exactly how I arrived there. However, old fashioned as I am, I still consider e.g. a linefeed to be a "control character", and inspite of your flashing git punditry I still consider this to be an issue.