This commit is contained in:
parent
e8839a4357
commit
4de1aeacc2
1 changed files with 43 additions and 0 deletions
|
@ -0,0 +1,43 @@
|
|||
When a changed version of a file is created after `git annex unlock && change-file && git annex add` the old file inside `.git/annex/objects` is retained and cannot be removed with `git annex drop`.
|
||||
When I checkout a commit which has the old version of the file I can easily `git annex drop` it and then it also vanishes from `.git/annex/objects`.
|
||||
|
||||
Look at the following script which reproduces the behavior.
|
||||
Is this behavior intended?
|
||||
|
||||
My use case is a big music library which does not fit onto my laptop.
|
||||
So for updating the metadata in the files I basically run `git annex get <folder> && git annex unlock <folder>` then update all files in that folder and then run `git annex add <folder> && git commit && git copy --to remote && git annex drop <folder>`.
|
||||
This works perfectly but the problem is, that all old versions of changed files are retained in `.git/annex/objects` which in no time filled my drive to 100%.
|
||||
|
||||
The script:
|
||||
|
||||
#!/usr/bin/env bash
|
||||
cd /tmp
|
||||
git init client
|
||||
cd client
|
||||
git annex init
|
||||
git annex numcopies 1
|
||||
dd if=/dev/zero of=zero bs=1M count=4
|
||||
git annex add zero
|
||||
git commit -m 'Checkin'
|
||||
cd ..
|
||||
git clone client remote
|
||||
cd client
|
||||
git remote add remote ../remote
|
||||
git annex sync
|
||||
git annex copy --to remote
|
||||
git annex drop zero
|
||||
git annex get zero
|
||||
git annex unlock zero
|
||||
echo test >> zero
|
||||
git annex add zero
|
||||
git commit -m 'Update'
|
||||
git annex copy --to remote
|
||||
git annex drop zero
|
||||
cd ..
|
||||
tree {client,remote}/.git/annex/objects
|
||||
cd client
|
||||
git checkout master~
|
||||
git annex drop zero
|
||||
git checkout master
|
||||
cd ..
|
||||
tree {client,remote}/.git/annex/objects
|
Loading…
Reference in a new issue