Skip to content

Negociation broke fetching from the bcachefs git repository #888

Closed
@g2p

Description

@g2p

Duplicates

  • I have searched the existing issues

Current behavior 😯

This is another followup to negotiation changes.

I am testing gix fetch on a lot of cloned repos, and noticed one of them breaking in 0.26.0, after bisecting this happens at the point #861 was merged (ae845de Merge branch 'integrate-gix-negotiate').

Bisection is slightly imprecise because some of the commits in the PR didn't compile individually and had to be skipped.

git bisect log
git bisect start
# status: waiting for both good and bad commits
# bad: [4e081f2141dcb9919597c53dfd5706cc9439d541] update changelog with information for the `gix` CLI.
git bisect bad 4e081f2141dcb9919597c53dfd5706cc9439d541
# status: waiting for good commit(s), bad commit known
# good: [234aee07b3693f5cf08ed375b9257b1327e0f7d1] Release gitoxide-core v0.27.0, gitoxide v0.25.0
git bisect good 234aee07b3693f5cf08ed375b9257b1327e0f7d1
# good: [97b3f7e2eaddea20c98f2f7ab6a0d2e2117b0793] Merge branch 'consecutive-negotiation'
git bisect good 97b3f7e2eaddea20c98f2f7ab6a0d2e2117b0793
# good: [0269eedc08c21589b5381d9b7d7fcc7004160bf8] Include missing changelog file in some crates
git bisect good 0269eedc08c21589b5381d9b7d7fcc7004160bf8
# skip: [ae1bc41817bec3b83fe65104e7e3efe4bd798a78] Add test to validate alternates in the context of fetching
git bisect skip ae1bc41817bec3b83fe65104e7e3efe4bd798a78
# bad: [7983f6fd4ef242d494962fe35b8b8f91a6135f32] adapt to changes in `gix`
git bisect bad 7983f6fd4ef242d494962fe35b8b8f91a6135f32
# good: [11ad8a890a6233befb5d2b6b41caadbcb296c3f5] feat!: Add version of Graph that handles fully-parsed commits
git bisect good 11ad8a890a6233befb5d2b6b41caadbcb296c3f5
# good: [877aa2921d8491d301945f86d5a69382e40fb081] feat: Add `fetch::Arguments::is_stateless()` to aid proper use of arguments.
git bisect good 877aa2921d8491d301945f86d5a69382e40fb081
# skip: [6a3c02131c9ebca911be5f751e5a6c67fbdbf609] fix!: make V1 stateless negotations work.
git bisect skip 6a3c02131c9ebca911be5f751e5a6c67fbdbf609
# skip: [af0ef2f36736e3805f769d8cd59c9fa7eb6a22a0] feat: use `gix-negotiate` in fetch machinery.
git bisect skip af0ef2f36736e3805f769d8cd59c9fa7eb6a22a0
# good: [c5dc7b4c43f07c04cdfb218de03e6725ff3fdb64] fix: `include-tag` is now properly handled in V1 fetch arguments
git bisect good c5dc7b4c43f07c04cdfb218de03e6725ff3fdb64
# only skipped commits left to test
# possible first bad commit: [7983f6fd4ef242d494962fe35b8b8f91a6135f32] adapt to changes in `gix`
# possible first bad commit: [ae1bc41817bec3b83fe65104e7e3efe4bd798a78] Add test to validate alternates in the context of fetching
# possible first bad commit: [af0ef2f36736e3805f769d8cd59c9fa7eb6a22a0] feat: use `gix-negotiate` in fetch machinery.
# possible first bad commit: [6a3c02131c9ebca911be5f751e5a6c67fbdbf609] fix!: make V1 stateless negotations work.
git checkout ae845dea6cee6523c88a23d7a14293589cf8092f
cargo build --no-default-features --features=max-pure
cd ~/src/evilpiepirate.org/git/bcachefs
~/src/github.com/Byron/gitoxide/target/debug/gix fetch

Error: Could not decode server reply

Caused by:
    0: Failed to read from line reader
    1: failed to fill whole buffer

Expected behavior 🤔

gix fetch fetches

Steps to reproduce 🕹

https://evilpiepirate.org/git/bcachefs.git is cloned inside ~/src/evilpiepirate.org/git/bcachefs

# From a gitoxide checkout
git checkout ae845dea6cee6523c88a23d7a14293589cf8092f
cargo build --no-default-features --features=max-pure
cd ~/src/evilpiepirate.org/git/bcachefs
~/src/github.com/Byron/gitoxide/target/debug/gix fetch

Error: Could not decode server reply

Caused by:
    0: Failed to read from line reader
    1: failed to fill whole buffer

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions