Added a comment
This commit is contained in:
parent
4cd96ad2db
commit
e2e4096a28
1 changed files with 60 additions and 0 deletions
|
@ -0,0 +1,60 @@
|
|||
[[!comment format=mdwn
|
||||
username="tyger"
|
||||
ip="80.66.20.180"
|
||||
subject="comment 2"
|
||||
date="2011-03-01T14:07:50Z"
|
||||
content="""
|
||||
My current workflow looks like this (I'm still experimenting):
|
||||
|
||||
### Create backup clone for migration
|
||||
|
||||
git clone original migrate
|
||||
cd migrate
|
||||
for branch in $(git branch -a | grep remotes/origin | grep -v HEAD); do git checkout --track $branch; done
|
||||
|
||||
### Inject git annex initialization at repository base
|
||||
|
||||
git symbolic-ref HEAD refs/heads/newroot
|
||||
git rm --cached *.rpm
|
||||
git clean -f -d
|
||||
git annex init master
|
||||
git cherry-pick $(git rev-list --reverse master | head -1)
|
||||
git rebase --onto newroot newroot master
|
||||
git rebase master mybranch # how to automate this for all branches?
|
||||
git branch -d newroot
|
||||
|
||||
### Start migration with tree filter
|
||||
|
||||
echo \*.rpm annex.backend=SHA1 > .git/info/attributes
|
||||
MYWORKDIR=$(pwd) git filter-branch --tree-filter ' \
|
||||
if [ ! -d .git-annex ]; then \
|
||||
mkdir .git-annex; \
|
||||
cp ${MYWORKDIR}/.git-annex/uuid.log .git-annex/; \
|
||||
cp ${MYWORKDIR}/.gitattributes .; \
|
||||
fi
|
||||
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/; \
|
||||
fi; \
|
||||
ln -sf ${annexdest#../../} $rpm; \
|
||||
done; \
|
||||
git reset HEAD .git-rewrite; \
|
||||
: \
|
||||
' -- $(git branch | cut -c 3-)
|
||||
rm -rf .temp
|
||||
git reset --hard
|
||||
|
||||
|
||||
There are still some drawbacks:
|
||||
|
||||
* git history shows that git annex log files are modified with each checkin
|
||||
* branches have to be rebased manually before starting migration
|
||||
|
||||
|
||||
"""]]
|
Loading…
Reference in a new issue