72 lines
3.4 KiB
Markdown
72 lines
3.4 KiB
Markdown
Tuesday was spent dealing with lock files. Turned out there were some bugs
|
|
in the `annex.pidlock` configuration that prevented it from working, and
|
|
could even lead to data loss.
|
|
|
|
And then more lock files today, since I needed to lock git's index file the
|
|
same way git does. This involved finding out how to emulate `O_EXCL` under
|
|
Windows. Urgh.
|
|
|
|
Finally got back to working on [[design/adjusted_branches]] today. And, I've just
|
|
gotten syncing of commits from adjusted branches back to the orginal branch
|
|
working! Time for short demo of what I've been building for the past couple
|
|
weeks:
|
|
|
|
joey@darkstar:~/tmp/demo>ls -l
|
|
total 4
|
|
lrwxrwxrwx 1 joey joey 190 Mar 3 17:09 bigfile -> .git/annex/objects/zx/X8/SHA256E-s1048576--44ee9fdd91d4bc567355f8b2becd5fe137b9e3aafdfe804341ce2bcc73b8013f/SHA256E-s1048576--44ee9fdd91d4bc567355f8b2becd5fe137b9e3aafdfe804341ce2bcc73b8013f
|
|
joey@darkstar:~/tmp/demo>git annex adjust
|
|
Switched to branch 'adjusted/master(unlocked)'
|
|
ok
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>ls -l
|
|
total 4
|
|
-rw-r--r-- 1 joey joey 1048576 Mar 3 17:09 bigfile
|
|
|
|
Entering the adjusted branch unlocked all the files.
|
|
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git mv bigfile newname
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git commit -m rename
|
|
[adjusted/master(unlocked) 29e1bc8] rename
|
|
1 file changed, 0 insertions(+), 0 deletions(-)
|
|
rename bigfile => newname (100%)
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git log --pretty=oneline
|
|
29e1bc835080298bbeeaa4a9faf42858c050cad5 rename
|
|
a195537dc5beeee73fc026246bd102bae9770389 git-annex adjusted branch
|
|
5dc1d94d40af4bf4a88b52805e2a3ae855122958 add
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git log --pretty=oneline master
|
|
5dc1d94d40af4bf4a88b52805e2a3ae855122958 add
|
|
|
|
The commit was made on top of the commit that generated the adjusted branch.
|
|
It's not yet reached the master branch.
|
|
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git annex sync
|
|
commit ok
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git log --pretty=oneline
|
|
b60c5d6dfe55107431b80382596f14f4dcd259c9 git-annex adjusted branch
|
|
9c36848f078a2bb7a304010e962a2b7318c0877c rename
|
|
5dc1d94d40af4bf4a88b52805e2a3ae855122958 add
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git log --pretty=oneline master
|
|
9c36848f078a2bb7a304010e962a2b7318c0877c rename
|
|
5dc1d94d40af4bf4a88b52805e2a3ae855122958 add
|
|
|
|
Now the commit has reached master. Notice how the history of the adjusted
|
|
branch was rebased on top of the updated master branch as well.
|
|
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>ls -l
|
|
total 1024
|
|
-rw-r--r-- 1 joey joey 1048576 Mar 3 17:09 newname
|
|
joey@darkstar:~/tmp/demo#master(unlocked)>git checkout master
|
|
Switched to branch 'master'
|
|
joey@darkstar:~/tmp/demo>ls -l
|
|
total 4
|
|
lrwxrwxrwx 1 joey joey 190 Mar 3 17:12 newname -> .git/annex/objects/zx/X8/SHA256E-s1048576--44ee9fdd91d4bc567355f8b2becd5fe137b9e3aafdfe804341ce2bcc73b8013f/SHA256E-s1048576--44ee9fdd91d4bc567355f8b2becd5fe137b9e3aafdfe804341ce2bcc73b8013f
|
|
|
|
Just as we'd want, the file is locked in master, and unlocked in
|
|
the adjusted branch.
|
|
|
|
(Not shown: git annex sync will also merge in and adjust changes from remotes.)
|
|
|
|
So, that all looks great! But, it's cheating a bit, because it locks
|
|
all files when updating the master branch. I need to make it remember,
|
|
somehow, when files were originally unlocked, and keep them unlocked. Also
|
|
want to implement other adjustments, like hiding files whose content is not
|
|
present.
|