Rewriting RubyGems.org Git History
blog.rubygems.org
Rewriting RubyGems.org Git History
1–10 of 10 posts
Re: Rewriting RubyGems.org Git History
#2Re: Rewriting RubyGems.org Git History
#3Re: Rewriting RubyGems.org Git History
#4I find it funny that the problem was they didn't think enough people know about the `--depth 1` flag to git clone, so the solution is to use submodules (which far fewer people know how to use properly).
Re: Rewriting RubyGems.org Git History
#5Docker itself used a similar strategy for their build process: the recommended build process uses containers to build the Docker binary, so they made a precompiled binary available that was crafted "the hard way" that could then be used for running the saner build process.
Re: Rewriting RubyGems.org Git History
#6Obviously I'm not in their place, but in hindsight, my first thought when reading their initial issue was "Why not make a container that serves the minimal subset of Rubygems stuff necessary to bootstrap Rubygems, and use that as a source in the event that the main side died and needed to be kickstarted again. Docker itself used a similar strategy for their build process: the recommended build process uses containers…
Re: Rewriting RubyGems.org Git History
#7It would be really helpful to go into some detail on the steps taken to clean up the git history.
http://git-scm.com/docs/git-filter-branch
But you can do almost anything via custom scripts.
Re: Rewriting RubyGems.org Git History
#8It would be really helpful to go into some detail on the steps taken to clean up the git history.
Don't be deceived by the "java" invocations, it's written in Scala, so it's HN-approved!
Re: Rewriting RubyGems.org Git History
#9First is Streaming Clones[1], whereby Mercurial server just takes all the files from the repository and transmits them over the transport connection, significantly decreasing TTFB.
The second is Largefiles extension[2], which turns Mercurial into more of a CVCS, but allows for efficient storage and retrieval of large binary files.
[1]: https://hglabhq.com/blog/2014/6/20/working-with-mercurial-ov... [2]: http://mercurial.selenic.com/wiki/LargefilesExtension
Re: Rewriting RubyGems.org Git History
#10I find it funny that the problem was they didn't think enough people know about the `--depth 1` flag to git clone, so the solution is to use submodules (which far fewer people know how to use properly).