summaryrefslogtreecommitdiff
path: root/doc/todo/direct_mode_guard.mdwn
blob: 7322cec63226db044692c30ee9f465bb94922cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Currently [[/direct_mode]] allows the user to point many normally safe
git commands at his foot and pull the trigger. At LCA2013, a git-annex
user suggested modifying direct mode to make this impossible.

One way to do it would be to move the .git directory. Instead, make there
be a .git-annex directory in direct mode repositories. git-annex would know
how to use it, and would be extended to support all known safe git
commands, passing parameters through, and in some cases verifying them.

So, for example, `git annex commit` would run `git commit --git-dir=.git-annex`

However, `git annex commit -a` would refuse to run, or even do something
intelligent that does not involve staging every direct mode file.

----

One source of problems here is that there is some overlap between git-annex
and git commands. Ie, `git annex add` cannot be a passthrough for `git
add`. The git wrapper could instead be another program, or it could be
something like `git annex git add`

--[[Joey]]