git annex add -u now supported, analagous to git add -u

Unlike git add -u, git annex add -u does not update the index for files
removed from the working tree. But then, "git add ." stages removals,
and "git annex add ." does not, so that's an existing divergence.

Seems that --update --batch would need to run git ls-files once per line of
batch input, which would surely be too slow, so just throw an error for
that.

This commit was supported by the NSF-funded DataLad project.
This commit is contained in:
Joey Hess 2017-04-07 15:55:34 -04:00
parent 57e923b712
commit 6896ac06e8
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
5 changed files with 28 additions and 3 deletions

View file

@ -19,6 +19,7 @@ git-annex (6.20170322) UNRELEASED; urgency=medium
ignored, a reversion introduced in 6.20160527.
* gcrypt: Support re-enabling to change eg, encryption parameters.
This was never supported before.
* git annex add -u now supported, analagous to git add -u
-- Joey Hess <id@joeyh.name> Wed, 29 Mar 2017 12:41:46 -0400

View file

@ -1,6 +1,6 @@
{- git-annex command
-
- Copyright 2010, 2013 Joey Hess <id@joeyh.name>
- Copyright 2010-2017 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU GPL version 3 or higher.
-}
@ -30,6 +30,7 @@ data AddOptions = AddOptions
{ addThese :: CmdParams
, includeDotFiles :: Bool
, batchOption :: BatchMode
, updateOnly :: Bool
}
optParser :: CmdParamsDesc -> Parser AddOptions
@ -40,6 +41,11 @@ optParser desc = AddOptions
<> help "don't skip dotfiles"
)
<*> parseBatchOption
<*> switch
( long "update"
<> short 'u'
<> help "only update tracked files"
)
seek :: AddOptions -> CommandSeek
seek o = allowConcurrentOutput $ do
@ -52,10 +58,14 @@ seek o = allowConcurrentOutput $ do
)
)
case batchOption o of
Batch -> batchFiles gofile
Batch
| updateOnly o ->
giveup "--update --batch is not supported"
| otherwise -> batchFiles gofile
NoBatch -> do
let go a = a gofile (addThese o)
go (withFilesNotInGit (not $ includeDotFiles o))
unless (updateOnly o) $
go (withFilesNotInGit (not $ includeDotFiles o))
go withFilesMaybeModified
unlessM (versionSupportsUnlockedPointers <||> isDirect) $
go withFilesOldUnlocked

View file

@ -56,6 +56,11 @@ annexed content, and other symlinks.
Adds multiple files in parallel. This may be faster.
For example: `-J4`
* `--update` `-u`
Like `git add --update`, this does not add new files, but any updates
to tracked files will be added to the index.
* `--json`
Enable JSON output. This is intended to be parsed by programs that use

View file

@ -1,3 +1,5 @@
to supplement 'git add -u' behavior -- to add only updated (tracked only, no untracked) files to be committed. ATM all files would be added, including untracked.
[[!meta author=yoh]]
> [[done]]

View file

@ -0,0 +1,7 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2017-04-07T19:41:02Z"
content="""
Good idea, adding.
"""]]