summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* 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.
* better nameGravatar Joey Hess2011-11-16
|
* 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.
* cleanupGravatar Joey Hess2011-11-16
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2011-11-16
|\
* | 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.
* | cleanupGravatar Joey Hess2011-11-15
| |
* | merge: Now runs in constant space.Gravatar Joey Hess2011-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, a merge was first calculated, by running various actions that called git and built up a list of lines, which were at the end sent to git update-index. This necessarily used space proportional to the size of the diff between the trees being merged. Now, lines are streamed into git update-index from each of the actions in turn. Runtime size of git-annex merge when merging 50000 location log files drops from around 100 mb to a constant 4 mb. Presumably it runs quite a lot faster, too.
| * Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo2011-11-16
| |
| * (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo2011-11-16
| |
* | cleanupGravatar Joey Hess2011-11-15
| |
* | avoid space leak writing mergeGravatar Joey Hess2011-11-15
|/ | | | | | | | | | | | | | | | | | This reduces the memory use of a merge by 1/3rd. The space leak was apparently because the whole update-index input was generated strictly, not lazily. I wondered if the change to ByteStrings contributed to this, due to the need to convert with L.pack here. But going back to the old code, I still see a much similar leak, and worse performance besides due to it not using ByteStrings. The fix is to just hPutStr the lines repeatedly. (Note the \0 is written separately, to avoid allocation overheads in adding it to the string.) The Git.pipeWrite interface is probably just wrong for any large inputs to git. This was the only place using it for input of any size. There is still at least one other space leak in the merge code.
* better error messageGravatar Joey Hess2011-11-15
|
* further insteadOf fixGravatar Joey Hess2011-11-15
|
* Fix support for insteadOf url remapping. Closes: #644278Gravatar Joey Hess2011-11-15
|
* close as resolvedGravatar Joey Hess2011-11-15
|
* removedGravatar http://cgray.myopenid.com/2011-11-15
|
* Added a commentGravatar http://cgray.myopenid.com/2011-11-15
|
* Added a commentGravatar http://cgray.myopenid.com/2011-11-15
|
* Added a commentGravatar http://joey.kitenet.net/2011-11-15
|
* Added a commentGravatar http://joey.kitenet.net/2011-11-15
|
* show number of reposGravatar Joey Hess2011-11-15
|
* better status outputGravatar Joey Hess2011-11-15
|
* Fix typoGravatar http://cgray.myopenid.com/2011-11-15
|
* (no commit message)Gravatar http://cgray.myopenid.com/2011-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
* Added a commentGravatar http://joey.kitenet.net/2011-11-14
|
* Added a commentGravatar http://joey.kitenet.net/2011-11-14
|
* (no commit message)Gravatar http://www.joachim-breitner.de/2011-11-14
|
* 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.
* avoid unnecessary auto-merge when only changing a file in the branch.Gravatar Joey Hess2011-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids doing auto-merging in commands that don't need fully current information from the git-annex branch. In particular, git annex add no longer needs to auto-merge. Affected commands: Anything that doesn't look up data from the branch, but does write a change to it. It might seem counterintuitive that we can change a value without first making sure we have the current value. This optimisation works because these two sequences are equivilant: 1. pull from remote 2. union merge 3. read file from branch 4. modify file and write to branch vs. 1. read file from branch 2. modify file and write to branch 3. pull from remote 4. union merge After either sequence, the git-annex branch contains the same logical content for the modified file. (Possibly with lines in a different order or additional old lines of course).
* merge: Improve commit messages to mention what was merged.Gravatar Joey Hess2011-11-12
|
* addGravatar Joey Hess2011-11-12
|
* addGravatar Joey Hess2011-11-12
|
* golfGravatar Joey Hess2011-11-12
|
* add news item for git-annex 3.20111111Gravatar Joey Hess2011-11-11
|
* releasing version 3.201111113.20111111Gravatar Joey Hess2011-11-11
|
* 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.
* Automatically fix up badly formatted uuid.log entries produced by ↵Gravatar Joey Hess2011-11-11
| | | | 3.20111105, whenever the uuid.log is changed (ie, by init or describe).
* 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.
* factored out some useful error catching methodsGravatar Joey Hess2011-11-10
|
* add make fast targetGravatar Joey Hess2011-11-10
|
* tested all known types of cycles, all are fixedGravatar Joey Hess2011-11-10
| | | | | My testing involved widening the race by adding sleeps, and making sure something sane happens in each case.