hard links on windows

* annex.thin and annex.hardlink are now supported on Windows.
* unannex --fast now makes hard links on Windows.
This commit is contained in:
Joey Hess 2016-04-08 15:25:32 -04:00
parent 251405eca2
commit cf06dac2b8
Failed to extract signature
8 changed files with 29 additions and 26 deletions

View file

@ -280,9 +280,20 @@ into adjusted view worktrees.]
to checkout the adjusted branch some other way. Maybe generalize so this
more efficient checkout is available as a git-annex command?
* There are potentially races in code that assumes a branch like
master is not being changed by someone else. In particular,
propigateAdjustedCommits rebases the adjusted branch on top of master.
That is called by sync. The assumption is that any changes in master
have already been handled by updateAdjustedBranch. But, if another remote
pushed a new master at just the right time, the adjusted branch could be
rebased on top of a master that it doesn't incorporate, which is wrong.
master is not being changed by someone else.
In particular, propigateAdjustedCommits rebases the adjusted branch on
top of master. That is called by sync. The assumption is that any changes
in master have already been handled by updateAdjustedBranch. But, if
another remote pushed a new master at just the right time, the adjusted
branch could be rebased on top of a master that it doesn't incorporate,
which is wrong.
Best fix seems to be to use a hidden ref, like refs/annex/adjusted/master
and copy master's ref to it when entering the view branch. Then, make
all adjustments via that ref, and propigate back to refs/heads/master.
It's fine to overwrite changes that were pushed to master when
propigating from the adjusted branch. Synced changes also go to
synced/master so won't be lost. Pushes not made using git-annex sync
of master are not really desired, just a possibility.

View file

@ -143,7 +143,7 @@ match the new setting:
git annex fix
Note that setting annex.thin only has any effect on systems that support
hard links. Ie, not Windows, and not FAT filesystems.
hard links. It is supported on Windows, but not on FAT filesystems.
## tradeoffs