More commands work in direct mode repositories: find, whereis, move, copy, drop, log.

These started working, for free, once lookupFile supported direct mode.

yay!!
This commit is contained in:
Joey Hess 2013-01-05 17:16:58 -04:00
parent 1c83b6c439
commit b68eee625f
9 changed files with 15 additions and 16 deletions

View file

@ -14,8 +14,7 @@ import qualified Remote
import Annex.Wanted import Annex.Wanted
def :: [Command] def :: [Command]
def = [notDirect $ def = [withOptions Command.Move.options $ command "copy" paramPaths seek
withOptions Command.Move.options $ command "copy" paramPaths seek
"copy content of files to/from another repository"] "copy content of files to/from another repository"]
seek :: [CommandSeek] seek :: [CommandSeek]

View file

@ -20,7 +20,7 @@ import qualified Option
import Annex.Wanted import Annex.Wanted
def :: [Command] def :: [Command]
def = [notDirect $ withOptions [fromOption] $ command "drop" paramPaths seek def = [withOptions [fromOption] $ command "drop" paramPaths seek
"indicate content of files not currently wanted"] "indicate content of files not currently wanted"]
fromOption :: Option fromOption :: Option

View file

@ -20,7 +20,7 @@ import Types.Key
import qualified Option import qualified Option
def :: [Command] def :: [Command]
def = [notDirect $ noCommit $ withOptions [formatOption, print0Option] $ def = [noCommit $ withOptions [formatOption, print0Option] $
command "find" paramPaths seek "lists available files"] command "find" paramPaths seek "lists available files"]
formatOption :: Option formatOption :: Option

View file

@ -36,7 +36,7 @@ data RefChange = RefChange
type Outputter = Bool -> POSIXTime -> [UUID] -> Annex () type Outputter = Bool -> POSIXTime -> [UUID] -> Annex ()
def :: [Command] def :: [Command]
def = [notDirect $ withOptions options $ def = [withOptions options $
command "log" paramPaths seek "shows location log"] command "log" paramPaths seek "shows location log"]
options :: [Option] options :: [Option]

View file

@ -19,7 +19,7 @@ import Logs.Presence
import Logs.Transfer import Logs.Transfer
def :: [Command] def :: [Command]
def = [notDirect $ withOptions options $ command "move" paramPaths seek def = [withOptions options $ command "move" paramPaths seek
"move content of files to/from another repository"] "move content of files to/from another repository"]
fromOption :: Option fromOption :: Option

View file

@ -15,7 +15,7 @@ import Remote
import Logs.Trust import Logs.Trust
def :: [Command] def :: [Command]
def = [notDirect $ noCommit $ command "whereis" paramPaths seek def = [noCommit $ command "whereis" paramPaths seek
"lists repositories that have file content"] "lists repositories that have file content"]
seek :: [CommandSeek] seek :: [CommandSeek]

2
debian/changelog vendored
View file

@ -3,6 +3,8 @@ git-annex (3.20130105) UNRELEASED; urgency=low
* webapp: Add UI to stop and restart assistant. * webapp: Add UI to stop and restart assistant.
* committer: Fix a file handle leak. * committer: Fix a file handle leak.
* assistant: Make expensive transfer scan work fully in direct mode. * assistant: Make expensive transfer scan work fully in direct mode.
* More commands work in direct mode repositories: find, whereis, move, copy,
drop, log.
-- Joey Hess <joeyh@debian.org> Thu, 03 Jan 2013 14:58:45 -0400 -- Joey Hess <joeyh@debian.org> Thu, 03 Jan 2013 14:58:45 -0400

View file

@ -41,11 +41,9 @@ Otherwise, the main command that's used in direct mode repositories is
`git annex sync`. This automatically adds new files, commits all `git annex sync`. This automatically adds new files, commits all
changed files to git, pushes them out, pulls down any changes, etc. changed files to git, pushes them out, pulls down any changes, etc.
You can also run `git annex get` to transfer the content of files into your `git annex add` and some other commands are not yet supported in direct
direct mode repository. Or if the direct mode repository is a remote of mode repositories. Feel free to try any git annex command though; ones that
some other, regular git-annex repository, you can use commands in the other don't support direct mode will refuse to do anything.
repository like `git annex copy` and `git annex move` to transfer the
contents of files to the direct mode repository.
You can use `git commit --staged`. (But not `git commit -a` .. It'll commit You can use `git commit --staged`. (But not `git commit -a` .. It'll commit
whole large files into git!) whole large files into git!)

View file

@ -269,9 +269,9 @@ subdirectories).
* direct * direct
Switches a repository to use direct mode, where rather than symlinks to Switches a repository to use direct mode, where rather than symlinks to
files, the files are directly present in the repository. Note that many git files, the files are directly present in the repository. Note that most git
and git-annex commands will not work in direct mode; you're mostly commands and some git-annex commands will not work in direct mode; you're
limited to using "git annex sync" and "git annex get". mostly limited to using "git annex sync" and "git annex get".
As part of the switch to direct mode, any changed files will be committed. As part of the switch to direct mode, any changed files will be committed.