diff options
author | 2013-11-07 14:12:13 -0400 | |
---|---|---|
committer | 2013-11-07 14:12:13 -0400 | |
commit | 40e10e3312d9127aff15a3dc22ea1a23499999cf (patch) | |
tree | d515a2c17604a151185577140b37bba3366696af /doc/todo | |
parent | 37d9a6a9f477ee66f810cd5f4d3320734fca0c11 (diff) | |
parent | ff03a89236956904b617e02468102e5d390306bd (diff) |
Merge branch 'directguard'
Diffstat (limited to 'doc/todo')
-rw-r--r-- | doc/todo/direct_mode_guard.mdwn | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/todo/direct_mode_guard.mdwn b/doc/todo/direct_mode_guard.mdwn index 6aab353fa..bb7f90897 100644 --- a/doc/todo/direct_mode_guard.mdwn +++ b/doc/todo/direct_mode_guard.mdwn @@ -77,6 +77,29 @@ This seems really promising. But of course, git-annex has its own set of behaviors in a bare repo, so will need to recognise that this repo is not really bare, and avoid them. +> [[done]]!! --[[Joey]] + (Git may also have some bare repo behaviors that are unwanted. One example is that git allows pushes to the current branch in a bare repo, even when `receive.denyCurrentBranch` is set.) + +> This is indeed a problem. Indeed, `git annex sync` successfully +> pushes changes to the master branch of a fake bare direct mode repo. +> +> And then, syncing in the repo that was pushed to causes the changes +> that were pushed to the master branch to get reverted! This happens +> because sync commits; commit sees that files are staged in index +> differing from the (pushed) master, and commits the "changes" +> which revert it. +> +> Could fix this using an update hook, to reject the updated of the master +> branch. However, won't work on crippled filesystems! (No +x bit) +> +> Could make git annex sync detect this. It could reset the master +> branch to the last one committed, before committing. Seems very racy +> and hard to get right! +> +> Could make direct mode operate on a different branch, like +> `annex/direct/master` rather than `master`. Avoid pushing to that +> branch (`git annex sync` can map back from it to `master` and push there +> instead). A bit clumsy, but works. |