Commit graph

537 commits

Author SHA1 Message Date
http://joey.kitenet.net/
92de7c8dcd Added a comment 2011-12-20 14:56:12 +00:00
http://adamspiers.myopenid.com/
0de4341c97 Added a comment 2011-12-20 12:00:18 +00:00
Joey Hess
f0f84dbe48 close 2011-12-19 14:31:33 -04:00
http://joey.kitenet.net/
9b32d02a24 Added a comment 2011-12-19 18:22:25 +00:00
http://adamspiers.myopenid.com/
e341cdf0da Added a comment: extra level of indirection 2011-12-19 12:45:19 +00:00
http://www.joachim-breitner.de/
3f01795a26 2011-12-18 11:59:11 +00:00
http://gebi.myopenid.com/
ec11908799 2011-12-16 00:13:54 +00:00
Joey Hess
c4c965d602 detect and recover from branch push/commit race
Dealing with a race without using locking is exceedingly difficult and tricky.
Fully tested, I hope.

There are three places left where the branch can be updated, that are not
covered by the race recovery code. Let's prove they're all immune to the
race:

1. tryFastForwardTo checks to see if a fast-forward can be done,
   and then does git-update-ref on the branch to fast-forward it.

   If a push comes in before the check, then either no fast-forward
   will be done (ok), or the push set the branch to a ref that can
   still be fast-forwarded (also ok)

   If a push comes in after the check, the git-update-ref will
   undo the ref change made by the push. It's as if the push did not come
   in, and the next git-push will see this, and try to re-do it.
   (acceptable)

2. When creating the branch for the very first time, an empty index
   is created, and a commit of it made to the branch. The commit's ref
   is recorded as the current state of the index. If a push came in
   during that, it will be noticed the next time a commit is made to the
   branch, since the branch will have changed. (ok)

3. Creating the branch from an existing remote branch involves making
   the branch, and then getting its ref, and recording that the index
   reflects that ref.

   If a push creates the branch first, git-branch will fail (ok).

   If the branch is created and a racing push is then able to change it
   (highly unlikely!) we're still ok, because it first records the ref into
   the index.lck, and then updating the index. The race can cause the
   index.lck to have the old branch ref, while the index has the newly pushed
   branch merged into it, but that only results in an unnecessary update of
   the index file later on.
2011-12-11 20:41:35 -04:00
Joey Hess
81f311103d a new bug report to track a race 2011-12-11 16:41:56 -04:00
Joey Hess
0236bb020b update 2011-12-11 16:19:54 -04:00
Joey Hess
8680c415de slow, stupid, and safe index updating
Always merge the git-annex branch into .git/annex/index before making a
commit from the index.

This ensures that, when the branch has been changed in any way
(by a push being received, or changes pulled directly into it, or
even by the user checking it out, and committing a change), the index
reflects those changes.

This is much too slow; it needs to be optimised to only update the
index when the branch has really changed, not every time.

Also, there is an unhandled race, when a change is made to the branch
right after the index gets updated. I left it in for now because it's
unlikely and I didn't want to complicate things with additional locking
yet.
2011-12-11 15:05:53 -04:00
Joey Hess
59971c9230 new bug 2011-12-11 14:47:44 -04:00
Joey Hess
bf6a3b757a close 2011-12-11 01:15:27 -04:00
Joey Hess
10e8028a42 Fix bug in last version in getting contents from bare repositories. 2011-12-10 18:45:55 -04:00
http://schnouki.net/
bfdc9f28fc 2011-12-10 21:40:01 +00:00
Joey Hess
e3f1568e0f Fix caching of decrypted ciphers, which failed when drop had to check multiple different encrypted special remotes. 2011-12-08 16:01:46 -04:00
http://gebi.myopenid.com/
2568beee07 2011-12-08 14:24:08 +00:00
Joey Hess
5926be6f30 response 2011-12-07 12:36:15 -04:00
http://gebi.myopenid.com/
51b7b82870 2011-12-07 05:48:47 +00:00
http://gebi.myopenid.com/
919d58667a 2011-12-07 03:20:43 +00:00
Joey Hess
6f221f1fc3 response 2011-12-06 17:06:08 -04:00
http://gebi.myopenid.com/
adb1dc65bc 2011-12-06 20:25:06 +00:00
Joey Hess
480495beb4 Prevent key names from containing newlines.
There are several places where it's assumed a key can be written on one
line. One is in the format of the .git/annex/unused files. The difficult
one is that filenames derived from keys are fed into git cat-file --batch,
which has a line based input. (And no -z option.)

