summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
...
* Allow building with gpg2.Gravatar Joey Hess2013-05-19
|
* Fix a zombie that could result when running a process like gpg to read and ↵Gravatar Joey Hess2013-05-19
| | | | write to it.
* Switch to MonadCatchIO-transformers for better handling of state while ↵Gravatar Joey Hess2013-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | catching exceptions. As seen in this bug report, the lifted exception handling using the StateT monad throws away state changes when an action throws an exception. http://git-annex.branchable.com/bugs/git_annex_fork_bombs_on_gpg_file/ .. Which can result in cached values being redundantly calculated, or other possibly worse bugs when the annex state gets out of sync with reality. This switches from a StateT AnnexState to a ReaderT (MVar AnnexState). All changes to the state go via the MVar. So when an Annex action is running inside an exception handler, and it makes some changes, they immediately go into affect in the MVar. If it then throws an exception (or even crashes its thread!), the state changes are still in effect. The MonadCatchIO-transformers change is actually only incidental. I could have kept on using lifted-base for the exception handling. However, I'd have needed to write a new instance of MonadBaseControl for the new monad.. and I didn't write the old instance.. I begged Bas and he kindly sent it to me. Happily, MonadCatchIO-transformers is able to derive a MonadCatchIO instance for my monad. This is a deep level change. It passes the test suite! What could it break? Well.. The most likely breakage would be to code that runs an Annex action in an exception handler, and *wants* state changes to be thrown away. Perhaps the state changes leaves the state inconsistent, or wrong. Since there are relatively few places in git-annex that catch exceptions in the Annex monad, and the AnnexState is generally just used to cache calculated data, this is unlikely to be a problem. Oh yeah, this change also makes Assistant.Types.ThreadedMonad a bit redundant. It's now entirely possible to run concurrent Annex actions in different threads, all sharing access to the same state! The ThreadedMonad just adds some extra work on top of that, with its own MVar, and avoids such actions possibly stepping on one-another's toes. I have not gotten rid of it, but might try that later. Being able to run concurrent Annex actions would simplify parts of the Assistant code.
* add new depGravatar Joey Hess2013-05-17
|
* Sanitize debian changelog version before putting it into cabal file. Closes: ↵Gravatar Joey Hess2013-05-17
| | | | #708619
* releasing version 4.201305164.20130516Gravatar Joey Hess2013-05-16
|
* fixupsGravatar Joey Hess2013-05-15
|
* Merge branch 'master' into windowsGravatar Joey Hess2013-05-15
|\
| * start one git-cat-file per index fileGravatar Joey Hess2013-05-15
| | | | | | | | | | | | | | This reverts a5031031f0d596b2381a785925beb574d90a862e and properly fixes the issue discussed there. This makes git-annex behave much nicer in direct mode.
| * Debian: Add a menu file.Gravatar Joey Hess2013-05-14
| |
* | Merge branch 'master' into windowsGravatar Joey Hess2013-05-14
|\| | | | | | | | | | | | | | | Conflicts: Annex/Environment.hs Build/Configure.hs Git/Construct.hs Utility/FileMode.hs
| * migrate: Detect if a file gets corrupted while it's being migrated.Gravatar Joey Hess2013-05-13
| |
* | add unix-compat to depsGravatar Joey Hess2013-05-11
| |
| * updateGravatar Joey Hess2013-05-11
| |
| * rename varGravatar Joey Hess2013-05-10
|/
* reorderGravatar Joey Hess2013-05-09
|
* rsync special remotes: When sending from a crippled filesystem, use the ↵Gravatar Joey Hess2013-05-09
| | | | destination's default file permissions, as the local ones can be arbitrarily broken. (Ie, ----rwxr-x for files on Android)
* configure: Better checking that sha commands output in the desired format.Gravatar Joey Hess2013-05-08
| | | | | | Run the same code git-annex used to get the sha, including its sanity checking. Much better than old grep. Should detect FreeBSD systems with sha commands that output in stange format.
* SHA: Add a runtime sanity check that sha commands output something that ↵Gravatar Joey Hess2013-05-07
| | | | | | | | | | | | | | | appears to be a real sha. This after fielding a bug where git-annex was built with a sha256 program whose output checked out, but was then run with one that output lines like: SHA256 (file) = <sha here> Which it then parsed as having a SHA256 of "SHA256"! Now the output of the command is required to be of the right length, and contain only the right characters.
* git-annex-shell: Ensure that received files can be read. Files transferred ↵Gravatar Joey Hess2013-05-06
| | | | from some Android devices may have very broken permissions as received.
* When initializing a directory special remote with a relative path, the path ↵Gravatar Joey Hess2013-05-06
| | | | | | | is made absolute. Using a relative path would work, until the user changed to some other directory in the repo and tried to access the remote from there..
* direct: Fix a bug that could cause some files to be left in indirect mode.Gravatar Joey Hess2013-05-06
| | | | | | | | | It's possible for files in indirect mode to have a direct mode mapping file. Probably from when they were in direct mode. In this case, toDirectGen tried to copy the content from the direct mode file that the mapping said had it. But, being in indirect mode, it didn't really have the content. So it did nothing. This fix makes it always move the content from .git/annex/objects/ when it's there.
* Avoid depending on regex-tdfa on mips, mipsel, and s390, where it fails to ↵Gravatar Joey Hess2013-05-06
| | | | build.
* try to fix build on hurd, which lacks haskell-network-infoGravatar Joey Hess2013-05-06
|
* Disable building with the haskell threaded runtime when the assistant is not ↵Gravatar Joey Hess2013-05-06
| | | | built. This may fix builds on s390x and sparc, which are failing to link -lHSrts_thr
* Temporarily add an upper bound to the version of yesod that can be built ↵Gravatar Joey Hess2013-05-02
| | | | with, since yesod 1.2 has a great many changes that will require extensive work on the webapp.
* work around strange endianness bug in port number on AndroidGravatar Joey Hess2013-05-02
|
* releasing version 4.201305014.20130501Gravatar Joey Hess2013-05-01
|
* reorderGravatar Joey Hess2013-04-30
|
* updateGravatar Joey Hess2013-04-30
|
* assistant: Fix bug that could cause incoming pushes to not get merged into ↵Gravatar Joey Hess2013-04-30
| | | | | | | | | | the local tree. Observed that the pushed refs were received, but not merged into master. The merger never saw an add event for these refs. Either git is not writing to a new file and renaming it into place, or the inotify code didn't notice that. Changed it to also watch for modify events and that seems to have fixed it!
* update changelogGravatar Joey Hess2013-04-30
| | | | | | | | | Note that the note on d12b1fb179bc1744f813ea3f616d503d2b0dfe09 turned out to be wrong. Multiple repository pairing over XMPP does work, because the annex-uuid of the xmpp remote is updated to the uuid of the new repo when pairing takes place. So the push from it is accepted. (And the other UUIDs are listed in uuid.log, so pushes from those repositories also are accepted of course.)
* Support building with DAV 0.4.Gravatar Joey Hess2013-04-30
|
* Store an annex-uuid file in the bucket when setting up a new S3 remote.Gravatar Joey Hess2013-04-27
|
* webapp: Now automatically fills in any creds used by an existing remote when ↵Gravatar Joey Hess2013-04-27
| | | | creating a new remote of the same type. Done for Internet Archive, S3, Glacier, and Box.com remotes.
* To enable an existing special remote, the new enableremote command must be ↵Gravatar Joey Hess2013-04-26
| | | | used. The initremote command now is used only to create new special remotes.
* per-IA-item content directoriesGravatar Joey Hess2013-04-25
|
* Automatically register public urls for files uploaded to the Internet Archive.Gravatar Joey Hess2013-04-25
|
* webapp: Display some additional information about a repository on its edit page.Gravatar Joey Hess2013-04-25
|
* S3: Dropping content from the Internet Archive doesn't work, but their API ↵Gravatar Joey Hess2013-04-25
| | | | indicates it does. Always refuse to drop from there.
* Internet Archive!Gravatar Joey Hess2013-04-25
| | | | | | | * Add public repository group. * webapp: Can now set up Internet Archive repositories. TODO: Enabling IA repositories.
* initremote: If two existing remotes have the same name, prefer the one with ↵Gravatar Joey Hess2013-04-24
| | | | a higher trust level.
* assistant: Sanitize XMPP presence information logged for debugging.Gravatar Joey Hess2013-04-24
|
* add TList, built on DListGravatar Joey Hess2013-04-24
|
* changelogGravatar Joey Hess2013-04-24
|
* Detect when the remote is broken like bitbucket is, and exits 0 when it ↵Gravatar Joey Hess2013-04-23
| | | | fails to run git-annex-shell.
* sync: Bug fix, avoid adding to the annex the dummy symlinks used on crippled ↵Gravatar Joey Hess2013-04-23
| | | | | | | | | | | | | | | | | | | filesystems. The root of the problem is that toInodeCache sees a non-symlink, and so goes on and generates a new inode cache for the dummy symlink. Any place that toInodeCache, or sameFileStatus, or genInodeCache are called may need to deal with this case. Although many of them are ok. For example, prepSendAnnex calls sameInodeCache, which calls genInodeCache.. but if the file content is not present, the InodeCache generated for its standin file is appropriately not the same, and so it returns Nothing. I've audited some, but have to say I'm not happy with this; it should be handled at the type level somehow, or a toInodeCache wrapper be used that is aware of dummy symlinks. (The Watcher already dealt with it, via the guardSymlinkStandin function.)
* rmurl: New command, removes one of the recorded urls for a file.Gravatar Joey Hess2013-04-22
|
* assistant: When built with git before 1.8.0, use `git remote rm` to delete a ↵Gravatar Joey Hess2013-04-22
| | | | remote. Newer git uses `git remote remove`.
* direct, indirect: Refuse to do anything when the assistant or git-annex ↵Gravatar Joey Hess2013-04-22
| | | | watch daemon is running.