aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avoid trying to create a content file in order to lock itGravatar Joey Hess2014-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The nice refactoring in 7165e4035e9b6cfeaa5d659341749cc957b27e14 highlighted a bug in lockContent -- when the content is not present, this incorrectly created an empty lock file, using the same filename as the content file. This seems like it could result in empty objects, which fsck would detect and complain about. Both drop and move --to call lockContent, as does Remote.Git.dropKey -- I think we got lucky and this bug didn't show up because both all of those only operate on files that are present. So this bug could only manifest if there was a race, and a file's content was dropped at just the wrong time, just as another process was about to drop it. (And then only if the other process's dropping failed, otherwise it'd delete the empty object file.) Hmm, move --from also called lockContent. Unnecessarily, since the content is not being removed from the local annex. In this case, the combination of the 2 bugs could result in an empty lock file being written, and then if the download of the content failed, left in the object directory as the content. This commit also optimises lockContent, avoiding an unncessary doesFileExist test and instead just catching the exception that's thrown when the file doesn't exist. This commit was sponsored by Justine Lam.
* more lock file refactoringGravatar Joey Hess2014-08-20
|
* reorganize and refactor lock codeGravatar Joey Hess2014-08-20
| | | | | | | | Added a convenience Utility.LockFile that is not a windows/posix portability shim, but still manages to cut down on the boilerplate around locking. This commit was sponsored by Johan Herland.
* fix lockFileShared to actually create lock fileGravatar Joey Hess2014-08-20
| | | | | | | This was a bug, but it was only used for ssh locks and by the hook special remote locking. At least in the case of ssh locks, the lock files happened to already exist before this tried to use them, so the bug didn't cause anything to break.
* whoops, I the debug printsGravatar Joey Hess2014-08-20
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2014-08-20
|\
* | When accessing a local remote, shut down git-cat-file processes afterwards, ↵Gravatar Joey Hess2014-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to ensure that remotes on removable media can be unmounted. Closes: #758630 This does mean that eg, copying multiple files to a local remote will become slightly slower, since it now restarts git-cat-file after each copy. Should not be significant slowdown. The reason git-cat-file is run on the remote at all is to update its location log. In order to add an item to it, it needs to get the current content of the log. Finding a way to avoid needing to do that would be a good path to avoiding this slowdown if it does become a problem somehow. This commit was sponsored by Evan Deaubl.
* | forgot some liftsGravatar Joey Hess2014-08-20
| |
* | Ensure that all lock fds are close-on-exec, fixing various problems with ↵Gravatar Joey Hess2014-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | them being inherited by child processes such as git commands. (With the exception of daemon pid locking.) This fixes at part of #758630. I reproduced the assistant locking eg, a removable drive's annex journal lock file and forking a long-running git-cat-file process that inherited that lock. This did not affect Windows. Considered doing a portable Utility.LockFile layer, but git-annex uses posix locks in several special ways that have no direct Windows equivilant, and it seems like it would mostly be a complication. This commit was sponsored by Protonet.
| * Added a commentGravatar http://joeyh.name/2014-08-20
|/
* (no commit message)Gravatar Hans_Ryding2014-08-20
|
* (no commit message)Gravatar Hans_Ryding2014-08-20
|
* (no commit message)Gravatar Hans_Ryding2014-08-20
|
* Added a comment: Log with --debugGravatar jg123h12jh3y12g3y2014-08-20
|
* Added a comment: brew doesn't include git-remote-gcryptGravatar Ganwell2014-08-19
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2014-08-19
|\
* | Make --help work when not in a git repository. Closes: #758592Gravatar Joey Hess2014-08-19
| | | | | | | | | | | | | | | | | | | | | | | | Note that this means getopt parsing is done even when not in a git repository, even though currently cmdnorepo is not passed the results of it. I'd like to move to cmdnorepo not doing its own ad-hoc option parsing, so this is really a good thing. (But as long as eg, getOptionFlag needs an Annex monad, it cannot be used in cmdnorepo handling.) There is a potential for problems if any cmdnorepo branch of a command handles options that are not in its regular getopt, but that would be a bug anyway.
* | clarify that --all doesn't operate on a single fileGravatar Joey Hess2014-08-19
| |
| * Added a comment: git annex view */=podcastGravatar https://www.google.com/accounts/o8/id?id=AItOawnPgn611P6ym5yyL0BS8rUzO0_ZKRldMt02014-08-19
| |
* | doc/ minor typos/trailing whitespaces + extension on get optionsGravatar Yaroslav Halchenko2014-08-19
|/
* (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawmP36qgLdH9-5VjmK2lTTs8S2rs2xSGCjk2014-08-19
|
* Added a commentGravatar zardoz2014-08-18
|
* Added a commentGravatar http://joeyh.name/2014-08-18
|
* cleanup branch listGravatar Joey Hess2014-08-17
|
* add compat cruft for old versions of http-types and http-conduitGravatar Joey Hess2014-08-17
|
* fix lower bounds on version of exceptionsGravatar Joey Hess2014-08-17
| | | | | | This is needed only because of the new MonadMask needed for bracket in the new version. Ifdefing it everywhere is not practical, since the Setup.hs uses it.
* add news item for git-annex 5.20140817Gravatar Joey Hess2014-08-17
|
* Merge remote-tracking branch 'refs/remotes/dgit/dgit/sid'Gravatar Joey Hess2014-08-17
|\
* | prep release5.20140817Gravatar Joey Hess2014-08-17
| |
* | missing peiceGravatar Joey Hess2014-08-16
| | | | | | | | Forgot to use runner in f448a738b8322a07994831e256e3f46207ee4950
* | Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2014-08-16
|\ \
* | | fix pathGravatar Joey Hess2014-08-16
| | |
| * | Added a commentGravatar EskildHustvedt2014-08-16
| | |
| * | Added a commentGravatar zardoz2014-08-16
| | |
| * | Added a commentGravatar zardoz2014-08-16
|/ /
* | Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2014-08-15
|\ \
* | | devblogGravatar Joey Hess2014-08-15
| | |
* | | work around default Accept-Encoding in http-clientGravatar Joey Hess2014-08-15
| | |
* | | memoize construction of the Request -> Request function to apply the UrlOptionsGravatar Joey Hess2014-08-15
| | |
* | | Switched from the old haskell HTTP library to http-conduit.Gravatar Joey Hess2014-08-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hoary old HTTP library was only used when checking if an url exists, when curl was not available. It had many problems, including not supporting https at all. Now, this is done using http-conduit for all urls that it supports. Falls back to curl for any url that http-conduit doesn't like (probably ftp etc, but could also be an url that its parser chokes on for whatever reason). This adds a new dependency on http-conduit, but webdav support already indirectly depended on that, and the s3-aws branch also uses it. This opens up the possibility of using http-conduit for large file downloads, but for now I've left it using wget/curl. This commit was sponsored by Paul Tötterman.
| * | Added a commentGravatar Francois2014-08-15
| | |
| * | Added a commentGravatar Francois2014-08-15
| | |
* | | silly markdown..Gravatar Joey Hess2014-08-15
| | |
| * | Added a commentGravatar http://joeyh.name/2014-08-15
|/ /
* | Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2014-08-15
|\ \
* | | fix linkGravatar Joey Hess2014-08-15
| | |
| * | Added a commentGravatar http://joeyh.name/2014-08-15
|/ /
* | more reorgGravatar Joey Hess2014-08-15
| |
* | move cabal on OSX stuff to its own pageGravatar Joey Hess2014-08-15
| |
* | reorg, moving MacPorts to a separate pageGravatar Joey Hess2014-08-15
| |