So, for now it's best to block such keys being created.
2011-12-06 13:03:09 -04:00
http://joey.kitenet.net/
cf5353acb4 Added a comment 2011-12-06 16:49:32 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU
01f7c74d1f 2011-12-06 13:05:11 +00:00
Joey Hess
7b08584c55 close 2011-12-02 16:59:09 -04:00
Joey Hess
6f29f9db72 rename 2011-12-02 16:15:18 -04:00
Joey Hess
f4bf444ae0 store content in hashDirLower directories in bare repositories
When storing content in bare repositories, use the hashDirLower
directories. Bare repositories can be on USB drives, which might
use the FAT filesystem, and fall afoul of recent bugs in linux's handling
of mixed case on FAT. Using hashDirLower avoids that.
2011-11-28 22:55:40 -04:00
Joey Hess
6869e6023e support .git/annex on a different disk than the rest of the repo
The only fully supported thing is to have the main repository on one disk,
and .git/annex on another. Only commands that move data in/out of the annex
will need to copy it across devices.

There is only partial support for putting arbitrary subdirectories of
.git/annex on different devices. For one thing, but this can require more
copies to be done. For example, when .git/annex/tmp is on one device, and
.git/annex/journal on another, every journal write involves a call to
mv(1). Also, there are a few places that make hard links between various
subdirectories of .git/annex with createLink, that are not handled.

In the common case without cross-device, the new moveFile is actually
faster than renameFile, avoiding an unncessary stat to check that a file
(not a directory) is being moved. Of course if a cross-device move is
needed, it is as slow as mv(1) of the data.
2011-11-28 16:17:55 -04:00
Joey Hess
ff2d9c8283 response 2011-11-27 17:09:29 -04:00
http://hcs.furuvik.net/
178a49af75 2011-11-27 20:52:15 +00:00
Joey Hess
2bf3addf49 Bugfix: dropunused did not drop keys with two spaces in their name. 2011-11-27 13:50:05 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
ba1ec2c60f 2011-11-25 05:56:59 +00:00
Joey Hess
75a590bdd8 Put a workaround in the directory special remote for strange behavior with VFAT filesystems on Linux (mounted with shortname=mixed) 2011-11-22 18:21:28 -04:00
http://joey.kitenet.net/
fd81b5047b Added a comment 2011-11-22 21:01:14 +00:00
http://joey.kitenet.net/
112399bf1a Added a comment 2011-11-22 20:59:55 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
6d7e990dca Added a comment 2011-11-22 20:35:03 +00:00
http://joey.kitenet.net/
eeda534e9a Added a comment 2011-11-22 19:56:55 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
b1c601ac8c Added a comment: Case sensitivity 2011-11-22 18:51:04 +00:00
Joey Hess
fc2f0e8b1a response; cannot reproduce 2011-11-22 12:37:51 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
35b4706958 2011-11-22 07:09:24 +00:00
Joey Hess
2768be7136 response 2011-11-20 14:19:03 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
1de00df636 2011-11-18 21:12:30 +00:00
Joey Hess
1326bb8635 Avoid excessive escaping for rsync special remotes that are not accessed over ssh.
This is actually tricky, 45bbf210a1 added
the escaping because it's needed for rsync that does go over ssh.
So I had to detect whether the remote's rsync url will use ssh or not,
and vary the escaping.
2011-11-18 12:53:48 -04:00
Joey Hess
ed55a750d5 response 2011-11-18 11:58:55 -04:00
http://ertai.myopenid.com/
1516458885 2011-11-18 14:11:08 +00:00
Joey Hess
c70b78d40a migrate: Don't fall over a stale temp file. 2011-11-17 18:29:28 -04:00
Joey Hess
8b892901a9 analysis; not a bug but a feature 2011-11-17 18:20:06 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
b3bbc1cbb6 2011-11-17 21:56:55 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
abd4e1192f 2011-11-17 21:51:55 +00:00