summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
* Fix a bug in the git-annex branch handling code that could cause info from a ↵Gravatar Joey Hess2013-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remote to not be merged and take effect immediately. This bug was turned up by the test suite, running fsck in direct mode. A repository was cloned, was put into direct mode, was fscked, and fsck incorrectly said that no copy existed of a file, that was actually present in origin. This turned out to occur because fsck first did a Annex.Branch.change, recording that it did not locally have the file. That was recorded in the journal. Since neither the git annex direct not the fsck had yet needed to read any info from the branch, but had only made changes to it, the origin/git-annex branch was not yet merged in. So the journal got a location log entry written to it, but this did not include the location log info for the origin. When fsck then did a Annex.Branch.get, it trusted the journal was cosnsitent, and returned it, again w/o merging from origin/git-annex. This latter behavior is the actual bug. Refer to commit e9bfa8eaed3ff59a4c0bc8d4d677bc493177807c for the thinking behind it being ok to make a change to a file on the branch, without first merging the branch. That thinking still stands. However, it means that files in the journal cannot be trusted to be consistent if the branch has not been merged. So, to fix, just enure the branch gets merged, even when reading from the journal. In tests, this does not seem to cause any extra merging. Except, of course, in the one case described above. But git annex add, etc, are able to make changes w/o first merging the branch.
* run the test suite twice, once in direct modeGravatar Joey Hess2013-05-20
| | | | | On a filesystem that only supports direct mode, it will test direct mode twice, but oh well.
* direct mode bug fix: After a conflicted merge was automatically resolved, ↵Gravatar Joey Hess2013-05-20
| | | | | | | | | | | | | | | | | the content of a file that was already present could incorrectly be replaced with a symlink. The bug was in movein, which just replaceFile'd the file with a symlink, even if it already had the desired content, before trying to pull the content out of the annex and replace the symlink with it. That was ok-ish for non conflicted merges, where if the file existed it would be an old version of the content. But for conflicted merges, the automatic merge resolver has already run, and will have already put the desired content into the file for the local variant. Also, made removeDirect not trust that the associated files map is correct. Only if it can verify that another file has the content will it not move it into .git/annex/objects.
* debian architecture build funGravatar Joey Hess2013-05-19
|
* 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.