Activitywatch: Better tooling for using multirepos

Created on 15 Jun 2017  路  4Comments  路  Source: ActivityWatch/activitywatch

So, I've been thinking a bunch about our multirepo strategy and its gone pretty back and forth.

My thoughts so far:

  • Multirepos lead to clearer dependencies/modules/separation of concerns
  • You can pretty easily (and cleanly) go from a multirepo to a monorepo. The other way isn't so easy.
  • One downside is the increased overhead required (updating submodules in the bundle repo, having to merge multiple inter-dependent PRs from time to time). Not much to do about this that I can see, I think the benefits are worth it so far.
  • Lack of good tooling: many are embracing monorepos at large scales (Facebook, Chromium) and that leads to less investment in multirepo tooling.

Tooling to develop:

  • [x] Tool to get collect contributor stats across multiple repos (Done! See contributor-stats)
  • [x] Tool that generates diffs and/or get a list of added commits (and their messages) in submodules between bundle-repo commits. This would help greatly with making changelogs.

This is just some thoughts I wanted to get out there, I think the multirepo/monorepo discussion is an interesting configuration management issue and I definitely want to learn more.

help wanted low medium question

All 4 comments

I've done some more reading on git subrepo (here's a good introduction) and getting increasingly optimistic about it.

Would have to try it out to see if it's as good as it seems.

Edit: I don't think we'll use it. submodule works good enough and has good support. I also discovered that Qt5 uses submodules.

I just realized that git submodule summary exists.

With it you can even do git submodule summary <commit> to get a list of all commits in submodules since some commit/tag. Very useful to be able to do things like git submodule summary v0.7.0b1.

Closing since the tasks are done. I'm still thinking about the pros and cons, but lets settle this for now.

Holy shit, just found out about this gem from an article: git config --global status.submoduleSummary true

With it you get nice submodule info whenever you git status. No idea how I could have missed it.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bawasi picture bawasi  路  8Comments

alexriabtsev picture alexriabtsev  路  4Comments

austil picture austil  路  3Comments

awesomehaze picture awesomehaze  路  9Comments

mrbox picture mrbox  路  5Comments