Commit graph

2183 commits

Author SHA1 Message Date
Joey Hess
ee3a0551a7 Merge branch 'master' into v3
Conflicts:
	debian/changelog
2011-06-30 15:01:08 -04:00
Joey Hess
56aeeb4565 cabal can now be used to build git-annex.
This is substantially slower than using make, does not build or install
documentation, does not run the test suite, and is not particularly
recommended, but could be useful to some.
2011-06-30 14:55:03 -04:00
Joey Hess
896726cde4 rename GitUnionMerge to Git.UnionMerge
Also, moved commit function into Git proper, it's not union merge specific.
2011-06-30 13:32:47 -04:00
Joey Hess
f0497312a7 rename GitQueue to Git.Queue 2011-06-30 13:25:37 -04:00
Joey Hess
0f2859454c tweak 2011-06-30 13:22:10 -04:00
Joey Hess
f6063a094e renamed GitRepo to Git
It was always imported qualified as Git anyway
2011-06-30 13:21:39 -04:00
Joey Hess
5fe02f2807 more robust git cat-file output parser
Only remaining ugliness is the handling of error messages for files that
are not present on the branch.
2011-06-30 13:12:51 -04:00
Joey Hess
8562e6096c v3 is now faster than v2
Rebenchmarked v2 vs v3, and v3 is now actually faster. Yes, storing data
in git, using git as a filesystem is actually faster than just using the
filesystem. If you do it just right. :)
2011-06-30 01:16:53 -04:00
Joey Hess
2cda9d0a0f generalized safeWriteFile to viaTmp 2011-06-30 00:46:39 -04:00
Joey Hess
d72fb5acc2 Fix encoding of utf-8 etc when storing the description of repository and other content.
Write files in raw mode, to avoid mangling the encoding of content
provided.

Note: This was a longstanding problem, it was not introduced in v3.
2011-06-30 00:35:51 -04:00
Joey Hess
b089fba7b4 use ByteString for hGet
Avoids the crazy low-level hGetBuf stuff. Also slightly faster.
2011-06-29 23:56:47 -04:00
Joey Hess
899ecbfba1 improve git cat-file code
Now it reads the size specified, rather than using the sentinal hack to
determine EOF.

It still depends on error messages to handle files that are not present.
2011-06-29 22:19:40 -04:00
Joey Hess
e1c18ddec4 Sped back up fsck, copy --from etc
All commands that often have to read a lot of information from
the git-annex branch should now be nearly as fast as before
the branch was introduced.

Before fsck was taking approximatly 3 hours, now it's running in 8 minutes.

The code is very nasty. It should be rewritten to read the header line
from git cat-file, and then read the specified number of bytes of content.
2011-06-29 21:47:31 -04:00
Joey Hess
8725fde5c6 new plan 2011-06-29 20:22:19 -04:00
Joey Hess
06a1f5f742 factor out file list stuff from GitRepo
GitRepo is getting too large an interface; these all fit nicely into a
submodule.
2011-06-29 11:55:16 -04:00
Joey Hess
af45d42224 Merge branch 'master' into v3
Conflicts:
	debian/changelog
