summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-04-08 15:25:32 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-04-08 15:25:32 -0400
commit9e65dd757f9fe8e031ea936ce4e2a8cb998f7f83 (patch)
tree7b6e0c509838db15e079f57f176f5902e65508c5 /doc
parentfdfd56c647d685ad5618917341db0b7c97e1b63a (diff)
hard links on windows
* annex.thin and annex.hardlink are now supported on Windows. * unannex --fast now makes hard links on Windows.
Diffstat (limited to 'doc')
-rw-r--r--doc/design/adjusted_branches.mdwn23
-rw-r--r--doc/tips/unlocked_files.mdwn2
2 files changed, 18 insertions, 7 deletions
diff --git a/doc/design/adjusted_branches.mdwn b/doc/design/adjusted_branches.mdwn
index e94439d66..75ece6e99 100644
--- a/doc/design/adjusted_branches.mdwn
+++ b/doc/design/adjusted_branches.mdwn
@@ -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.
diff --git a/doc/tips/unlocked_files.mdwn b/doc/tips/unlocked_files.mdwn
index cc9972f9e..20605b612 100644
--- a/doc/tips/unlocked_files.mdwn
+++ b/doc/tips/unlocked_files.mdwn
@@ -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