Commit graph

136 commits

Author SHA1 Message Date
Joey Hess
04edae6791 Optimised union merging; now only runs git cat-file once. 2011-11-12 17:45:12 -04:00
Joey Hess
e9bfa8eaed avoid unnecessary auto-merge when only changing a file in the branch.
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).
2011-11-12 15:15:57 -04:00
Joey Hess
fe4ad93e4a add 2011-11-12 14:46:32 -04:00
Joey Hess
6e946b9a39 add 2011-11-12 14:24:14 -04:00
Joey Hess
05b7608113 update 2011-11-08 01:27:06 -04:00
Joey Hess
1530eac312 closures 2011-10-30 16:57:20 -04:00
Joey Hess
3cf811ead0 update; status is no longer slow 2011-10-30 16:49:49 -04:00
Joey Hess
22e9f445ab unused, dropunused: Now work in bare repositories.
Turned out I had already done all the work needed to support this when
unused started checking all branches.
2011-10-29 19:16:45 -04:00
Joey Hess
c102e63595 status: clean up for bare repositories
The backend usage graph shows present keys as well as keys found in the
repository tree, so it will also be populated for bare repositories.

Changed wording to "visible annex keys", which explains why it's 0 in
a bare repository (no keys visible as no tree), and also why it varies
depending on which branch is checked out. This seemed better than doing
something expensive to look up keys from the git-annex branch.
2011-10-29 19:06:49 -04:00
Joey Hess
2566eb85fe fsck: Now works in bare repositories.
Checks location log information, and file contents.

Does not check that numcopies is satisfied, as .gitattributes information
about numcopies is not available in a bare repository. In practice, that
should not be a problem, since fsck is also run in a checkout and will
check numcopies there.
2011-10-29 18:03:28 -04:00
Joey Hess
2eefc58070 status too 2011-10-27 14:55:06 -04:00
https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U
12a0a45fb1 2011-10-25 21:40:30 +00:00
Joey Hess
e2853b3fec update 2011-10-25 11:39:15 -07:00
Joey Hess
81fe6f775c close 2011-10-17 14:17:18 -04:00
Joey Hess
279150ccd5 update 2011-10-15 13:30:04 -04:00
Joey Hess
bae3008d17 add a copy of my mailing list post 2011-10-15 13:17:00 -04:00
Joey Hess
c867ae842a add 2011-10-15 13:13:57 -04:00
Joey Hess
8ea48c3e39 update docs 2011-09-18 20:56:37 -04:00
Joey Hess
756338fb2e idea 2011-09-17 18:37:38 -04:00
Joey Hess
f600444ab6 unused --remote: Reduced memory use to 1/4th what was used before.
Using a single strictness annotation, in just the right place.
Tried several others, none of which helped and some of which potentially
hurt. This is only the second time I've really had to deal with this in
a year of using haskell, which is, I suppose not that bad.
2011-08-31 19:13:02 -04:00
Joey Hess
b96443364e smudge update: Not practical. 2011-08-30 13:29:07 -04:00
Joey Hess
5ef11350aa link to patch 2011-08-29 16:41:47 -04:00
Joey Hess
cd199e442f update; showstopper issue with current git
developed a patch for git, we'll see if they like it..
2011-08-29 16:31:47 -04:00
Joey Hess
b2c5639dcc update 2011-08-29 13:29:39 -04:00
Joey Hess
676c467801 close 2011-08-29 12:49:38 -04:00
Joey Hess
ace9de37e8 download urls via tmp file, and support resuming 2011-07-01 18:59: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
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
a61154baf5 add 2011-06-23 20:52:56 -04:00
Joey Hess
c7a1690f02 update 2011-06-22 17:56:07 -04:00
Joey Hess
c835166a7c add git-union-merge
This is a new git subcommand, that does a generic union merge operation
between two refs, storing the result in a branch. It operates efficiently
without touching the working tree. It does need to write out a temporary
index file, and may need to write out some other temp files as well.

This could be useful for anything that stores data in a branch,
and needs to merge changes into that branch without actually checking the
branch out. Since conflict handling can't be done without a working copy,
the merge type is always a union merge, which is fine for data stored in
log format (as git-annex does), or in non-conflicting files
(as pristine-tar does).

This probably belongs in git proper, but it will live in git-annex for now.

---

Plan is to move .git-annex/ to a git-annex branch, and use git-union-merge
to handle merging changes when pulling from remotes.

Some preliminary benchmarking using real .git-annex/ data indicates
that it's quite fast, except for the "git add" call, which is as slow
as "git add" tends to be with a big index.
2011-06-20 21:37:18 -04:00
Joey Hess
91e50782ce thought 2011-06-20 21:37:18 -04:00
Joey Hess
2fcb8e3b11 update 2011-06-20 21:37:18 -04:00
Joey Hess
e593a81041 update 2011-06-20 21:37:18 -04:00
Joey Hess
30d7cce7ec rsync is now used when copying files from repos on other filesystems
cp is still used when copying file from repos on the same filesystem, since
--reflink=auto can make it significantly faster on filesystems such as
btrfs.

Directory special remotes still use cp, not rsync. It's not clear what
tmp file should be used when rsyncing to such a remote.
2011-06-13 20:33:52 -04:00
http://ertai.myopenid.com/
c7b7595f50 Added a comment 2011-05-20 20:17:15 +00:00
http://joey.kitenet.net/
93b0f21c95 Added a comment 2011-05-17 19:57:33 +00:00
zooko
44499bbdf8 Added a comment: performance 2011-05-17 19:20:39 +00:00
Joey Hess
f63412a42c close 2011-05-17 12:19:52 -04:00
Joey Hess
f664a2538a fix 2011-05-17 12:18:50 -04:00
Joey Hess
ebfa50b729 add 2011-05-17 12:14:46 -04:00
https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U
3154dc036a Added a comment 2011-05-17 07:27:03 +00:00
https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U
e6c95a6a5e 2011-05-17 07:25:33 +00:00
Joey Hess
51cc71fac1 longterm todo item 2011-05-16 22:37:31 -04:00
https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U
8c152836ab Added a comment 2011-05-14 15:00:51 +00:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
12ecf6c0c6 Added a comment 2011-05-14 10:04:37 +00:00
Joey Hess
e72c1c33ae would be nice.. 2011-05-13 23:05:14 -04:00
https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U
59e960a51c 2011-05-09 12:24:28 +00:00
https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U
50fecbcb41 2011-05-09 12:23:50 +00:00