[Product Update] Speeding up code checkout

Thanks. I already got helped out by Sebastian Lerner.

Based on aggregate feedback and the issues encountered, we have rolled back blobless clones. Checkout steps will return to the original functionality prior to Jan 25.

Follow future developments here if desired: Allow for Shallow Clone command in 2.0 | Feature Requests | CircleCI Ideas

Any future breaking changes will be announced via email in advance.

Hi All! Heads up we are planning a new implementation of blobless and shallow clone that allows you to choose the checkout method that best fits your needs. More updates coming in April. To get notified, follow Cloud feature request: Shallow clone command in 2.0 or subscribe to the CircleCI changelog.

hi @oranwild has there been any progress on shallow clone?

Great timing @esetnik! New blobless functionality will be released before the end of September.

@esetnik let me know if this helps speed up checkouts for you all

1 Like

The default checkout method will switch to blobless starting November 3. This will be a gradual rollout, so not all organizations will be impacted on November 3.

Most builds will continue working without changes with blobless checkout. However, you need to take action if your builds require access to historical file contents.
Find more information on how to opt-out of using blobless in the announcement above.

1 Like

Have folks found that the use of blobless checkout makes source caching (Caching dependencies :: CircleCI Documentation) less relevant?

We are facing an issue with blobless clone. It seems that some builds are now using the blobless clone and some not. We see this occasionally for some builds:

Cloning git repository - xxxx
        - Creating a blobless clone for better performance

We are getting this error in SonarCloud:

java.lang.IllegalStateException: org.eclipse.jgit.errors.MissingObjectException: 
Missing blob 9c39500c6c3c351940bb84d646710d28acdfcfd4 We switched to using 

We tried moving to an orb for git clone:

- git-shallow-clone/checkout_advanced:
    clone_options: '--no-filter'
    fetch_options: '--no-filter'

but it didn’t resolve the issue.

Also tried disabling the feature with:

   - checkout:
          method: full

still no dice.

Moreover we see that the blob exists by logging in CircleCI job after the error occurs:

git cat-file -t 9c39500c6c3c351940bb84d646710d28acdfcfd4 
remote: Enumerating objects: 1, done. 
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 1 (from 1) Receiving objects: 100% (1/1), 864 bytes | 864.00 KiB/s, done. blob

Any help will be appreciated

Thanks

Thanks for reporting the issue. We’ve seen issues in the past with SonarQube and blobless cloning, and we do recommend you switch back to full checkout as you’ve tried already to resolve the issue.

To help debug the issue of why switching to a full checkout doesn’t seem to work, could you check if the logs for the “Checkout code” step in your pipelines contains the following line?

Creating a blobless clone for better performance

The remote: Enumerating objects: log line seems to point to a blobless clone happening in spite of the change to the configuration file.

By chance, did you add the method: full line with tabs instead of spaces?