path: root/meta/classes
diff options
authorPatrick Ohly <patrick.ohly@intel.com>2016-05-02 15:27:28 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-09 08:03:59 +0100
commit660f76b6fb0fb95738a2c8f50e0a99ffa5831c64 (patch)
tree325e2ee4bf44ff7597131a76b84a871036eda482 /meta/classes
parent0af4fadafce690fc8357196cf7247bd222c08d10 (diff)
combo-layer: implement "update with history"
The core idea is that all commits get imported, including merge commits, and joined into one big merge commit that imports the changes from the individual components into the main branch of the combined repository. This is done by copying the files in each commit and removing deleted ones, instead of trying to patch the combined repository. The advantages of doing updates in this mode are: - works for arbitrary upstream repos, not just those which support conversion into a linear set of patches - listing history shows that commits where developed independently in the different components, instead of artificially showing them as if they had been developed one after the after (component "aaaa" before "bbbb", then "ccc", ...) - bisecting becomes easier: when upstream repos only ensure consistency when merging into their "master" branches, then those merge commits are good candidates for test builds also in the combined repo - more data mining can be done, for example showing who merged a commit and when Selecting a subset of the files is supported, albeit with a slight different semantic for wild card matching compared to other code paths (/ is matched by * and ?). Empty commits get skipped because typically they are a result of filtering (but that is not checked, so intentionally empty commits also get skipped). Other code paths are intentionally left unchanged, to avoid regressions. However, the downside is that some opportunities for refactoring (in particular regarding file filtering) were ignored. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes')
0 files changed, 0 insertions, 0 deletions