git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adam Mercer <ramercer@gmail.com>
To: Thomas Rast <trast@student.ethz.ch>
Cc: git@vger.kernel.org
Subject: Re: Using filter-branch to move repo contents in subdirectory
Date: Thu, 29 Jul 2010 14:15:31 +0100	[thread overview]
Message-ID: <AANLkTin5sv8NQ_8NZkQpW9HG4zYZDZHNF80EWK8Km4Mr@mail.gmail.com> (raw)
In-Reply-To: <201007291508.05242.trast@student.ethz.ch>

On Thu, Jul 29, 2010 at 14:08, Thomas Rast <trast@student.ethz.ch> wrote:
> Adam Mercer wrote:
>> $ git filter-branch --index-filter \
>>     'git ls-files -s | sed "s-\t\"*-&sftlib/-" |
>>         GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
>>             git update-index --index-info &&
>>     mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
>> Rewrite 223651f2ebd5d5d9341bcfc9e7cb6caaa3f4d171 (56/65)Ignoring path
>> 00bootsftlib/
>
> What OS is this?

This was on Mac OS X 10.6. Where sed is BSD sed.

> You seem to have a 'sed' version where \t does not
> match the horizontal tab character, or a shell that replaces the '\t'
> inside a double-quoted string with simply 't'.
>
> As a short-term fix, you can try to replace it with $(printf '\t')
> which should always give a tab character.  You need to quote the '
> though, so that's
>
>  $ git filter-branch --index-filter \
>      'git ls-files -s | sed "s-$(printf '\''\t'\'')\"*-&sftlib/-" |
>          GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
>              git update-index --index-info &&
>      mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD

Thanks, that did the trick!

> As for the actual issue: 'man 1p sed' on my system claims
>
>        * The escape sequence '\n' shall match a <newline> embedded in the  pat-
>          tern space. A literal <newline> shall not be used in the BRE of a con-
>          text address or in the substitute function.
>
> but does not mention \t at all, so I guess either that manpage is
> wrong or GNU sed is not POSIX compliant even with --posix (where it
> still treats \t as a tab).

Also using the original command, but specifying GNU sed also does the trick.

Cheers

Adam

  reply	other threads:[~2010-07-29 13:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-29 12:37 Using filter-branch to move repo contents in subdirectory Adam Mercer
2010-07-29 13:08 ` Thomas Rast
2010-07-29 13:15   ` Adam Mercer [this message]
2010-07-29 13:24     ` [PATCH] filter-branch tests/docs: avoid \t in sed regexes Thomas Rast
2010-07-29 14:47       ` Tomas Carnecky
2010-07-29 14:52         ` Thomas Rast
2010-07-29 15:02           ` Tomas Carnecky
2010-07-29 15:10             ` [PATCH] t7005: fix subdirectory-filter test Thomas Rast
2010-07-29 15:12               ` Thomas Rast
2010-08-09 19:36 ` Using filter-branch to move repo contents in subdirectory Adam Mercer
2010-08-11 15:01   ` Adam Mercer
2010-08-11 19:32     ` Jeff King
2010-08-11 19:59       ` Adam Mercer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTin5sv8NQ_8NZkQpW9HG4zYZDZHNF80EWK8Km4Mr@mail.gmail.com \
    --to=ramercer@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=trast@student.ethz.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).