Skip to content
Snippets Groups Projects
  1. Jun 17, 2017
    • Joey Hess's avatar
      Fix build with QuickCheck 2.10. · 75cecbbe
      Joey Hess authored
      QuickCheck added an Arbitrary instance for CTime aka EpochTime. However,
      while git-annex's instance disallowed times before the epoch, QuickCheck's
      does not. So, rather than using its instance, convert from an Integer.
      
      This commit was sponsored by Thomas Hochstein on Patreon.
      75cecbbe
  2. Mar 10, 2017
  3. Feb 24, 2017
    • Joey Hess's avatar
      SHA1 collisions in key names was more exploitable than I thought · 6b52fcbb
      Joey Hess authored
      Yesterday's SHA1 collision attack could be used to generate eg:
      
      SHA256-sfoo--whatever.good
      SHA256-sfoo--whatever.bad
      
      Such that they collide. A repository with the good one could have the
      bad one swapped in and signed commits would still verify.
      
      I've already mitigated this.
      6b52fcbb
    • Joey Hess's avatar
      add KeyVariety type · 9c465035
      Joey Hess authored
      Where before the "name" of a key and a backend was a string, this makes
      it a concrete data type.
      
      This is groundwork for allowing some varieties of keys to be disabled
      in file2key, so git-annex won't use them at all.
      
      Benchmarks ran in my big repo:
      
      old git-annex info:
      
      real	0m3.338s
      user	0m3.124s
      sys	0m0.244s
      
      new git-annex info:
      
      real	0m3.216s
      user	0m3.024s
      sys	0m0.220s
      
      new git-annex find:
      
      real	0m7.138s
      user	0m6.924s
      sys	0m0.252s
      
      old git-annex find:
      
      real	0m7.433s
      user	0m7.240s
      sys	0m0.232s
      
      Surprising result; I'd have expected it to be slower since it now parses
      all the key varieties. But, the parser is very simple and perhaps
      sharing KeyVarieties uses less memory or something like that.
      
      This commit was supported by the NSF-funded DataLad project.
      9c465035
    • Joey Hess's avatar
      factor non-type stuff out of Key · ca0daa8b
      Joey Hess authored
      ca0daa8b
    • Joey Hess's avatar
      make file2key reject E* backend keys with a long extension · 35739a74
      Joey Hess authored
      I am not happy that I had to put backend-specific code in file2key. But
      it would be very difficult to avoid this layering violation.
      
      Most of the time, when parsing a Key from a symlink target, git-annex
      never looks up its Backend at all, so adding this check to a method of
      the Backend object would not work.
      
      The Key could be made to contain the appropriate
      Backend, but since Backend is parameterized on an "a" that is fixed to
      the Annex monad later, that would need Key to change to "Key a".
      
      The only way to clean this up that I can see would be to have the Key
      contain a LowlevelBackend, and put the validation in LowlevelBackend.
      Perhaps later, but that would be an extensive change, so let's not do
      it in this commit which may want to cherry-pick to backports.
      
      This commit was sponsored by Ethan Aubin.
      35739a74
    • Joey Hess's avatar
      Tighten key parser to not accept keys containing a non-numeric fields, which... · 60d99a80
      Joey Hess authored
      Tighten key parser to not accept keys containing a non-numeric fields, which could be used to embed data useful for a SHA1 attack against git.
      
      Also todo about why this is important, and with some further hardening to
      add.
      
      This commit was sponsored by Ignacio on Patreon.
      60d99a80
  4. Nov 17, 2016
    • Joey Hess's avatar
      implementation of peer-to-peer protocol · 65e90339
      Joey Hess authored
      For use with tor hidden services, and perhaps other transports later.
      
      Based on Utility.SimpleProtocol, it's a line-based protocol,
      interspersed with transfers of bytestrings of a specified size.
      
      Implementation of the local and remote sides of the protocol is done
      using a free monad. This lets monadic code be included here, without
      tying it to any particular way to get bytes peer-to-peer.
      
      This adds a dependency on the haskell package "free", although that
      was probably pulled in transitively from other dependencies already.
      
      This commit was sponsored by Jeff Goeke-Smith on Patreon.
      65e90339
  5. Jul 26, 2016
  6. Jan 20, 2016
  7. Nov 16, 2015
  8. Jun 16, 2015
  9. May 30, 2015
  10. Jan 21, 2015
  11. Oct 09, 2014
    • Joey Hess's avatar
      fix some mixed space+tab indentation · 7b50b3c0
      Joey Hess authored
      This fixes all instances of " \t" in the code base. Most common case
      seems to be after a "where" line; probably vim copied the two space layout
      of that line.
      
      Done as a background task while listening to episode 2 of the Type Theory
      podcast.
      7b50b3c0
  12. Aug 02, 2014
  13. Jul 27, 2014
    • Joey Hess's avatar
      resume interrupted chunked downloads · 9d4a766c
      Joey Hess authored
      Leverage the new chunked remotes to automatically resume downloads.
      Sort of like rsync, although of course not as efficient since this
      needs to start at a chunk boundry.
      
      But, unlike rsync, this method will work for S3, WebDAV, external
      special remotes, etc, etc. Only directory special remotes so far,
      but many more soon!
      
      This implementation will also properly handle starting a download
      from one remote, interrupting, and resuming from another one, and so on.
      
      (Resuming interrupted chunked uploads is similarly doable, although
      slightly more expensive.)
      
      This commit was sponsored by Thomas Djärv.
      9d4a766c
  14. Jul 25, 2014
    • Joey Hess's avatar
      use same hash directories for chunked key as are used for its parent · 8f93982d
      Joey Hess authored
      This avoids a proliferation of hash directories when using new-style
      chunking, and should improve performance since chunks are accessed
      in sequence and so should have a common locality.
      
      Of course, when a chunked key is encrypted, its hash directories have no
      relation to the parent key.
      
      This commit was sponsored by Christian Kellermann.
      8f93982d
  15. Jul 24, 2014
    • Joey Hess's avatar
      add chunk metadata to Key · d751591a
      Joey Hess authored
      Added new fields for chunk number, and chunk size. These will not appear
      in normal keys ever, but will be used for chunked data stored on special
      remotes.
      
      This commit was sponsored by Jouni K Seppanen.
      d751591a
  16. Jul 17, 2014
    • Joey Hess's avatar
      · e213ef31
      Joey Hess authored
      git-annex (5.20140717) unstable; urgency=high
      
        * Fix minor FD leak in journal code. Closes: #754608
        * direct: Fix handling of case where a work tree subdirectory cannot
          be written to due to permissions.
        * migrate: Avoid re-checksumming when migrating from hashE to hash backend.
        * uninit: Avoid failing final removal in some direct mode repositories
          due to file modes.
        * S3: Deal with AWS ACL configurations that do not allow creating or
          checking the location of a bucket, but only reading and writing content to
          it.
        * resolvemerge: New plumbing command that runs the automatic merge conflict
          resolver.
        * Deal with change in git 2.0 that made indirect mode merge conflict
          resolution leave behind old files.
        * sync: Fix git sync with local git remotes even when they don't have an
          annex.uuid set. (The assistant already did so.)
        * Set gcrypt-publish-participants when setting up a gcrypt repository,
          to avoid unncessary passphrase prompts.
          This is a security/usability tradeoff. To avoid exposing the gpg key
          ids who can decrypt the repository, users can unset
          gcrypt-publish-participants.
        * Install nautilus hooks even when ~/.local/share/nautilus/ does not yet
          exist, since it is not automatically created for Gnome 3 users.
        * Windows: Move .vbs files out of git\bin, to avoid that being in the
          PATH, which caused some weird breakage. (Thanks, divB)
        * Windows: Fix locking issue that prevented the webapp starting
          (since 5.20140707).
      
      # imported from the archive
      e213ef31
  17. Apr 11, 2014
    • Joey Hess's avatar
      · 2a82adc4
      Joey Hess authored
      git-annex (5.20140412) unstable; urgency=high
      
        * Last release didn't quite fix the high cpu issue in all cases, this should.
      
      # imported from the archive
      2a82adc4
  18. Apr 02, 2014
    • Joey Hess's avatar
      · b6d46c21
      Joey Hess authored
      git-annex (5.20140402) unstable; urgency=medium
      
        * unannex, uninit: Avoid committing after every file is unannexed,
          for massive speedup.
        * --notify-finish switch will cause desktop notifications after each
          file upload/download/drop completes
          (using the dbus Desktop Notifications Specification)
        * --notify-start switch will show desktop notifications when each
          file upload/download starts.
        * webapp: Automatically install Nautilus integration scripts
          to get and drop files.
        * tahoe: Pass -d parameter before subcommand; putting it after
          the subcommand no longer works with tahoe-lafs version 1.10.
          (Thanks, Alberto Berti)
        * forget --drop-dead: Avoid removing the dead remote from the trust.log,
          so that if git remotes for it still exist anywhere, git annex info
          will still know it's dead and not show it.
        * git-annex-shell: Make configlist automatically initialize
          a remote git repository, as long as a git-annex branch has
          been pushed to it, to simplify setup of remote git repositories,
          including via gitolite.
        * add --include-dotfiles: New option, perhaps useful for backups.
        * Version 5.20140227 broke creation of glacier repositories,
          not including the datacenter and vault in their configuration.
          This bug is fixed, but glacier repositories set up with the broken
          version of git-annex need to have the datacenter and vault set
          in order to be usable. This can be done using git annex enableremote
          to add the missing settings. For details, see
          http://git-annex.branchable.com/bugs/problems_with_glacier/
        * Added required content configuration.
        * assistant: Improve ssh authorized keys line generated in local pairing
          or for a remote ssh server to set environment variables in an
          alternative way that works with the non-POSIX fish shell, as well
          as POSIX shells.
      
      # imported from the archive
      b6d46c21
  19. Mar 26, 2014
    • Joey Hess's avatar
      · f4a98d2d
      Joey Hess authored
      git-annex (5.20140320~bpo70+1) wheezy-backports; urgency=medium
      
        * Updating backport to newest release.
        * Note that this backport does not feature constant time webapp auth token
          comparisons. It's not recommended to use the webapp on multiuser systems,
          since another use may be able to use a timing attack to guess its auth
          token. If you need that, it should not be hard to backport
          haskell-securemem.
      
      # imported from the archive
      f4a98d2d
  20. Mar 05, 2014
  21. Feb 20, 2014
    • Joey Hess's avatar
      · 9c426c0d
      Joey Hess authored
      git-annex (5.20140210~bpo70+2) wheezy-backports; urgency=medium
      
        * Updating backport to newest release.
        * Remaining differences in this backport:
          - No webdav special remote support.
          - Test suite is not built into git-annex as it now uses haskell-tasty,
            which is not yet backported.
          - No skein hash support.
      
      # imported from the archive
      9c426c0d
  22. Nov 27, 2013
    • Joey Hess's avatar
      · 7189dfd7
      Joey Hess authored
      git-annex (5.20131127) unstable; urgency=low
      
        * webapp: Detect when upgrades are available, and upgrade if the user
          desires.
          (Only when git-annex is installed using the prebuilt binaries
          from git-annex upstream, not from eg Debian.)
        * assistant: Detect when the git-annex binary is modified or replaced,
          and either prompt the user to restart the program, or automatically
          restart it.
        * annex.autoupgrade configures both the above upgrade behaviors.
        * Added support for quvi 0.9. Slightly suboptimal due to limitations in its
          interface compared with the old version.
        * Bug fix: annex.version did not get set on automatic upgrade to v5 direct
          mode repo, so the upgrade was performed repeatedly, slowing commands down.
        * webapp: Fix bug that broke switching between local repositories
          that use the new guarded direct mode.
        * Android: Fix stripping of the git-annex binary.
        * Android: Make terminal app show git-annex version number.
        * Android: Re-enable XMPP support.
        * reinject: Allow to be used in direct mode.
        * Futher improvements to git repo repair. Has now been tested in tens
          of thousands of intentionally damaged repos, and successfully
          repaired them all.
        * Allow use of --unused in bare repository.
      
      # imported from the archive
      7189dfd7
  23. Nov 11, 2013
  24. Nov 06, 2013
    • Joey Hess's avatar
      · d2633388
      Joey Hess authored
      git-annex (4.20131106~bpo70+1) wheezy-backports; urgency=low
      
        * Backport is now built against git 1.8.4, also now available in backports.
        * Improve local pairing behavior when two computers both try to start
          the pairing process separately.
        * sync: Work even when the local git repository is new and empty,
          with no master branch.
        * gcrypt, bup: Fix bug that prevented using these special remotes
          with encryption=pubkey.
        * Fix enabling of gcrypt repository accessed over ssh;
          git-annex-shell gcryptsetup had a bug that caused it to fail
          with permission denied.
        * Fix zombie process that occurred when switching between repository
          views in the webapp.
        * map: Work when there are gcrypt remotes.
        * Fix build w/o webapp.
        * Fix exception handling bug that could cause .git/annex/index to be used
          for git commits outside the git-annex branch. Known to affect git-annex
          when used with the git shipped with Ubuntu 13.10.
      
      # imported from the archive
      d2633388
  25. Oct 16, 2013
  26. Sep 11, 2013
  27. Aug 15, 2013
    • Joey Hess's avatar
      · 341269e0
      Joey Hess authored
      git-annex (4.20130815) unstable; urgency=low
      
        * assistant, watcher: .gitignore files and other git ignores are now
          honored, when git 1.8.4 or newer is installed.
          (Thanks, Adam Spiers, for getting the necessary support into git for this.)
        * importfeed: Ignores transient problems with feeds. Only exits nonzero
          when a feed has repeatedly had a problems for at least 1 day.
        * importfeed: Fix handling of dots in extensions.
        * Windows: Added support for encrypted special remotes.
        * Windows: Fixed permissions problem that prevented removing files
          from directory special remote. Directory special remotes now fully usable.
      
      # imported from the archive
      341269e0
  28. Jul 04, 2013
  29. Feb 28, 2013
  30. Nov 11, 2012
  31. Sep 21, 2012