summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* 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.
* 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.
* better message when content is lockedGravatar Joey Hess2011-11-10
|
* exclusive locks, ughGravatar Joey Hess2011-11-09
|
* content lockingGravatar Joey Hess2011-11-09
| | | | | I've tested that this solves the cyclic drop problem. Have not looked at cyclic move, etc.
* fast build mode for vimGravatar Joey Hess2011-11-09
|
* 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.)
* add safeSystemGravatar Joey Hess2011-11-09
| | | | | This is more safe than System.Cmd.Utils.safeSystem, since it does not throw an error on nonzero exit status.
* 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.)