39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
Past two days have been spent making [[todo/import_tree]] interoperate
|
|
safely with `git annex export`. This was more complicated and needed more
|
|
methods to be added to the remote API than I had expected.
|
|
|
|
At this point, the directory special remote's implementation is no longer
|
|
an unsafe prototype, but detects conflicting file modifications and
|
|
avoids overwriting them when exporting to the directory.
|
|
|
|
Here it is in action:
|
|
|
|
joey@darkstar:/tmp/testrepo> git annex unlock foo
|
|
joey@darkstar:/tmp/testrepo> echo version from git > foo
|
|
joey@darkstar:/tmp/testrepo> echo version from special remote > ../dir/foo
|
|
joey@darkstar:/tmp/testrepo> git annex add foo
|
|
joey@darkstar:/tmp/testrepo> git commit -m add
|
|
joey@darkstar:/tmp/testrepo> git annex export master --to dir
|
|
unexport dir foo failed
|
|
export dir foo failed
|
|
(recording state in git...)
|
|
git-annex: export: 2 failed
|
|
joey@darkstar:/tmp/testrepo> git annex import master --from dir
|
|
import dir ok
|
|
update refs/remotes/dir/master ok
|
|
(recording state in git...)
|
|
joey@darkstar:/tmp/testrepo> git merge dir/master
|
|
Auto-merging foo
|
|
CONFLICT (content): Merge conflict in foo
|
|
Automatic merge failed; fix conflicts and then commit the result.
|
|
joey@darkstar:/tmp/testrepo> echo merged version > foo
|
|
joey@darkstar:/tmp/testrepo> git annex add foo
|
|
joey@darkstar:/tmp/testrepo> git commit -m resolved
|
|
joey@darkstar:/tmp/testrepo> git annex export master --to dir
|
|
unexport dir foo ok
|
|
export dir foo ok
|
|
(recording state in git...)
|
|
|
|
The feature is close to being mergeable to master now, but still needs some
|
|
work on the progress display of `git annex import`, and on supporting
|
|
imports from the same special remote to different git repos.
|