summaryrefslogtreecommitdiff
path: root/Command
Commit message (Collapse)AuthorAge
* separate operationsGravatar Joey Hess2011-12-10
|
* sync: New command that synchronises the local repository and default remote, ↵Gravatar Joey Hess2011-12-09
| | | | by running git commit, pull, and push for you.
* some work on avoiding partial functionsGravatar Joey Hess2011-12-09
| | | | | There are still hundreds of places that use partial functions head, tail, init, and last.
* inverted logicGravatar Joey Hess2011-12-09
|
* cleanupGravatar Joey Hess2011-12-09
|
* unannex improvementsGravatar Joey Hess2011-12-09
| | | | | | | | | Added files don't have to be committed before they can be unannexed. unannex no longer commits existing staged changes unannex of the last file in a directory now works, before it failed because git rm deleted the directory out from under it,
* factor out a stopUnlessGravatar Joey Hess2011-12-09
| | | | code melt for lunch
* hslintGravatar Joey Hess2011-12-09
|
* add: If interrupted, add can leave files converted to symlinks but not yet ↵Gravatar Joey Hess2011-12-07
| | | | added to git. Running the add again will now clean up this situtation.
* map: Fix a failure to detect a loop when both repositories are local and ↵Gravatar Joey Hess2011-12-04
| | | | refer to each other with relative paths.
* addGravatar Joey Hess2011-12-02
|
* fix display of dead repositories in statusGravatar Joey Hess2011-12-02
|
* add support for using hashDirLower in addition to hashDirMixedGravatar Joey Hess2011-11-28
| | | | | | | | | | Supporting multiple directory hash types will allow converting to a different one, without a flag day. gitAnnexLocation now checks which of the possible locations have a file. This means more statting of files. Several places currently use gitAnnexLocation and immediately check if the returned file exists; those need to be optimised.
* support .git/annex on a different disk than the rest of the repoGravatar Joey Hess2011-11-28
| | | | | | | | | | | | | | | | | | The only fully supported thing is to have the main repository on one disk, and .git/annex on another. Only commands that move data in/out of the annex will need to copy it across devices. There is only partial support for putting arbitrary subdirectories of .git/annex on different devices. For one thing, but this can require more copies to be done. For example, when .git/annex/tmp is on one device, and .git/annex/journal on another, every journal write involves a call to mv(1). Also, there are a few places that make hard links between various subdirectories of .git/annex with createLink, that are not handled. In the common case without cross-device, the new moveFile is actually faster than renameFile, avoiding an unncessary stat to check that a file (not a directory) is being moved. Of course if a cross-device move is needed, it is as slow as mv(1) of the data.
* Bugfix: dropunused did not drop keys with two spaces in their name.Gravatar Joey Hess2011-11-27
|
* find: Support --print0Gravatar Joey Hess2011-11-22
| | | | | | | | | | | It would be nice if command-specific options were supported. The first difficulty is that which command is being called is not known until after getopt; but that could be worked around by finding the first non-dashed parameter. Storing the settings without putting them in the annex monad is the next difficulty; it could perhaps be handled by making the seek stage pass applicable settings into the start stage (and from there on to perform as needed). But that still leaves a problem, what data type to use to represent the options between getopt and seek?
* comment updateGravatar Joey Hess2011-11-20
|
* status --json now shows most thingsGravatar Joey Hess2011-11-20
| | | | | | Left out the backend usage graph for now, and bad/temp directory sizes are only displayed when present. Also, disk usage is returned as a string with units, which I can see changing later.
* update comment to explain non-obvious temp fileGravatar Joey Hess2011-11-19
|
* avoid error message when doing get --from on file not present on remoteGravatar Joey Hess2011-11-18
|
* status: Include all special remotes in the list of repositories.Gravatar Joey Hess2011-11-18
| | | | | Special remotes do not always have a description listed in uuid.log, and such ones were not listed before.
* migrate: Don't fall over a stale temp file.Gravatar Joey Hess2011-11-17
|
* fix typo introduced with the Ref typeGravatar Joey Hess2011-11-17
|
* improve type signatures with a Ref newtypeGravatar Joey Hess2011-11-16
| | | | | | | | | | | In git, a Ref can be a Sha, or a Branch, or a Tag. I added type aliases for those. Note that this does not prevent mixing up of eg, refs and branches at the type level. Since git really doesn't care, except rare cases like git update-ref, or git tag -d, that seems ok for now. There's also a tree-ish, but let's just use Ref for it. A given Sha or Ref may or may not be a tree-ish, depending on the object type, so there seems no point in trying to represent it at the type level.
* When not run in a git repository, git-annex can still display a usage ↵Gravatar Joey Hess2011-11-16
| | | | | | | message, and "git annex version" even works. Things that sound simple, but are made hard by the Annex monad being built with the assumption that there will always be a git repo.
* fix display of semitrusted repos in statusGravatar Joey Hess2011-11-16
| | | | | | semitrusted uuids rarely are listed in trust.log, so a special case is needed to get a list of them. Take the difference of all known uuids with non-semitrusted uuids.
* show number of reposGravatar Joey Hess2011-11-15
|
* better status outputGravatar Joey Hess2011-11-15
|
* fix exit status so json gets terminated properlyGravatar Joey Hess2011-11-14
|
* status --json --fast for escGravatar Joey Hess2011-11-14
| | | | | | * status: Fix --json mode (only the repository lists are currently displayed) * status: --fast is back
* probably makes sense to list semitrusted before untrustedGravatar Joey Hess2011-11-14
|
* status: Now displays trusted, untrusted, and semitrusted repositories ↵Gravatar Joey Hess2011-11-14
| | | | separately.
* Optimised union merging; now only runs git cat-file once.Gravatar Joey Hess2011-11-12
|
* init: When run in an already initalized repository, and without a ↵Gravatar Joey Hess2011-11-12
| | | | description specified, don't delete the old description.
* map: Support remotes with /~/ and /~user/Gravatar Joey Hess2011-11-11
| | | | | | | | | | More accurately, it was supported already when map uses git-annex-shell, but not when it does not. Note that the user name cannot be shell escaped using git-annex's current approach for shell escaping. I tried and some shells like dash cannot cd ~'joey'. Rest of directory is still shell escaped, not for security but in case a directory has a space or other weird character.
* 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.
* tweakGravatar Joey Hess2011-11-10
|
* Optimized copy --from and get --from to avoid checking the location log for ↵Gravatar Joey Hess2011-11-10
| | | | | | | files that are already present. This can be a significant speedup when running in large trees that are only missing a few files; it makes copy --from just as fast as get.
* lockContent in dropkeyGravatar Joey Hess2011-11-09
| | | | | This is needed for drop --from and move --from to check the lock, as they do not use git-annex-shell inannex.
* safer inannex checkingGravatar Joey Hess2011-11-09
| | | | | | | | git-annex-shell inannex now returns always 0, 1, or 100 (the last when it's unclear if content is currently in the index due to it currently being moved or dropped). (Actual locking code still not yet written.)
* reorg to allow taking content lockGravatar Joey Hess2011-11-09
| | | | | | | The lock will only persist during the perform stage, so the content must be removed from the annex then, rather than in the cleanup stage. (No lock is actually taken yet.)
* cleanupGravatar Joey Hess2011-11-09
|
* 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.
* clean up read/show abuseGravatar Joey Hess2011-11-08
| | | | | | | Avoid ever using read to parse a non-haskell formatted input string. show :: Key is arguably still show abuse, but displaying Keys as filenames is just too useful to give up.
* Handle a case where an annexed file is moved into a gitignored directory, by ↵Gravatar Joey Hess2011-11-07
| | | | having fix --force add its change.
* refactorGravatar Joey Hess2011-11-07
|
* add a UUID typeGravatar Joey Hess2011-11-07
| | | | Should have done this a long time ago.
* better usageGravatar Joey Hess2011-11-07
|
* Bugfix: In the past two releases, git-annex init has written the uuid.log in ↵Gravatar Joey Hess2011-11-07
| | | | | | | | | | | | | the wrong format, with the UUID and description flipped. This is my own damn fault for not making UUID a real type, and then relying on the type checker to ensure my refactoring was correct -- which it wasn't! I should probably add code to clean up bogus entries in the uuid.log, but right now I want to get the fix out there to prevent people experiencing this bug. I should also make UUID a real data type.