Объединение нескольких хранилищ git, имеющих пространство в их имени

Я попытался использовать ответ git -filterbranch из этого вопроса Сочетание нескольких репозиториев git, но столкнулся с проблемой, потому что этот ответ, похоже, не работает когда имя репозитория имеет пробел в имени.

Например, это не сработает, если репозиторий будет называться "мои цифры" вместо "цифры".

Я запускаю msysgit.

Вот пример, с репозиторием "мои фигуры", который не работает:

/d/git/my figures (master)
$ git filter-branch --index-filter \
> 'git ls-files -s | sed "s-\t-&my figures/-" |
> GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
> git update-index --index-info &&
> mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
Rewrite d9f3a10522f2a0e1531f45e8e7b3a518f0d714c5 (1/1)mv: when moving multiple files, last argument must be a directory
Try `mv --help' for more information.
index filter failed: git ls-files -s | sed "s-\t-&my figures/-" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE
rm: cannot remove `d:/git/my figures/.git-rewrite/revs': Permission denied
rm: cannot remove directory `d:/git/my figures/.git-rewrite': Directory not empty

Повторяя с репозиторием, переименованный в myfigures, который отлично работает:

/d/git/myfigures (master)
$ git filter-branch --index-filter 'git ls-files -s | sed "s-\t-&myfigures/-" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
Rewrite d9f3a10522f2a0e1531f45e8e7b3a518f0d714c5 (1/1)
Ref 'refs/heads/master' was rewritten

Итак, как настроить этот вызов git filter-branch для поддержки имени репозитория, имеющего пробел в них?

Ответы

Ответ 1

Наконец-то я задал вопрос о списке рассылки git: один из участников пришел с ответом: некоторые кавычки должны быть добавлены в под-команду mv, они обновили документацию: см. последний образец из http://git-scm.com/docs/git-filter-branch

Ответ 2

Я считаю, что достаточно указать, какие имена вы переходите в git update-index:

... | sed "s-\t-&\"my figures\"-" | ...

Конечно, цитирование/экранирование будет немного проще, если вы поместите фильтр в свой собственный файл - это не все будет окружено одинарными кавычками.