There are two repositories for Breakpad:
https://chromium.googlesource.com/breakpad/breakpad/ - read/write. Commits go here.
https://chromium.googlesource.com/breakpad/breakpad/src/ - read-only view of “src” in the above managed by gsubtreed. Chromium gets things from here.
The reason for this is that historically, when Breakpad lived in Subversion, the root of the repository (in trunk) was what became breakpad/breakpad in Git, but Chrome checked out the “src” subdirectory. Git didn’t make it easy to check out just a subpath of a repository, so the read-only mirror of just “src” was created to allow Chrome to continue getting the same set of files it was seeing before, avoiding having to rewrite a bunch of paths in Chrome.
This is no good. People have a copy of Breakpad in their Chrome checkout and assume that they can develop patches in it. They do, and they send the patches for review, and they are (or should be) unlandable, because their patches are against the read-only mirror.
In bug 766164, one of those patches slipped by and wound up breaking the read-only mirror so that it stopped syncing. (The ACL and the mirror have been fixed.)
Chrome should get its copy of Breakpad from the authoritative read-write source, breakpad/breakpad. The read-only mirror of src should be deprecated. We’ll need to keep it around (indefinitely) so that old buildspecs and branchspecs don’t break, but provided that we just make sure that the old hashes stay live, we can stop gsubtreed and we can empty it out at master and leave a README pointing to the real copy of Breakpad.
Comment 1 by bugdroid1@chromium.org
, Sep 23 2017