LevelDB in master

Aug 17 - Aug 17, 2013

  • On August 16, 2013, a pull request (#2702) was merged into the master branch of Ripple, but instead of updating to LevelDB 1.12.0, it was put on an unofficial Ripple fork of LevelDB.

Vinnie had mentioned this change, but its full implications were not understood. Initially, it was believed that the "Ripple and Bitcoin fork" was just LevelDB with the necessary changes already made. However, it was later discovered that there were additional changes included in the merge.This improper merge by Ripple's fork resulted in a break in git history, causing several upstream fixes, including ones reported to the Bitcoin issue tracker, to be excluded. To address this issue, Luke-Jr pushed three branches to https://github.com/luke-jr/leveldb: bitcoin-1.5 for reference, bitcoin (included in 0.8.x), and bitcoin-up (merged with upstream LevelDB 1.12). A diff from the current master branch (Ripple LevelDB 1.12 fork) to bitcoin-up can be accessed at https://gist.github.com/luke-jr/6248543.Although the changes in the merge appeared harmless, Pieter Todd suggested reverting to a codebase that closely matched upstream LevelDB 1.12. A comparison between the bitcoin head and bitcoin-up revealed that a few patches were reverted during the merge window of version 0.9. To clean up the history of the LevelDB subtree in the http://github.com/bitcoin/leveldb repository, Pieter created a branch called bitcoin-fork and used git-subtree to create a pull request (#2907). This pull request switches the src/leveldb directory to the cleaned-up tree, listing the reverted changes in a squashed commit that corresponds to the actual diff produced by Luke-Jr.Peter Todd, who had encountered a similar issue while auditing Litecoin, commented on the situation. He noted that there are currently no tools available to audit whether a set of git patches/merges match upstream or downstream. While manually checking individual files could be done, automating this process would be beneficial.In summary, a pull request merged into the master branch of Ripple resulted in it being put on an unofficial Ripple fork of LevelDB instead of updating to LevelDB 1.12.0. This merge included additional changes beyond what was initially believed, and Ripple's improper git merge created a break in history, excluding several upstream fixes. Luke-Jr pushed three branches for reference, and a diff between the current master branch and bitcoin-up can be found via the provided link. Pieter Todd suggested reverting to a codebase closer to upstream LevelDB 1.12, and he cleaned up the history of the LevelDB subtree in the bitcoin repository. Peter Todd also highlighted the need for tools to automate the auditing of git patches/merges.

Link to Raw Post

Thread Summary (0 replies)

Aug 17 - Aug 17, 2013

Message History

1 messages

Original Post
Aug 17, 2013/20:53 UTC
Bitcoin Logo

TLDR

Join Our Newsletter

We’ll email you summaries of the latest discussions from high signal bitcoin sources, like bitcoin-dev, lightning-dev, and Delving Bitcoin.

Explore all Products

ChatBTC imageBitcoin searchBitcoin TranscriptsSaving SatoshiDecoding BitcoinWarnet
Built with 🧡 by the Bitcoin Dev Project
View our public visitor count

We'd love to hear your feedback on this project.

Give Feedback