threads / patch / 11988

patchIgnore duplicated slashes in git-log

Subject: [PATCH] Ignore duplicated slashes in git-log

## tl;dr

3 messages between Feb 9, 2008 and Feb 9, 2008. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Andi Kleen· Feb 9, 2008, 12:54 UTC · lore

When I use git-log ... path/name I seem to regularly typo path/name as path//name (with duplicated slashes) The normal kernel ignores these duplicated slashes according to POSIX so it's typically no problem, but git fails and cannot find the correct file name when this happens.

This patch fixes this case for git-log at least, by handling duplicated slashes as a single slash. I probably didn't change all places where file names are parsed in the source base, but this seems to be a relatively common place used by several sub commands. And at least for me fixing git-log is the most important case anyways.

Patch against git 1.5.4
-Andi

diff -u git-1.5.4/setup.c-o git-1.5.4/setup.c --- git-1.5.4/setup.c-o 2008-02-09 13:35:21.000000000 +0100 +++ git-1.5.4/setup.c 2008-02-09 13:47:53.000000000 +0100

Show changes to diff +5 −0
@@ -7,6 +7,11 @@
 const char *prefix_path(const char *prefix, int len, const char *path)
 {
 	const char *orig = path;
+	char *s;
+
+	while ((s = strstr(path, "//")) != NULL)
+		memmove(s, s + 1, strlen(s));
+
 	for (;;) {
 		char c;
 		if (*path != '.')
Johannes Schindelin· Feb 9, 2008, 13:24 UTC · re: Andi Kleen · lore

Re: [PATCH] Ignore duplicated slashes in git-log

Hi,
On Sat, 9 Feb 2008, Andi Kleen wrote:
> When I use git-log ... path/name I seem to regularly typo path/name as 
> path//name (with duplicated slashes) The normal kernel ignores these 
> duplicated slashes according to POSIX so it's typically no problem, but 
> git fails and cannot find the correct file name when this happens.

This is only one case you want to fix. There are absolute paths, too, and series of "../".

Alas, Junio was quicker than you:
http://repo.or.cz/w/git.git?a=commitdiff;h=d089ebaad5315325d67db30176df1bbd7754fda9

Hth, Dscho

Andi Kleen· Feb 9, 2008, 14:16 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Ignore duplicated slashes in git-log

On Sat, Feb 09, 2008 at 01:24:56PM +0000, Johannes Schindelin wrote:
Show 11 quoted lines
> Hi,
> 
> On Sat, 9 Feb 2008, Andi Kleen wrote:
> 
> > When I use git-log ... path/name I seem to regularly typo path/name as 
> > path//name (with duplicated slashes) The normal kernel ignores these 
> > duplicated slashes according to POSIX so it's typically no problem, but 
> > git fails and cannot find the correct file name when this happens.
> 
> This is only one case you want to fix.  There are absolute paths, too, and 
> series of "../".

It's hard to imagine anyone typoing sequences of ../ or ./, so at least I personally didn't feel the need to handle that.

> 
> Alas, Junio was quicker than you:
> 
> http://repo.or.cz/w/git.git?a=commitdiff;h=d089ebaad5315325d67db30176df1bbd7754fda9
Great.
-Andi

← back to recent threads