On 2014-05-30, 7:25 PM, Chad wrote:
All,
When we end up moving MW core to Phabricator I'd like us to jettison our history. The repo is large and clunky and not conducive to development. It's only going to grow in size unless we do something to cut back on the junk we're carrying around.
This is my ideal Phabby world:
mediawiki (no /core, that was always redundant) mediawiki/i18n (as submodule) mediawiki/historical (full history, previous + all mediawiki going forward)
If we jettison all our history we can get the repo size down to a 30-35MB which is very nice. Doing it on Gerrit isn't worthwhile because it'd basically break everything. We're gonna be breaking things with the move to Phab...it's then or never if we're going to do this.
Being able to stitch with the old history would be nice and I think might be doable with git-replace. If not, I still think it's worth discussing for developer and deployer productivity.
Thoughts?
-Chad
Eliminating localization updates from repos is always nice, I hate it when they fill up a repo's history. However using a submodule doesn't fix that it just replaces i18n file commits with a submodule update commit. Personally I've always wanted to switch to JSON messages (^_^ yay we already did that), drop messages for all language besides the canonical texts (en and qqq), then integrate the automatic fetching of messages for other languages into MediaWiki (tarballs releases can be bundled with a snapshot of the data for intranets, etc...; ExtensionDistributor can do the same; and thanks to things like localization caches we won't even need to require filesystem write to do this). Especially for extensions, the i18n commits for our extensions completely drown out the code contributions.
However I don't really like the thought of dropping the history. We're using git, switching to phabricator shouldn't actually break anything (except custom things like `git review`). git {clone|fetch|pull} won't work from the old url anymore, but all people have to do is `git remote set-url {new url}` or `git remote add {new remote} {new url}` and voila, they pick up right where they left off, this time with Phabricator backing git instead of Gerrit.
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://danielfriesen.name/]