Found temporary solution
This commit is contained in:
parent
1c08b8bf8a
commit
af6a7c4b81
1 changed files with 56 additions and 0 deletions
|
@ -6,3 +6,59 @@ I tried to rewrite the (cloned) repository with git-filter-branch but failed mis
|
|||
* annex log files are stored in .git-annex/ instead of .git-rewrite/t/.git-annex/ so the filter operation misses them
|
||||
|
||||
Any suggestions how to proceed?
|
||||
|
||||
EDIT 3/2/2010
|
||||
I finally got it working for my purposes. Hardest part was preserving the branches while injecting the new `git annex setup` base commit.
|
||||
|
||||
#### Clone repository
|
||||
git clone original migrate
|
||||
cd migrate
|
||||
git checkout mybranch
|
||||
git checkout master
|
||||
git remote rm origin
|
||||
|
||||
#### Inject `git annex setup` base commit and repair branches
|
||||
git symbolic-ref HEAD refs/heads/newroot
|
||||
git rm --cached *
|
||||
git clean -f -d
|
||||
git annex init master
|
||||
echo \*.rpm annex.backend=SHA1 >> .gitattributes
|
||||
git commit -m "store rpms in git annex" .gitattributes
|
||||
git cherry-pick $(git rev-list --reverse master | head -1)
|
||||
git rebase --onto newroot newroot master
|
||||
git rebase --onto master mybranch~1 mybranch
|
||||
git branch -d newroot
|
||||
|
||||
#### Migrate repository
|
||||
mkdir .temp
|
||||
cp .git-annex/* .temp/
|
||||
MYWORKDIR=$(pwd) git filter-branch --tree-filter '
|
||||
mkdir -p .git-annex;
|
||||
cp ${MYWORKDIR}/.temp/* .git-annex/;
|
||||
for rpm in $(git ls-files | grep "\.rpm$"); do
|
||||
echo;
|
||||
git annex add $rpm;
|
||||
annexdest=$(readlink $rpm);
|
||||
if [ -e .git-annex/$(basename $annexdest).log ]; then
|
||||
echo "FOUND $(basename $annexdest).log";
|
||||
else
|
||||
echo "COPY $(basename $annexdest).log";
|
||||
cp ${MYWORKDIR}/.git-annex/$(basename $annexdest).log .git-annex/;
|
||||
cp ${MYWORKDIR}/.git-annex/$(basename $annexdest).log ${MYWORKDIR}/.temp/;
|
||||
fi;
|
||||
ln -sf ${annexdest#../../} $rpm;
|
||||
done;
|
||||
git reset HEAD .git-rewrite;
|
||||
:
|
||||
' -- $(git branch | cut -c 3-)
|
||||
rm -rf .temp
|
||||
git reset --hard
|
||||
|
||||
|
||||
TODO:
|
||||
|
||||
* Find a way to repair branches automatically (detect branch points and run appropriate `git rebase` commands)
|
||||
|
||||
I'll be happy to try any suggestions to improve this migration script.
|
||||
|
||||
P.S. Is there a way to edit comments?
|
||||
|
|
Loading…
Reference in a new issue