From: Shawn O. Pearce Date: Tue, 29 Dec 2009 15:08:44 GMT Subject: Re: [PATCH] Add --path-prefix option to git-fast-import Message-ID: <20091229150844.GC6152@spearce.org> In-Reply-To: <1262091083-25401-1-git-send-email-gisle.aas@it.uib.no> Gisle Aas wrote: > I found this useful when import multiple external repositories to be merged > into a single git repo. Not having the files be renamed during the merge > made it easier to follow the history of the individual files. > > Signed-off-by: Gisle Aas > --- > Documentation/git-fast-import.txt | 6 ++++++ > fast-import.c | 24 ++++++++++++++++++++++++ > 2 files changed, 30 insertions(+), 0 deletions(-) Interesting. Test cases? > +static const char *path_prefix_prepend(struct strbuf *sb, const char *p) > +{ > + if (p != sb->buf) { > + strbuf_reset(sb); > + strbuf_addstr(sb, p); > + } I'd be a bit happier about the change if you could check not only that p != sb->buf, but that p is not within sb->buf + sb->alloc. I can't remember if all of the cases below are safe such that any time you call the function with a p that p isn't pointing to something within the strbuf you are handing in. -- Shawn.