{"action":"opened","issue":{"url":"https://api.github.com/repos/markfinal/BuildAMation/issues/164","repository_url":"https://api.github.com/repos/markfinal/BuildAMation","labels_url":"https://api.github.com/repos/markfinal/BuildAMation/issues/164/labels{/name}","comments_url":"https://api.github.com/repos/markfinal/BuildAMation/issues/164/comments","events_url":"https://api.github.com/repos/markfinal/BuildAMation/issues/164/events","html_url":"https://github.com/markfinal/BuildAMation/issues/164","id":137198259,"number":164,"title":"IDE project per-file deltas are not as accurate as they could be","user":{"login":"markfinal","id":984489,"avatar_url":"https://avatars.githubusercontent.com/u/984489?v=3","gravatar_id":"","url":"https://api.github.com/users/markfinal","html_url":"https://github.com/markfinal","followers_url":"https://api.github.com/users/markfinal/followers","following_url":"https://api.github.com/users/markfinal/following{/other_user}","gists_url":"https://api.github.com/users/markfinal/gists{/gist_id}","starred_url":"https://api.github.com/users/markfinal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markfinal/subscriptions","organizations_url":"https://api.github.com/users/markfinal/orgs","repos_url":"https://api.github.com/users/markfinal/repos","events_url":"https://api.github.com/users/markfinal/events{/privacy}","received_events_url":"https://api.github.com/users/markfinal/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/markfinal/BuildAMation/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"markfinal","id":984489,"avatar_url":"https://avatars.githubusercontent.com/u/984489?v=3","gravatar_id":"","url":"https://api.github.com/users/markfinal","html_url":"https://github.com/markfinal","followers_url":"https://api.github.com/users/markfinal/followers","following_url":"https://api.github.com/users/markfinal/following{/other_user}","gists_url":"https://api.github.com/users/markfinal/gists{/gist_id}","starred_url":"https://api.github.com/users/markfinal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markfinal/subscriptions","organizations_url":"https://api.github.com/users/markfinal/orgs","repos_url":"https://api.github.com/users/markfinal/repos","events_url":"https://api.github.com/users/markfinal/events{/privacy}","received_events_url":"https://api.github.com/users/markfinal/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/markfinal/BuildAMation/milestones/3","html_url":"https://github.com/markfinal/BuildAMation/milestones/v1.0.1","labels_url":"https://api.github.com/repos/markfinal/BuildAMation/milestones/3/labels","id":1475909,"number":3,"title":"v1.0.1","description":"Bug fixes in the 1.0 release family.","creator":{"login":"markfinal","id":984489,"avatar_url":"https://avatars.githubusercontent.com/u/984489?v=3","gravatar_id":"","url":"https://api.github.com/users/markfinal","html_url":"https://github.com/markfinal","followers_url":"https://api.github.com/users/markfinal/followers","following_url":"https://api.github.com/users/markfinal/following{/other_user}","gists_url":"https://api.github.com/users/markfinal/gists{/gist_id}","starred_url":"https://api.github.com/users/markfinal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markfinal/subscriptions","organizations_url":"https://api.github.com/users/markfinal/orgs","repos_url":"https://api.github.com/users/markfinal/repos","events_url":"https://api.github.com/users/markfinal/events{/privacy}","received_events_url":"https://api.github.com/users/markfinal/received_events","type":"User","site_admin":false},"open_issues":17,"closed_issues":53,"state":"open","created_at":"2015-12-28T14:36:41Z","updated_at":"2016-02-29T09:26:34Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2016-02-29T09:26:34Z","updated_at":"2016-02-29T09:26:34Z","closed_at":null,"body":"Compiler settings are capable of generating a 'delta' for IDE projects. This is because there is a common set of settings for all source files, while each source may differ slightly.\r\n\r\nOnly compiled objects supports this, so the features are on a subset of Settings classes in BAM, particularly those associated with compilers! (surprise!)\r\n\r\nThese take the form of 'Empty', 'Intersect', 'Delta' and 'Clone' extension methods on settings interfaces.\r\n\r\nSome properties of settings interfaces work nicely with these functions, For example, a TokenizedStringArray can be intersected with another easily, to find the common list of TokenizedStrings between the two.\r\n\r\nHowever, some types, like enums, do not. How do you define the intersection of two enum values?\r\n\r\nThe current implementation assumes they are the same, until there is a difference, and then there is no common setting whatsoever.\r\n\r\nThe result of this is that every source file gets a delta, even if 99% of them are identical. This makes it harder to read, and to identify those source files that need different settings.\r\n\r\nAlthough this is correct behaviour, it is not behaviour I would like to continue. Can this be improved?"}}