2011-06-29 11:42:35 -04:00
Joey Hess
b3aaf980e4 --force will cause add, etc, to operate on ignored files. 2011-06-29 11:42:00 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnpdM9F8VbtQ_H5PaPMpGSxPe_d5L1eJ6w
fb7663ceb8 2011-06-29 14:46:41 +00:00
Joey Hess
5034d8c298 Modify location log parser to allow future expansion.
Since the logs have just been moved into the git-annex branch, don't need
to worry about backwards compatability with old versions of git-annex that
would fail to parse location logs with extra fields tacked on.
2011-06-28 16:15:50 -04:00
Joey Hess
e8068f2ffb tweaks 2011-06-28 14:14:49 -04:00
Joey Hess
c90652f015 Always ensure git-annex branch exists. 2011-06-26 22:43:48 -04:00
Joey Hess
45bce3a3a8 freebsd port now available 2011-06-26 19:00:46 -04:00
Joey Hess
14e2765ba8 add news item for git-annex 3.20110624 2011-06-24 14:58:20 -04:00
Joey Hess
874fc044c1 releasing version 3.20110624 2011-06-24 14:58:07 -04:00
Joey Hess
d7018500fa fix upgrade when .git-annex has already been entirely converted 2011-06-24 12:09:04 -04:00
Joey Hess
ad38c0dfad better setup of git-annex branch pushing on upgrade 2011-06-24 11:59:34 -04:00
Joey Hess
50354a4916 save state before message
to avoid long delay after
2011-06-24 02:33:44 -04:00
Joey Hess
49d77156ac more upgrades fixes for bare repos 2011-06-24 01:15:12 -04:00
Joey Hess
59b2e4ec1d fixes for upgrading bare repos 2011-06-24 01:13:33 -04:00
Joey Hess
69d3c1cec9 cache the trustmap
Doubles the speed of fsck, and speeds up drop as well.
2011-06-23 21:25:39 -04:00
Joey Hess
a61154baf5 add 2011-06-23 20:52:56 -04:00
Joey Hess
e3384eb476 tweak fsck wording so file is at the end of the line 2011-06-23 19:56:24 -04:00
Joey Hess
c4cc6ee42f fix merge_tree_index
--cached is needed when calling git-diff-index, as it is not diffing
against currently checked out branch.
2011-06-23 17:38:27 -04:00
Joey Hess
ab9b971f8f simplified to use existing functions 2011-06-23 17:37:23 -04:00
Joey Hess
22243b87d2 layout 2011-06-23 17:08:11 -04:00
Joey Hess
1686f60f84 commit after merge if any journal files were staged 2011-06-23 16:44:26 -04:00
Joey Hess
7981eb4cb5 fix consistency, and partially close a race during merge
Only "partially" because the journal is not locked during the merge, so
there's a small window where a different git-annex process could write info
to the journal that overwrites info taken from the merge.

That could be dealt with by locking, but the lock would really need to be
around the whole git-annex, to only let one run at a time. Otherwise, even
with the journal locked during the merge, another git-annex could already
be running, generate an overwriting change, and only store it in the journal
after the merge was complete. And similarly, two git-annex processes could
fight and overwrite each other's information independant of any merging.

So, a toplevel lock for git-annex may get added; it's something I've
considered before, as these potential, unlikely problems are not new.
(OTOH, fsck will deal with such problems.)
2011-06-23 16:05:02 -04:00
Joey Hess
780ee5ff6d fix bootstrapping, broken by move of .git/annex/index 2011-06-23 15:38:52 -04:00
Joey Hess
c5531046bc refactor 2011-06-23 15:30:04 -04:00
Joey Hess
068703c405 improve post-upgrade push instructions 2011-06-23 14:51:04 -04:00
Joey Hess
7ee636f6dd avoid unnecessary read of trust.log 2011-06-23 13:39:04 -04:00
Joey Hess
aec4709c3f fix gotcha with closed stderr and --debug 2011-06-23 13:38:52 -04:00
Joey Hess
89fd7b34ce unused command updates for branches
Now that branches are more likely, unused needs to more explicitly warn
that it does not look in them.
2011-06-23 12:23:25 -04:00
Joey Hess
1b21dd99c5 rename git-annex index file 2011-06-23 12:11:09 -04:00
Joey Hess
d05fd11392 updates 2011-06-23 12:11:03 -04:00
Joey Hess
224a8098b5 v3 upgrade is fast!
The journal sped this up approximatly 100-fold; it runs in just a few
minutes for a large repository with 30 thousand log files.
2011-06-23 11:46:55 -04:00
Joey Hess
5f494154a3 add journaling to speed up changes to the git-annex branch
git is slow when the index file is large and has to be rewritten each time
a file is changed. To speed this up, added a journal where changes are
recorded before being fed into the index file and committed to the
git-annex branch. The entire journal can be fed into git with just 2
commands, and only one write of the index file.
2011-06-23 11:37:26 -04:00
Joey Hess
23e765b67c update re git-annex branch direct modification 2011-06-23 09:56:04 -04:00
Joey Hess
9672496a93 update 2011-06-23 08:49:54 -04:00
Joey Hess
9e37898e21 remove stateDir 2011-06-23 08:48:13 -04:00