Если обнаружилось, что использование чего-либо другого, кроме ip (0.0.0.0), было причиной сбоя. Итак, указание известного IP-адреса было проблемой.
Я использовал syslog-ng 3.5.6.
Во-первых, перепишите историю bee
, чтобы переместить все файлы в подкаталог:
cd /path/to/bee
git filter-branch -f --prune-empty --tree-filter '
dir="my fancy/target directory"
if [ ! -e "$dir" ]
then
mkdir -p "$dir"
git ls-tree --name-only $GIT_COMMIT | xargs -I files mv files "$dir"
fi'
git log --stat
должен показать каждый файл, появляющийся в моем причудливом/целевом каталоге
. Теперь вы можете объединить историю в aye
с лёгкостью:
cd /path/to/aye
git remote add -f bee /path/to/bee
git checkout -b bee-master bee/master
git rebase master
git checkout master
git rebase bee-master
Пересоздайте подмодуль в aye
:
git submodule add git://my-submodule 'my fancy/target directory/my-submodule'
Наконец, вы можете очистить aye
:
git rm 'my fancy/target directory/.gitmodules'
git branch -D bee-master
git remote remove bee
Возможно, вам также придётся исправить абсолютные пути в вашем репозитории (например, в .gitignore
)
Гораздо более быстрая версия (подсказка к этому ответу):
git filter-branch --index-filter 'git ls-files -s | sed "s-\t\"*-&newsubdir/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"'
Замените newsubdir
любым каталогом или вложенным каталогом, который вам нравится. В macOS вам, возможно, придется использовать gsed
вместоsed
(для установки с помощью brew install gnu-sed
).