a few updates I forgot to make yesterday as I refined my design
This commit is contained in:
parent
9ca38f4eda
commit
aad6561eea
1 changed files with 13 additions and 8 deletions
|
@ -21,6 +21,15 @@ files to free up space, or for configuring a repository to only want to get
|
||||||
a subset of files in the first place. Some of this could be added to it
|
a subset of files in the first place. Some of this could be added to it
|
||||||
I suppose.
|
I suppose.
|
||||||
|
|
||||||
|
I also noticed that git-lfs uses twice the disk space, at least when
|
||||||
|
initially adding files. It keep a copy of the file in .git/lfs/objects/,
|
||||||
|
in addition to the copy in the working tree. That copy seems to be
|
||||||
|
necessary due to the way git smudge filters work, to avoid data loss. Of
|
||||||
|
course, git-annex manages to avoid that duplication when using symlinks,
|
||||||
|
and its direct mode also avoids that duplication (at the cost of some
|
||||||
|
robustness). I'd like to keep git-annex's single local copy feature
|
||||||
|
if possible.
|
||||||
|
|
||||||
## replacing direct mode
|
## replacing direct mode
|
||||||
|
|
||||||
Anyway, as smudge/clean filters stand now, they can't be used to set up
|
Anyway, as smudge/clean filters stand now, they can't be used to set up
|
||||||
|
@ -29,13 +38,7 @@ think up a design that uses smudge/clean filters to cover the same use
|
||||||
cases that direct mode covers now.
|
cases that direct mode covers now.
|
||||||
|
|
||||||
Thanks to the clean filter, adding a file with `git add` would check in a
|
Thanks to the clean filter, adding a file with `git add` would check in a
|
||||||
small file that points to the git-annex object. When a file has been added
|
small file that points to the git-annex object.
|
||||||
this way, the file in the work tree remains the only copy of the object
|
|
||||||
until you use git-annex to copy it to another repository. So if you modify
|
|
||||||
the work tree file, you can lose the old version of the object.
|
|
||||||
|
|
||||||
This is analagous to how direct mode works now, and it avoids needing to
|
|
||||||
store 2 copies of every file in the local repository.
|
|
||||||
|
|
||||||
In the same repository, you could also use `git annex add` to check
|
In the same repository, you could also use `git annex add` to check
|
||||||
in a git-annex symlink, which would protect the object from modification,
|
in a git-annex symlink, which would protect the object from modification,
|
||||||
|
@ -44,7 +47,9 @@ could switch a file between those two modes.
|
||||||
|
|
||||||
So this allows mixing directly writable annexed files and locked down
|
So this allows mixing directly writable annexed files and locked down
|
||||||
annexed files in the same repository. All regular git commands and all
|
annexed files in the same repository. All regular git commands and all
|
||||||
git-annex commands can be used on both sorts of files.
|
git-annex commands can be used on both sorts of files. Workflows could
|
||||||
|
develop where a file starts out unlocked, but once it's done, is locked to
|
||||||
|
prevent accidental edits and archived away or published.
|
||||||
|
|
||||||
That's much more flexible than the current direct mode, and I think it will
|
That's much more flexible than the current direct mode, and I think it will
|
||||||
be able to be implemented in a simpler, more scalable, and robust way too.
|
be able to be implemented in a simpler, more scalable, and robust way too.
|
||||||
|
|
Loading…
Add table
Reference in a new issue