git-annex/Annex
Joey Hess 39ebfa1a2e pre-commit: Update metadata when committing changes to annexed files within a view.
So the user can now switch to a view and then move files around within it
to manage metadata. For example, moving a file into a new directory
when in the tags=* view adds a tag to it.

Implementation is fairly efficient. One diff-index, which is no more
expensive than the first stage of a git commit, followed by possibly
some cat-file --batch traffic to find the key (when deleting a file).
Very similar to what's done in direct mode when committing. And like
direct mode when updating the WC after a merge, it has to buffer the
diff-tree values in order to make 2 passes over them.

When not in a view, pre-commit now does one extra git symbolic-ref,
which is tiny overhead.

This commit was sponsored by Andrew Eskridge.
2014-02-19 14:17:58 -04:00
..
Branch add metadata command to get/set metadata 2014-02-12 21:30:33 -04:00
Content random hlint (to give the autobuilder something new to build) 2014-02-11 00:41:19 -04:00
Direct fix reversion in relative paths to local remotes of direct mode repos 2013-11-26 19:33:26 -04:00
Branch.hs remove Read instance for Ref 2014-02-19 01:19:57 -04:00
BranchState.hs remove git-annex branch read cache 2012-10-19 14:25:15 -04:00
CatFile.hs Add plumbing-level lookupkey command. 2013-12-15 14:02:23 -04:00
CheckAttr.hs finished where indentation changes 2012-12-13 00:24:19 -04:00
CheckIgnore.hs hlint 2013-09-25 03:09:06 -04:00
Content.hs random hlint (to give the autobuilder something new to build) 2014-02-11 00:41:19 -04:00
Direct.hs remove Read instance for Ref 2014-02-19 01:19:57 -04:00
Drop.hs remove some monkey faces 2014-02-01 17:14:38 -04:00
Environment.hs hlint 2013-09-25 03:09:06 -04:00
Exception.hs rework annexed object locking in direct mode & support Windows 2014-01-28 16:43:11 -04:00
FileMatcher.hs limiting files based on metadata 2014-02-13 02:24:30 -04:00
Hook.hs refactored hook setup 2013-11-05 15:29:56 -04:00
Index.hs add git annex view command 2014-02-18 18:22:20 -04:00
Init.hs random hlint (to give the autobuilder something new to build) 2014-02-11 00:41:19 -04:00
Journal.hs use locking on Windows 2014-01-28 14:42:03 -04:00
Link.hs add git annex view command 2014-02-18 18:22:20 -04:00
LockPool.hs use locking on Windows 2014-01-28 14:42:03 -04:00
Path.hs move programPath out of Config.Files to Annex.Path 2013-11-24 16:03:03 -04:00
Perms.hs Ensure execute bit is set on directories when core.sharedrepsitory is set. 2013-11-18 18:13:09 -04:00
Queue.hs type based git config handling for remotes 2013-01-01 13:58:14 -04:00
Quvi.hs hlint 2013-09-25 03:09:06 -04:00
ReplaceFile.hs Fix a few bugs involving filenames that are at or near the filesystem's maximum filename length limit. 2013-07-30 19:18:29 -04:00
Ssh.hs random hlint (to give the autobuilder something new to build) 2014-02-11 00:41:19 -04:00
TaggedPush.hs remove Read instance for Ref 2014-02-19 01:19:57 -04:00
Url.hs Send a git-annex user-agent when downloading urls. 2013-09-28 14:35:21 -04:00
UUID.hs automatically derive an annex-uuid from a gcrypt-uuids 2013-09-05 16:02:39 -04:00
Version.hs Auto-upgrade v3 indirect repos to v5 with no changes. This also fixes a problem when a direct mode repo was somehow set to v3 rather than v4, and so the automatic direct mode upgrade to v5 was not done. 2013-12-29 13:06:23 -04:00
View.hs pre-commit: Update metadata when committing changes to annexed files within a view. 2014-02-19 14:17:58 -04:00
Wanted.hs fix transfers of key with no associated file 2014-01-23 16:44:02 -04:00