3e2f1f73cb
Directory special remotes with importtree=yes have changed to once more
take inodes into account. This will cause extra work when importing from a
directory on a FAT filesystem that changes inodes on every mount.
To avoid that extra work, set ignoreinodes=yes when initializing a new
directory special remote, or change the configuration of your existing
remote: git-annex enableremote foo ignoreinodes=yes
This will mean a one-time re-import of all contents from every directory
special remote due to the changed setting.
73df633a62
thought
it was too unlikely that there would be modifications that the inode number
was needed to notice. That was probably right; it's very unlikely that a
file will get modified and end up with the same size and mtime as before.
But, what was not considered is that a program like NextCloud might write
two files with different content so closely together that they share the
mtime. The inode is necessary to detect that situation.
Sponsored-by: Max Thoursie on Patreon
53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
This special remote type stores file contents in directory.
|
|
|
|
One use case for this would be if you have a removable drive that
|
|
you want to use to sneakernet files between systems (possibly with
|
|
[[encrypted|encryption]] contents). Just set up both systems to use
|
|
the drive's mountpoint as a directory remote.
|
|
|
|
Note that directory remotes have a special directory structure
|
|
(by design, the same as the [[rsync|rsync]] remote).
|
|
If you just want two copies of your repository with the files "visible"
|
|
in the tree in both, the directory special remote is not what you want.
|
|
Instead, you should use a regular `git clone` of your git-annex repository.
|
|
|
|
## configuration
|
|
|
|
These parameters can be passed to `git annex initremote` to configure the
|
|
remote:
|
|
|
|
* `directory` - The path to the directory where the files should be stored
|
|
for the remote. The directory must already exist. Typically this will
|
|
be an empty directory, or a directory already used as a directory remote.
|
|
|
|
* `encryption` - One of "none", "hybrid", "shared", or "pubkey".
|
|
See [[encryption]].
|
|
|
|
* `keyid` - Specifies the gpg key to use for [[encryption]].
|
|
|
|
* `chunk` - Enables [[chunking]] when storing large files.
|
|
|
|
* `chunksize` - Deprecated version of chunk parameter above.
|
|
Do not use for new remotes. It is not safe to change the chunksize
|
|
setting of an existing remote.
|
|
|
|
* `exporttree` - Set to "yes" to make this special remote usable
|
|
by [[git-annex-export]]. It will not be usable as a general-purpose
|
|
special remote.
|
|
|
|
* `importtree` - Set to "yes" to make this special remote usable
|
|
by [[git-annex-import]]. It will not be usable as a general-purpose
|
|
special remote.
|
|
|
|
* `ignoreinodes` - Usually when importing, the inode numbers
|
|
of files are used to detect when files have changed. Since some
|
|
filesystems generate new inode numbers each time they are mounted,
|
|
that can lead to extra work being done. Setting this to "yes" will
|
|
ignore the inode numbers and so avoid that extra work.
|
|
This should not be used when the filesystem has stable inode numbers,
|
|
as it does risk confusing two files that have the same size and mtime.
|
|
|
|
Setup example:
|
|
|
|
# git annex initremote usbdrive type=directory directory=/media/usbdrive/ encryption=none
|
|
# git annex describe usbdrive "usb drive on /media/usbdrive/"
|