There is already base/threading/sequenced_task_runner_handle.h and it feels silly when including both that base/thread_task_runner_handle.h isn't also in base/threading/.
Hey Nico, IIRC you have experience with massive file moves (single header included all over the place).
I tried using tools/git/move_source_file.py and it correctly moved the header and made the matching changes in all files including it.
But there are so many such files (1558 files changed) that "git cl upload" takes hours for presubmits and then codereview.chromium.org can't render the CL (hours with CPU @ 100% and still a blank page).
So how do you go about such changes? TBR + git cl land? Still need to be able to upload for that I guess (IIRC git cl land needs an issue?) but I did succeed at that.
Thanks,
Gab
`git cl land` is fine, but I'd make the old header forward to the new one, and then incrementally replace includes of the old with includes of the new in batches, and then delete the old one once everything's using the new header.
@thakis: re. #18 > Out of interest, what are you using to split up the change and to send the parts for review?
1) I ran the move_source_file.py script and committed it to a branch "final"
2) I wrote a massive command with Sublime Text's multi cursor edit which is essentially:
git co -b foo final && git reset --soft master && git reset && git add foo/ && git commit -m "Fix include path for moved header in foo/" && git reset --hard HEAD && git br -u master && git clean -f && git cl upload -f && (...)
where (...) repeats this for every root/ folder (s/foo/other/), writing this is fairly easy with Sublime Text as you can start from a list of root folders affected (obtained by git diff --stat and multi-edit in ST to get only the roots and then using permute-unique to get only 1 entry for each)
Note: "git clean -f" isn't strictly necessary but I've noticed temp files sometimes lingering (e.g. from editor tmp saves) and making git cl upload fail so I added it...
The nice thing with && piping too is that the command stops when something goes wrong (e.g. presubmit fails for an upload), so you can manually address it and copy the remaining portion of the command from editor to command prompt to restart :-).
The one missing feature would be an ability to specify bug and auto-select owner from "git cl upload" cmd line, I did that part manually from each uploaded CL (and also confirmed that all files were +1/-1; finding a few duplicate includes and fixed re-orderings, calling those out to reviewers and not TBRing one or two CLs that weren't obvious -- i.e. IDK X11 but I know on Windows windows.h always needs to be first).
A good chunk of manual work still but not too too bad :-).
Comment 1 by gab@chromium.org
, May 10 2016