Commit graph

47 commits

Author SHA1 Message Date
Joey Hess
09a16176de read log files strictly
This avoids leaking fds when an operation needs to read a lot of log files,
as unused will.
2011-04-02 20:36:01 -04:00
Joey Hess
f005a84e56 add loggedKeys 2011-04-02 15:50:51 -04:00
Joey Hess
616e6f8a84 Use lowercase hash directories for locationlog files
to avoid some issues with git on OSX with the mixed-case directories. No
migration is needed; the old mixed case hash directories are still read;
new information is written to the new directories.
2011-04-02 13:49:03 -04:00
Joey Hess
6ab63c438d not really a bug
This can occur if a local remote repo has not been initted, so has no uuid
yet.
2011-04-01 21:24:06 -04:00
Joey Hess
5eb76d2b03 improve upgrade 2011-03-16 11:53:46 -04:00
Joey Hess
dd5448eb07 added 2 level hashing
This means there can be 1024 subdirs, each with up to 1024 sub-subdirs.
So with hundreds of millions of annexed objects, each leaf directory will
have only a few files on average.
2011-03-15 23:58:27 -04:00
Joey Hess
6d3df8a083 more pure code refactoring 2011-01-29 23:56:40 -04:00
Joey Hess
04fe906ac6 use safewritefile 2011-01-28 12:35:51 -04:00
Joey Hess
a8ce30401d add checks that location log files are committed
currently failing for move --to
2011-01-11 16:00:40 -04:00
Joey Hess
500ddd7f4b add a check for unknown UUID when logging 2011-01-04 17:03:29 -04:00
Joey Hess
52ec6e748d do not need to use Git.relative here (it is a no-op in this case anyway) 2010-11-28 16:31:20 -04:00
Joey Hess
57adb0347b hlint tweaks
Remotes.hs next, and also Backend/* and Command/*
2010-11-22 15:46:57 -04:00
Joey Hess
a51b364a35 trim exports 2010-11-15 13:00:43 -04:00
Joey Hess
b2c28c1ac0 more Wall cleaning 2010-10-31 15:50:07 -04:00
Joey Hess
59672d32ed write to tmp file
Writing to a tmp file means no locking is needed, and it fixes a bug
introduced by the last commit, which made log files be read lazily, so
they could still be open when written, which breaks due to haskell's
internal locking.
2010-10-31 01:06:58 -04:00
Joey Hess
d5a0c16298 more space saving by not locking location log for read
Actions that need to read all the location logs, like "git annex get .",
were still using a lot of memory, and profiling pointed at the location log
reading as the problem. Not locking them for read, and thus avoiding the
strict reading fixes the problem, although I don't quite understand why.
(Oddly, -sstderr profiling did not show the memory as used, though top
showed dozens of MB being used.)

Anyway, it's fine to not lock location logs for read, since the log format
and parser should be safe if a partial read of a file being written happens.
Note that that could easily happen anyway, if doing a git pull, etc,
especially if git needs to union merge in changes from elsewhere. The worst
that will happen is git-annex could get a bad or out of date idea about
locations and refuse to eg, --drop something.
2010-10-30 23:34:40 -04:00
Joey Hess
694a33e91b syntax tweaks 2010-10-28 14:20:02 -04:00
Joey Hess
833d4b342e copyright statements 2010-10-27 16:53:54 -04:00
Joey Hess
24ee4439d4 use git command queue 2010-10-26 16:15:29 -04:00
Joey Hess
1aa19422ac git annex move --from remote almost working 2010-10-25 17:17:03 -04:00
Joey Hess
4b1086cc7d experimentally, removing all actual git committing
Idea is the user will commit when ready, just stage everything.
2010-10-18 01:52:06 -04:00
Joey Hess
a4dc920f6b remove some old todos 2010-10-17 16:44:06 -04:00
Joey Hess
909f619c07 tweaks 2010-10-16 16:20:49 -04:00
Joey Hess
6f3572e47f more reorg, spiffed up state monad 2010-10-14 03:18:11 -04:00
Joey Hess
48643b68b3 convert GitRepo to qualified import 2010-10-14 02:36:41 -04:00
Joey Hess
eda80e44c5 add module that only exports abstract types 2010-10-14 02:12:41 -04:00
Joey Hess
e28ff5bdaf almost able to get files from remotes now! 2010-10-13 15:55:18 -04:00
Joey Hess
b7858ada03 bugfixes 2010-10-12 20:04:36 -04:00
Joey Hess
476f66abb9 now that a uuid is used, don't need to rejoin 2010-10-12 18:31:02 -04:00
Joey Hess
3b89924f53 record annexed files in log 2010-10-12 18:25:41 -04:00
Joey Hess
b882fe8410 locationlog will use uuids 2010-10-12 18:06:34 -04:00
Joey Hess
ebc3fbe9ae explicit exports 2010-10-11 17:52:46 -04:00
Joey Hess
af82586adf split up Types 2010-10-11 17:19:55 -04:00
Joey Hess
c5d7ca0a5a use Data.Time instead of Data.DateTime
The latter has shady rounding. The new module is a bit harder to use, but
worth it, it adds subsecond timestamps too.
2010-10-10 22:22:53 -04:00
Joey Hess
e5514e0cb0 update 2010-10-10 18:05:37 -04:00
Joey Hess
dce9c2e080 convert GitRepo to struct with constructor 2010-10-10 16:06:36 -04:00
Joey Hess
cc23519235 update 2010-10-10 15:04:18 -04:00
Joey Hess
a55f49efb6 update 2010-10-10 12:41:20 -04:00
Joey Hess
7ad4a0bb7d log compaction 2010-10-10 12:32:15 -04:00
Joey Hess
f98fa53d7f fixed close after locking 2010-10-10 11:08:40 -04:00
Joey Hess
60c672e444 strictness and handle closing 2010-10-10 02:22:35 -04:00
Joey Hess
e64d1becf4 robustness fix
avoid crash if the seconds field is not numeric
2010-10-10 00:02:07 -04:00
Joey Hess
381e6f84e5 robustness 2010-10-09 23:35:05 -04:00
Joey Hess
011118dbdf adding file presence calculation code 2010-10-09 22:46:35 -04:00
Joey Hess
9ae522bb76 add status field to log 2010-10-09 22:29:16 -04:00
Joey Hess
dcfb24e5b5 add logFile 2010-10-09 22:14:13 -04:00
Joey Hess
a667d99cd1 first module 2010-10-09 19:22:40 -04:00