Commit graph

2510 commits

Author SHA1 Message Date
https://www.google.com/accounts/o8/id?id=AItOawncBlzaDI248OZGjKQMXrLVQIx4XrZrzFo
c86a2f686a 2011-09-30 04:32:24 +00:00
Joey Hess
7ff89ccfee convert all git read/write functions to use ByteStrings
This yields a second or so speedup in unused, find, etc. Seems that even
when the ByteString is immediately split and then converted to Strings,
it's faster.

I may try to push ByteStrings out into more of git-annex gradually,
although I suspect most of the time-critical parts are already covered
now, and many of the rest rely on libraries that only support Strings.
2011-09-29 23:48:57 -04:00
Joey Hess
949ef94d5e layout 2011-09-29 22:31:20 -04:00
Joey Hess
4050c24d7b ssh 2011-09-29 21:11:48 -04:00
Joey Hess
67f2b7cb3e use ByteStrings when reading content of files
didn't bother to benchmark this
2011-09-29 19:19:28 -04:00
Joey Hess
a91c8a15d5 Sped up unused.
Added Git.ByteString which replaces Git IO methods with ones using lazy
ByteStrings. This can be more efficient when large quantities of data are
being read from git.

In Git.LsTree, parse git ls-tree output more efficiently, thanks
to ByteString. This benchmarks 25% faster, in a benchmark that includes
(probably predominately) the run time for git ls-tree itself.

In real world numbers, this makes git annex unused 2 seconds faster for
each branch it needs to check, in my usual large repo.
2011-09-29 19:04:24 -04:00
Joey Hess
244ffef43f add 2011-09-29 16:43:00 -04:00
Joey Hess
7c2c17f706 golfing 2011-09-28 20:19:10 -04:00
Joey Hess
24a8b7f141 add news item for git-annex 3.20110928 2011-09-28 19:17:46 -04:00
Joey Hess
7dddb803a0 releasing version 3.20110928 2011-09-28 19:17:12 -04:00
Joey Hess
ed00bdb995 foo 2011-09-28 18:11:53 -04:00
Joey Hess
7d0adfc5e8 typo 2011-09-28 17:48:45 -04:00
Joey Hess
26bb45d12a update test suite for smarter unused 2011-09-28 17:48:11 -04:00
Joey Hess
8e4bd621b9 enable short-circuiting optimisatons 2011-09-28 17:38:41 -04:00
Joey Hess
b4d5c10fb7 refine new unused code
Fixed the laziness space leak, so it runs in 60 mb or so again. Slightly
faster due to using Data.Set.difference now, although this also makes it
use slightly more memory.

Also added display of the refs being checked, and made unused --from
also check all refs for things in the remote.
2011-09-28 17:35:47 -04:00
Joey Hess
297bc648b9 make unused check branches and tags too
needs time and space optimisation
2011-09-28 16:43:10 -04:00
Joey Hess
5ae270001c fix 2011-09-28 15:17:45 -04:00
Joey Hess
ad245a6375 refactor catfile code
split into generic IO code, and a thin Annex wrapper
2011-09-28 15:17:36 -04:00
Joey Hess
4f4eaf387a golf 2011-09-28 14:48:00 -04:00
Joey Hess
a3cb5c47e5 use FileMode 2011-09-28 14:14:52 -04:00
Joey Hess
4afdd34e89 Merge branch 'master' into unusedfull 2011-09-28 14:08:36 -04:00
Joey Hess
93807564d0 add ls-tree interface
This parser should be fast. I hope.
2011-09-28 14:03:59 -04:00
Joey Hess
d7d9e9aca0 use a foldr
Should be faster here.
2011-09-28 02:46:54 -04:00
Joey Hess
1c9c9a0cee golfing 2011-09-28 02:35:23 -04:00
Joey Hess
7724f895a8 tweak 2011-09-25 14:37:13 -04:00
Joey Hess
b57a4566d3 mention that add --force adds ignored files 2011-09-25 14:34:07 -04:00
Joey Hess
b203a68cb7 include --bindir in all cabal install examples 2011-09-25 14:26:05 -04:00
Joey Hess
4bf1a5ef59 refactor 2011-09-23 18:13:24 -04:00
Joey Hess
d75da353b9 documentation/warning message update for future feature 2011-09-23 18:04:38 -04:00
Joey Hess
6dc23b889e one more hlint 2011-09-20 23:26:35 -04:00
Joey Hess
9f6b7935dd go go gadget hlint 2011-09-20 23:24:48 -04:00
Joey Hess
9d26192350 pull out pure code 2011-09-20 20:18:43 -04:00
Joey Hess
98fbeba0df bugfix
Different keys can have the same size, so can't make a Set of the sizes.

This version actually runs faster yet, too..
2011-09-20 20:14:17 -04:00
Joey Hess
9f5c7a246b status: Massively sped up; remove --fast mode.
Using Sets is the right thing; they have constant size lookup like my
SizeList, and logn insertation, which beats nub to death.

Runs faster than --fast mode did before, and gives accurate counts.

13 seconds total runtime with a warm cache in a repository with 40 thousand
keys.
2011-09-20 18:57:05 -04:00
Joey Hess
cabbefd9d2 status: In --fast mode, all status info is displayed now; but some of it is only approximate, and is marked as such. 2011-09-20 18:13:08 -04:00
Joey Hess
b62123c378 simplify 2011-09-20 00:59:13 -04:00
Joey Hess
5253379953 convert Token to have separate constructors for each peice of syntax 2011-09-20 00:49:40 -04:00
http://joey.kitenet.net/
a1578e33dc Added a comment 2011-09-19 18:57:52 +00:00
Joey Hess
b08b2b42a9 Merge branch 'master' of ssh://git-annex.branchable.com 2011-09-19 14:55:21 -04:00
http://joey.kitenet.net/
10db73426a Added a comment 2011-09-19 18:54:46 +00:00
Joey Hess
1ddc207b58 some of these are now done 2011-09-19 14:50:16 -04:00
http://joey.kitenet.net/
5c20ebcbf3 Added a comment 2011-09-19 18:46:35 +00:00
Joey Hess
73f3a00c1c typo 2011-09-19 12:21:53 -04:00
Joey Hess
3b2e462018 tweak 2011-09-19 02:04:54 -04:00
Joey Hess
a4aef6f115 clarify wording 2011-09-19 01:54:20 -04:00
Joey Hess
94ee28556f special case for --in .
Do not need to check the location log in this case, can just check inAnnex.
This is both an optimisation and perhaps a correctness measure
(fsck --in . should fsck files even if the location log is damaged.)
2011-09-19 01:52:17 -04:00
Joey Hess
dcded89129 reorg 2011-09-19 01:38:01 -04:00
Joey Hess
6e80f19514 golf 2011-09-19 01:03:16 -04:00
Joey Hess
c31a6a9e10 refactor 2011-09-18 23:09:40 -04:00
Joey Hess
4f1fea1a85 fix memory leak
filterM is not a good idea if you were streaming in a large list of files.

Fixing this memory leak that I introduced earlier today was a PITA because
to avoid the filterM, it's necessary to do the filtering only after
building up the data structures like BackendFile, and that means each
separate data structure needs it own function to apply the filter,
at least in this naive implementation.

There is also a minor performance regression, when using copy/drop/get/fsck
with a filter, git is now asked to look up attributes for all files,
since that now comes before the filter is applied. This is only a very
minor thing, since getting the attributes is very fast and --exclude was
probably not typically used to speed it up.
2011-09-18 22:40:31 -04:00