{"push_id":590740144,"size":1,"distinct_size":1,"ref":"refs/heads/release-0.7.x","head":"7e7d68fd87a325300c5f63320a00936769cd835c","before":"e20a1ba0e75d839ccf08ab1bc8446b7482f0027d","commits":[{"sha":"7e7d68fd87a325300c5f63320a00936769cd835c","author":{"email":"c4a40333d2e70b3fcac4e7cd05d0e9037471cc26@gmail.com","name":"David Trowbridge"},"message":"Clean up config handling in rbtools and fix search path.\n\nOne pretty major change between the way post-review handled configs and the way\nrbt handled configs is that in post-review, $HOME/.reviewboardrc was considered\nlast, whereas in rbt, it was considered first. I've changed our new\nload_config implementation so that any .reviewboardrc files in your current\ndirectory (or a parent of your current directory) take priority over the one in\nthe home directory.\n\nAs I did this, I noticed that the way config was passed around was pretty\ncrazy. Once upon a time the clients had a list of each config file, and then a\nseparate entry for the `user_config` from the home directory. After our big\nclients/commands refactors, the `configs` list had only one item, and it was\nthe same as the `user_config`. We also still had the old `load_config_files`\nimplementation, which was still used in some unit tests.\n\nI've cleaned all this up so that we instantiate SCMClients with a single config\ndictionary, which is populated according to the above search order. There's no\nmore separate `configs` vs. `user_config`, and everything is nice and clean.\n\nTesting done:\n- Ran unit tests.\n- Ran `rbt list-repo-types` (for the extra `load_scmtools()` call)\n- Posted this change.\n\nReviewed at https://reviews.reviewboard.org/r/7001/","distinct":true,"url":"https://api.github.com/repos/reviewboard/rbtools/commits/7e7d68fd87a325300c5f63320a00936769cd835c"}]}