• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

buildinspace / peru
93%
master: 88%

Build:
Build:
LAST BUILD BRANCH: github_ci
DEFAULT BRANCH: master
Repo Added 21 Jul 2014 10:21PM UTC
Files 22
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH cacherewrite
branch: cacherewrite
CHANGE BRANCH
x
Reset
  • cacherewrite
  • 0.1.1
  • 0.2.0
  • 0.2.1
  • 0.2.2
  • 0.2.3
  • 0.2.4
  • 0.2.5
  • 0.2.6
  • 0.3.0
  • 0.3.1
  • 0.3.2
  • 0.3.3
  • 0.4.0
  • 1.0.0
  • 1.0.1
  • 1.1.0
  • 1.1.1
  • 1.1.2
  • 1.1.3
  • 1.1.4
  • 1.2.0
  • appveyor
  • appveyor-fix
  • appveyor2
  • appveyor_clean
  • ascii
  • coalesce
  • colon
  • delete
  • deprecations
  • dotgit
  • example_fix
  • fix
  • flags
  • github_ci
  • list
  • master
  • omitdotperu
  • python39
  • recursiondefault
  • searchname
  • staleindex
  • testingbadge
  • third_party
  • travis_python3.9
  • treeops
  • uncomment
  • windows

pending completion
430

push

travis-ci

oconnor663
rewrite the cache to be asynchronous

We've been seeing "Task X took Y seconds" warnings in our tests for a
long time, especially on Windows. Running git commands synchronously
blocks other tasks from running, like display redrawing. It's bad
practice in an async program.

One of the barriers to async-ifying the cache code earlier was that many
commands relied on having exclusive ownership of the index file while
they were running. For example, 1) read a tree into the index, 2) merge
another tree into some subdirectory, 3) write out the result. If any
other git commands ran in the middle of that, it would screw up the
result. So we need to rewrite every cache function to use its own
temporary index file, if we want them to run in parallel.

The reason I'm finally getting around to this now, is that I'm trying to
reduce the number of git commands that run in a no-op sync. One of the
optimizations I'm going to want to do, is to reuse the index file from
the last sync, so that we don't need a `read-tree` and an `update-index`
just to set us up for `diff-files`. But the plumbing to do that right is
pretty much the same as what we should be doing to run every git command
with its own index anyway. So let's just bite the bullet and do that
now, and then reusing index files will be easy after that.

1554 of 1665 relevant lines covered (93.33%)

2.8 hits per line

Relevant lines Covered
Build:
Build:
1665 RELEVANT LINES 1554 COVERED LINES
2.8 HITS PER LINE
Source Files on cacherewrite
Detailed source file information is not available for this build.

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
430 cacherewrite rewrite the cache to be asynchronous We've been seeing "Task X took Y seconds" warnings in our tests for a long time, especially on Windows. Running git commands synchronously blocks other tasks from running, like display redrawing. It's bad prac... push 28 Nov 2015 01:14AM UTC oconnor663 travis-ci pending completion  
428 cacherewrite rewrite the cache to be asynchronous We've been seeing "Task X took Y seconds" warnings in our tests for a long time, especially on Windows. Running git commands synchronously blocks other tasks from running, like display redrawing. It's bad prac... push 27 Nov 2015 04:06PM UTC oconnor663 travis-ci pending completion  
427 cacherewrite absolutify GIT_INDEX_FILE...tests passing!!! push 27 Nov 2015 03:25PM UTC oconnor663 travis-ci pending completion  
See All Builds (455)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc