#cargo

/

      • kc8apf
        I've managed to smash JGit atop Nexus's internal database but it's horribly ugly
      • I can put together an RFC for an alternative but I don't know the history of the current design
      • sfackler
        sure - git is used to minimize deltas during index updates. I don't think there'd be any fundamental problems with supporting another approach for keeping the local index copy updated
      • dalley
        sfackler, this is the rundown of my issues: https://github.com/rust-lang/cargo/issues/5597#...
      • sfackler
        dalley: cargo hard resets the index when fetching so there's no worry about rewriting git history
      • elichai2 has quit
      • dalley
        that's true, but it also means that w/ every publish, all the clients would have to do a hard re-clone
      • which is workable.. but somewhat unoptimal
      • I just cloned the index to see how fast it would be, it took about 35-45 seconds
      • sfackler
        so what protocol do you want to use instead to transfer a minimal diff of index changes?
      • Tomo joined the channel
      • kc8apf
        ideally, we'd figure out diffs at a crate level
      • dalley
        fwiw, I don't have any constructive feedback on that subject. I'm sure it's a technically good choice, it just makes the job of our software much more difficult vs other content types (rpm, deb, rubygem, python, docker, etc)
      • Eragonfr has quit
      • kc8apf
        Nexus and Artifactory both use a database to keep track of metadata and a blob store to serve the content. Querying about versions is fairly straightforward. Generating diffs at a filesystem level requires constructing that representation first.
      • dalley
        same for Pulp
      • <--
      • balrogboogie joined the channel
      • but obviously you can't just rebuild the original git repo from the DB representation of the metadata
      • alx741 has quit
      • bcmyers has quit