Setting version to 1.8.0
Setting version to 1.9.0-SNAPSHOT
Remove duplicate RichTreeWalk tests

The RichTreeWalkSpec already has these.
Update to Specs2 v2.1

Version 2 of Specs2 seems to introduce a requirement that the end of an
Example /must/ be convertible to a result, which necessitates a bit of
juggling to avoid errors like these:

could not find implicit value for evidence parameter of type org.specs2.execute.AsResult[Unit]
Update to Specs 2 v2.1.1
restructure assertions on Main BFG tests as invariant|will-be-removed
Update headline speed increase to 720x
Tweak resolve abbr Git id to return Success/Failure rather than Option
Fix #22 - removal of identically-sized big blobs

Embarrassingly, if you were trying to remove big blobs, and there was more
than one blob of a given byte size, then only *one* of those sized blobs
would be targeted for removal. Caused by incorrect use of a SortedSet,
acting on a comparison operator that reported equality on size equality...

Problem spotted thanks to the magnificient gentleman programmer
@PetrK-GNM, who had a repo that contained two zip files of exactly
61464170 bytes. Petr, we salute you with this earth-shatteringly
inadequate ascii-art rendering of your portrait:

                         .,;:;,,,''.............
                   ..'',,...                  ...''....
               ;::'..                                ..,''.
            .co,.          ..                       ......';.
           .o'..          ..... . .  ...........         ...':;
          :l..         .................''''..'..          ...,::
         ;;.          .......'''.......'..'',''........       ..,l,
        .:.         ...''''''...''..'.......'.......',...    ....,c;
        ;.          .'.;ldkOOkxddddoc::;'',;,,'.....'',,..    ...',l,
       :'.      ....,;:dO000KKKKKKKKKKK0Okdll:;,,'...',;;,..   ..'';l,
      .:.   ......',;cokO0KKKKKKKKKKXXXXXXXXKOxoc;;:cloxxoc,.. .'',;:l
      c...........'';cdkO00KKKKKKKKXXXXXXXXXXXXK0OkO0KKKK0Okol;;,::;;:;
     :'...''','',,,,:okOO000KKKKKKKKKXXXXXXXXXXXXXXXXXXXXXK000Oxoc:c;;l
    ':......',,,;::coxOO000KKKKKKKKXXXXXXXXXXXXXXXXXXXXXXXKKKKK0Ox:::::
    ;;....'',,,;:cloxOOO00KKKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKK0l,;;:
    c....,,.'';:cokO000000Okk0KKXXXXXXNXXXXXXXXXXXXXXXXXXXXXXXXXKKx:;,c
  .cx,...'',',;cdO0000Okxoc;;;cdO0KXXXNNXXXXXXXXXXXXXXXXXXXXXXXXKKxcc:,
 :ddOO:.''',,:lxO0000Oxdxkkxxo:,;:okKXXXXXXXXXXXXXXXXXXXXXXXXXXXKKo::l
.Oxxdxx:,,;;clxO000000O000K0000Oo;.':okKKXXXXXXXXXXXXXXXXXXXXXKKK0c:l'
,0kOOdddl:;:lxO0000000000OOkkkxxddl:,.'cxO0KXXXXXXXXXXXXXXXXXXKKKOc:c
.0kO0OxxoccoxO000000000Okxdllc:lldol:c:;:dO0KKKKXKKKKKKKXXXXXXXKKOcl.
 kO0Od;xdlokO0000KKKKKKOkdlxko:ld0Kxooolc:d0KXK00OdxdodO00000KXKKkl'
 c00OOxkxxkO0000KKKXXXXXKOOOOkkxOKK0kxxOxxd0KXXKOl'....,;::cloxOKdl
 :KK0OOOkkOO000KKKKXXXXXXK0OO000OOOkkO00kOOKXXXXKo;....',cloddox0x,
 :k00dxkkOO00000KKKXXXXXXXXXKK000OOO0000000KXXXXKOkxddlccc;cx000Kk'
 .000kkxkOO000000KKKXXXXXXXXXXXXXKKKKK00000KKXXXXK0OkOOOOOkdlk0KKO.
  000kxdxkOO0000KKKKXXXXXXXXXXXXXXXKK000K000KKXXXKKKK000000KKKKKKo
  ;kOxxddkOOO00KKKKKXXXXXXXXXXXXXXXKK0O00000KKXXXKXXXXXXXXKXXXXX0.
     okodxkOOO0KKKKKKKXXXXXXXXXXXXXKOO00000KKXXXXKXXXXXXXXXXXXXK'
     dddxdkOkO00KKKKKKXXXXXXXXXKKKKOO0OxdxO0KXXXXKXXXXXXXXXXXXKO
     OdodxkxkO0KKKKKKKXXXXXXKKKKKKKxkOkl',;oO0KK0OKXXXXXXXXXXKKk
    'OdldxkdkO000KKKKKXXXKKK000KKK00kkO00OkdxxkkOKXXXXXXXXXXXK0:
    :kxdxxxxxkO00K00KKKXK00OOOOOOO0OOkddxkOOOOO00KXXXXXXXXXXKKd
    .x00XXXKKKKKKK00KKK0Oxoolllddxdodcocldoxxdk0KKKKKXXXXXKKK0.
     :xxoxOXXXXXXXXXXXXXK0Okddddolloloo:xlldlcok00KKKKKXXXKKK;
     .xxlc;:ldkO00Okdl;',:x0XX0xoodxxkxkkxkxddodxkkO0KKKKKK0c
      odl,'';c:;:ccoxkkxxoloxOOOxkkkkkkkOkkkxxdoddddkKKKK0O,
      .dl;..'';cooxkO0000K00O00KKKKKKKK00OkxxxxodddkOKK0OO.
       'lc'..,:cxO0OOO0000000OOOOOkxddxOO0KKKKKK0OOOKK0Od
        .c;'.'':xOOOOOO0000000Okkdc;''cddxk00KKK00000Odl
         'cc;';:lodkkxk000000OOOkkdccccodkk0KK000OOkdl,
          .:l:::;:clcodkxOkxdxdxxkxdkxxxkO0KK00OOkxc:'
            ,lc::::c,;.';;,;clc;:cldxlldxkkO00kkooo:.
              ':;,'... .  ....'.',:l:;,:coodolclll.
                ....       .. .  ....'.,,',,;ccl:
                                      ..''.':cc.
                                       ...':;.
                                       .''.
Tweak switch name to 'massive-non-file-objects-sized-up-to' for issue #20
sbt plugin update-fest
Setting version to 1.9.0
Setting version to 1.10.0-SNAPSHOT
Add benchmark for chromium-src
Fix #23 - stack overflow on ref-update for chromium/src.git

The end-of-run ref-update (performed after all the cleaned objects have
been generated) was **crashing** with a stackoverflow on this repo:

http://git.chromium.org/chromium/src.git

The cause was this code in the JGit library, which tries to work out if
the ref-change is a non-fast-forward update or not:

https://github.com/eclipse/jgit/blob/9b26e4/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java#L292-L299

...determining the isMergedInto() boolean is vitally important if you're
fetching updates from someone else's repository, but it's no value to us
at all when we're doing the BFG update (where we /know/ we're going to
'throw away' large amounts of history) - and the calculation can be very
heavy on repos with large numbers of commits (ie ~150s on a 2013 MacBook
Air for a minimal test-case repo with 300000 empty commits).

Unfortunately, there's currently no way to stop JGit from calling
revWalk.isMergedInto() (for instance, by *telling* JGit that the update
is a non-fast-forward) but we /can/ shortcut the work involved by
overriding the method and using our knowledge that 'cleaned' object-ids
are non-ff updates. The ref-update is now ~20ms on the same hardware,
and the code-path that crashed the BFG on chromium/src.git is no longer
called.

Thanks to @eglaysher for reporting the issue - nice bug!

https://github.com/rtyley/bfg-repo-cleaner/issues/23
Merge branch 'fix-23-ref-update-stackoverflow'
Fix #24 - Missing Objects on listing 'dirty' files (submodules)

The diff-representing code attempted to lookup all affected objects
to display their object size, but if the tree entry was a submodule,
would crash as the object id was actually a commit in an external
repo, and consequently 'missing'.

Discovered against the chromium-src repo, which contains a few
submodules...

Also, tweak to use 'view' so that not *all* objects are textually
summarised when just showing the shortened list of the first two
or three.

https://github.com/rtyley/bfg-repo-cleaner/issues/24
Setting version to 1.10.0
Setting version to 1.11.0-SNAPSHOT
Tweak variable name for code clarity