summaryrefslogtreecommitdiff
path: root/Seek.hs
Commit message (Collapse)AuthorAge
* assistant: Fix OSX-specific bug that caused the startup scan to try to ↵Gravatar Joey Hess2013-12-18
| | | | follow symlinks to other directories, and add their contents to the annex.
* Allow use of --unused in bare repository.Gravatar Joey Hess2013-11-27
|
* add: Fix reversion in 4.20130827 when adding unlocked files that have not ↵Gravatar Joey Hess2013-10-28
| | | | | | | | | | | | yet been committed. catKeyFileHEAD is still checked too, because when doing a git commit with unlocked files, the file gets staged to the index, so is not typechanged there. (This is also why git annex add foo; git annex unlock foo; git commit -a does not re-annex foo, because there is no indication left that it was added.)
* import: Skip .git directories.Gravatar Joey Hess2013-10-07
|
* import: Preserve top-level directory structure.Gravatar Joey Hess2013-09-25
|
* Fix bug that caused typechanged symlinks to be assumed to be unlocked files, ↵Gravatar Joey Hess2013-08-22
| | | | so they were added to the annex by the pre-commit hook.
* moved AssociatedFile definitionGravatar Joey Hess2013-07-04
|
* --unused: New switch that makes git-annex operate on all data found by the ↵Gravatar Joey Hess2013-07-03
| | | | last run of git annex unused. Supported by fsck, get, move, copy.
* --all for get, move, and copyGravatar Joey Hess2013-07-03
|
* Add --all option, and support it for fsckGravatar Joey Hess2013-07-03
|
* refactorGravatar Joey Hess2013-05-24
|
* fix permission damage (thanks, Windows)Gravatar Joey Hess2013-05-11
|
* git-annex now builds on Windows (doesn't work)Gravatar Joey Hess2013-05-11
|
* hlintGravatar Joey Hess2013-04-03
|
* make adding modified files work on crippled filesystemsGravatar Joey Hess2013-02-20
|
* pre-commit: Update direct mode mappings.Gravatar Joey Hess2013-02-06
| | | | | | | | | | | | | | | | Making the pre-commit hook look at git diff-index to find changed direct mode files and update the mappings works pretty well. One case where it does not work is when a file is git annex added, and then git rmed, and then this is committed. That's a no-op commit, so the hook probably doesn't even run, and it certianly never notices that the file was deleted, so the mapping will still have the original filename in it. For this and other reasons, it's important that the mappings still be treated as possibly inconsistent. Also, the assistant now allows the pre-commit hook to run when in direct mode, so the mappings also get updated there.
* avoid bogus file not found warning on broken symlinkGravatar Joey Hess2013-01-26
| | | | | Not sure why this didn't happen all the time, but the fix is clearly correct and also saves one stat per file.
* optimize pre-commit in direct modeGravatar Joey Hess2013-01-06
|
* Display a warning when a non-existing file or directory is specified.Gravatar Joey Hess2012-11-25
|
* where indentingGravatar Joey Hess2012-11-11
|
* Preferred content path matching bugfix.Gravatar Joey Hess2012-10-17
| | | | | | | When in a subdir, both the normal filepath, and the filepath relative to the top of the git repo are needed for matching. The former for key lookup, and the latter for include/exclude to match against. Previously, key lookup didn't work in this situation.
* fix last zombies in the assistantGravatar Joey Hess2012-10-04
| | | | | Made Git.LsFiles return cleanup actions, and everything waits on processes now, except of course for Seek.
* add routes to pause/start/cancel transfersGravatar Joey Hess2012-08-08
| | | | | | | | | | | | | | | | This commit includes a paydown on technical debt incurred two years ago, when I didn't know that it was bad to make custom Read and Show instances for types. As the routes need Read and Show for Transfer, which includes a Key, and deriving my own Read instance of key was not practical, I had to finally clean that up. So the compact Key read and show functions are now file2key and key2file, and Read and Show are now derived instances. Changed all code that used the old instances, compiler checked. (There were a few places, particularly in Command.Unused, and the test suite where the Show instance continue to be used for legitimate comparisons; ie show key_x == show key_y (though really in a bloom filter))
* add back debug loggingGravatar Joey Hess2012-07-19
| | | | | | | | | | | | | Make Utility.Process wrap the parts of System.Process that I use, and add debug logging to them. Also wrote some higher-level code that allows running an action with handles to a processes stdin or stdout (or both), and checking its exit status, all in a single function call. As a bonus, the debug logging now indicates whether the process is being run to read from it, feed it data, chat with it (writing and reading), or just call it for its side effect.
* fishy commitGravatar Joey Hess2012-06-14
|
* import: New subcommand, pulls files from a directory outside the annex and ↵Gravatar Joey Hess2012-05-31
| | | | | | adds them Use case for this was developed somewhere on the Transiberian Railroad.
* bugfix: Adding a dotfile also caused all non-dotfiles to be added.Gravatar Joey Hess2012-04-08
| | | | | When only a dotfile was specified, the list of non-dotfiles was empty, triggering the fallback behavior of finding all files.
* rekey: New plumbing level command, can be used to change the keys used for ↵Gravatar Joey Hess2012-02-16
| | | | files en masse.
* simplifyGravatar Joey Hess2012-02-14
|
* fix LsFiles.typeChanged pathsGravatar Joey Hess2012-02-14
| | | | | | Passing absolute paths to Command.Add used to work, but after recent changes doesn't. All LsFiles should use relative paths anyway, so fix it there.
* rework git check-attr interfaceGravatar Joey Hess2012-02-13
| | | | | | | | | | | | | | | Now gitattributes are looked up, efficiently, in only the places that really need them, using the same approach used for cat-file. The old CheckAttr code seemed very fragile, in the way it streamed files through git check-attr. I actually found that cad8824852aa0623dc41eac02a9e2bae47d88ec4 was still deadlocking with ghc 7.4, at the end of adding a lot of files. This should fix that problem, and avoid future ones. The best part is that this removes withAttrFilesInGit and withNumCopies, which were complicated Seek methods, as well as simplfying the types for several other Seek methods that had a Backend tupled in.
* rename readMaybe to readishGravatar Joey Hess2012-01-23
| | | | a stricter (but also partial) readMaybe is getting added to base
* tweaksGravatar Joey Hess2012-01-11
|
* log: Add --gource mode, which generates output usable by gource.Gravatar Joey Hess2012-01-07
| | | | | As part of this, I fixed up how log was getting the descriptions of remotes.
* log --before=dateGravatar Joey Hess2012-01-06
|
* tweakGravatar Joey Hess2012-01-06
|
* look up --to and --from remote names only onceGravatar Joey Hess2012-01-06
| | | | This will speed up commands like move and drop.
* more command-specific optionsGravatar Joey Hess2012-01-06
| | | | | | | | | | | | | | | | | | | | | Made --from and --to command-specific options. Added generic storage for values of command-specific options, which allows removing some of the special case fields in AnnexState. (Also added generic storage for command-specific flags, although there are not yet any.) Note that this storage uses a Map, so repeatedly looking up the same value is slightly more expensive than looking up an AnnexState field. But, the value can be looked up once in the seek stage, transformed as necessary, and passed in a closure to the start stage, and this avoids that overhead. Still, I'm hesitant to use this for things like force or fast flags. It's probably best to reserve it for flags that are only used by a few commands, or options like --from and --to that it's important only be allowed to be used with commands that implement them, to avoid user confusion.
* no implicit dotfiles in addGravatar Joey Hess2012-01-03
| | | | | | | | | | | | | | | | | | | | | | | | Dotfiles, and files inside dotdirs are not added by "git annex add" unless the dotfile or directory is explicitly listed. So "git annex add ." will add all untracked files in the current directory except for those in dotdirs. One reason for this is that it will make git-annex more usable with vcsh, where you don't want "vcsh big annex add" to check in all the dotfiles that are already versioned in other repositories. (If you're using vcsh for repos that contain non-dotfiles, this won't help, and you'll need to .gitignore such things, but this will cover the common case.) A more general reason why this seems like a good idea is the same reason ls ignores dotfiles, just the unix convention that they are cruft that is kept out of the way most of the time. All the other git-annex commands still do deal with any dotfiles that do get into the annex. This seemed right because if I've gone to the trouble to add a dotfile, I will want "git annex get ." to get it along with everything else.
* dead codeGravatar Joey Hess2012-01-03
|
* split out two more Git modulesGravatar Joey Hess2011-12-13
|
* lintGravatar Joey Hess2011-11-11
|
* better limiting of start actions to only run whenAnnexedGravatar Joey Hess2011-11-10
| | | | | Mostly only refactoring, but this does remove one redundant stat of the symlink by copy.
* reorder repo parameters lastGravatar Joey Hess2011-11-08
| | | | | | | | | | | | | Many functions took the repo as their first parameter. Changing it consistently to be the last parameter allows doing some useful things with currying, that reduce boilerplate. In particular, g <- gitRepo is almost never needed now, instead use inRepo to run an IO action in the repo, and fromRepo to get a value from the repo. This also provides more opportunities to use monadic and applicative combinators.
* refactoring and cleanupGravatar Joey Hess2011-10-30
No code changes.