summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
* releasing version 4.201306014.20130601Gravatar Joey Hess2013-06-01
|
* Android: Work around Android devices where the `am` command doesn't work.Gravatar Joey Hess2013-05-31
|
* Can now restart certain long-running git processes if they crash, and ↵Gravatar Joey Hess2013-05-31
| | | | | | | | | | | | | | | | | | | continue working. Fuzz tests have shown that git cat-file --batch sometimes stops running. It's not yet known why (no error message; repo seems ok). But this is something we can deal with in the CoProcess framework, since all 3 types of long-running git processes should be restartable if they fail. Note that, as implemented, only IO errors are caught. So an error thrown by the reveiver, when it sees something that is not valid output from git cat-file (etc) will not cause a restart. I don't want it to retry if git commands change their output or are just outputting garbage. This does mean that if the command did a partial output and crashed in the middle, it would still not be restarted. There is currently no guard against restarting a command repeatedly, if, for example, it crashes repeatedly on startup.
* Android: Added an "Open WebApp" item to the terminal's menu. Should work for ↵Gravatar Joey Hess2013-05-28
| | | | Android devices that cannot auto-open the webapp on start.
* XMPP: Fix a file descriptor leak.Gravatar Joey Hess2013-05-26
|
* sync: Fix double merge conflict resolution handling.Gravatar Joey Hess2013-05-26
| | | | | | | Ie, when there'a a conflicted merge we may get foo.variant-xxxx created in a merge. If a second merge conflict occurs on that new file, it was not falling back to putting in the whole key (which should stop the merge conflicts happening for good, but is ugly).
* content: New command line way to view and configure a repository's preferred ↵Gravatar Joey Hess2013-05-25
| | | | content settings.
* Improve error handling when getting uuid of http remotes to auto-ignore, ↵Gravatar Joey Hess2013-05-25
| | | | like with ssh remotes.
* assistant: Work around git-cat-file's not reloading the index after files ↵Gravatar Joey Hess2013-05-25
| | | | | | are staged. Argh.
* Fix bug in parsing of parens in some preferred content expressions. This ↵Gravatar Joey Hess2013-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes the behavior of the manual mode group. The current manual mode preferred content expression is: "present and (((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1))) or (not copies=semitrusted+:1))" The old matcher misparsed this, to basically: OR (present and (...)) (not copies=semitrusted+:1)) The paren handling and indeed the whole conversion from tokens to the matcher was just wrong. The new way may not be the cleverest, but I think it is correct, and you can see how it pattern matches structurally against the expressions when parsing them. That expression is now parsed to: MAnd (MOp <function>) (MOr (MOr (MAnd (MOp <function>) (MOp <function>)) (MNot (MOr (MOp <function>) (MOp <function>)))) (MNot (MOp <function>))) Which appears correct, and behaves correct in testing. Also threw in a simplifier, so the final generated Matcher has less unnecessary clutter in it. Mostly so that I could more easily read & confirm them. Also, added a simple test of the Matcher to the test suite. There is a small chance of badly formed preferred content expressions behaving differently than before due to this rewrite.
* Android app: Avoid using hard links to app's lib directory, which is ↵Gravatar Joey Hess2013-05-23
| | | | | | | sometimes on a different filesystem than the data directory. Assumes symlinks work on all android. If not, this would need to be adapted to try both. This worked for me.
* XMPP: Send pings and use them to detect when contact with the server is lost.Gravatar Joey Hess2013-05-22
| | | | | | I noticed that when my modem hung up and redialed, my xmpp client was left sending messages into the void. This will also handle any idle disconnection issues.
* hook special remote: Added combined hook program support.Gravatar Joey Hess2013-05-21
|
* XMPP: Avoid redundant and unncessary pushes. Note that this breaks ↵Gravatar Joey Hess2013-05-21
| | | | compatibility with previous versions of git-annex, which will refuse to accept any XMPP pushes from this version.
* releasing version 4.201305214.20130521Gravatar Joey Hess2013-05-21
|
* mention autobuild fixesGravatar Joey Hess2013-05-20
|
* Detect bad content in ~/.config/git-annex/program and look in PATH instead.Gravatar Joey Hess2013-05-20
|
* 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
|