summaryrefslogtreecommitdiff
path: root/doc/design/assistant/blog/day_151__direct_mode_toggle.mdwn
blob: c0b3f32459b13210ef5b74a65fad9a796ffba238 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Built `git annex direct` and `git annex indirect` to toggle back and forth
between direct mode. Made `git annex status` show if the repository is in
direct mode. Now *only* merging is needed for direct mode to be basically
usable. 

I can do a little demo now. Pay attention to the "@" ls shows at the end
of symlinks.

	joey@gnu:~/tmp/bench/rdirect>ls
	myfile@  otherfile@
	joey@gnu:~/tmp/bench/rdirect>git annex find
	otherfile
	# So, two files, only one present in this repo.

	joey@gnu:~/tmp/bench/rdirect>git annex direct
	commit  
	# On branch master
	# Your branch is ahead of 'origin/master' by 7 commits.
	#
	nothing to commit (working directory clean)
	ok
	direct myfile ok
	direct otherfile ok
	direct  ok

	joey@gnu:~/tmp/bench/rdirect>ls
	myfile@  otherfile
	# myfile is still a broken symlink because we don't have its content
	joey@gnu:~/tmp/bench/rdirect>git annex get myfile
	get myfile (from origin...) ok
	(Recording state in git...)
	joey@gnu:~/tmp/bench/rdirect>ls
	myfile  otherfile

	joey@gnu:~/tmp/bench/rdirect>echo "look mom, no symlinks" >> myfile
	joey@gnu:~/tmp/bench/rdirect>git annex sync
	add myfile (checksum...) ok
	commit  
	(Recording state in git...)
	[master 0e8de9b] git-annex automatic sync
	...
	ok

	joey@gnu:~/tmp/bench/rdirect>git annex indirect
	commit  ok
	indirect myfile ok
	indirect otherfile ok
	indirect  ok
	joey@gnu:~/tmp/bench/rdirect>ls
	myfile@  otherfile@

I'd like `git annex direct` to set the repository to untrusted, but
I didn't do it. Partly because having `git annex indirect` set it back to
semitrusted seems possibly wrong -- the user might not trust a repo even in
indirect mode. Or might fully trust it. The docs will encourage users to
set direct mode repos to untrusted -- in direct mode you're operating
without large swathes of git-annex's carefully constructed safety net.
(When the assistant later uses direct mode, it'll untrust the repository
automatically.)