{"action":"created","issue":{"url":"https://api.github.com/repos/javers/javers/issues/97","labels_url":"https://api.github.com/repos/javers/javers/issues/97/labels{/name}","comments_url":"https://api.github.com/repos/javers/javers/issues/97/comments","events_url":"https://api.github.com/repos/javers/javers/issues/97/events","html_url":"https://github.com/javers/javers/issues/97","id":57081242,"number":97,"title":"Can list changes be more intelligent","user":{"login":"ctmay4","id":444345,"avatar_url":"https://avatars.githubusercontent.com/u/444345?v=3","gravatar_id":"","url":"https://api.github.com/users/ctmay4","html_url":"https://github.com/ctmay4","followers_url":"https://api.github.com/users/ctmay4/followers","following_url":"https://api.github.com/users/ctmay4/following{/other_user}","gists_url":"https://api.github.com/users/ctmay4/gists{/gist_id}","starred_url":"https://api.github.com/users/ctmay4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctmay4/subscriptions","organizations_url":"https://api.github.com/users/ctmay4/orgs","repos_url":"https://api.github.com/users/ctmay4/repos","events_url":"https://api.github.com/users/ctmay4/events{/privacy}","received_events_url":"https://api.github.com/users/ctmay4/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"bartoszwalacik","id":2511028,"avatar_url":"https://avatars.githubusercontent.com/u/2511028?v=3","gravatar_id":"","url":"https://api.github.com/users/bartoszwalacik","html_url":"https://github.com/bartoszwalacik","followers_url":"https://api.github.com/users/bartoszwalacik/followers","following_url":"https://api.github.com/users/bartoszwalacik/following{/other_user}","gists_url":"https://api.github.com/users/bartoszwalacik/gists{/gist_id}","starred_url":"https://api.github.com/users/bartoszwalacik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bartoszwalacik/subscriptions","organizations_url":"https://api.github.com/users/bartoszwalacik/orgs","repos_url":"https://api.github.com/users/bartoszwalacik/repos","events_url":"https://api.github.com/users/bartoszwalacik/events{/privacy}","received_events_url":"https://api.github.com/users/bartoszwalacik/received_events","type":"User","site_admin":false},"milestone":null,"comments":12,"created_at":"2015-02-09T19:57:39Z","updated_at":"2015-03-14T20:50:34Z","closed_at":null,"body":"I have a an entity with a List<List<String>> that I am tracking changes on.  I just tested an Object which has 837 List<String> object\r\n\r\n```java\r\ncommit 3.0, author: me@here.com, Feb 9, 2015 2:25:48 PM\r\n  changed object: StagingTable/54d909bb102cbbfdf54855ea\r\n    list changed on 'rawRows' property: [\r\n        (10).'[T0, N1, M0, SX, VALUE:IINOS]'>>'[T0, N1, M0, ERROR, VALUE:ERROR]', \r\n        (11).'[T0, N1, M0, ERROR, VALUE:ERROR]'>>'[T0, N2, M0, S0, VALUE:IIB]', \r\n        (12).'[T0, N2, M0, S0, VALUE:IIB]'>>'[T0, N2, M0, S1, VALUE:IIB]', \r\n        (13).'[T0, N2, M0, S1, VALUE:IIB]'>>'[T0, N2, M0, S2, VALUE:IIIB]', \r\n        (14).'[T0, N2, M0, S2, VALUE:IIIB]'>>'[T0, N2, M0, S3, VALUE:IIIC]', \r\n        (15).'[T0, N2, M0, S3, VALUE:IIIC]'>>'[T0, N2, M0, SX, VALUE:IINOS]', \r\n        (16).'[T0, N2, M0, SX, VALUE:IINOS]'>>'[T0, N2, M0, ERROR, VALUE:ERROR]',\r\n        (17).'[T0, N2, M0, ERROR, VALUE:ERROR]'>>'[T0, N3, M0, S0, VALUE:IIC]', \r\n        (18).'[T0, N3, M0, S0, VALUE:IIC]'>>'[T0, N3, M0, S1, VALUE:IIC]', \r\n        (19).'[T0, N3, M0, S1, VALUE:IIC]'>>'[T0, N3, M0, S2, VALUE:IIIB]', \r\n        ...\r\n        <SNIP>\r\n        ...\r\n        (837).'[TX, NX, M1NOS, S3, VALUE:IIINOS]'>>'[TX, NX, M1NOS, SX, VALUE:IIINOS]',\r\n        (838).'[TX, NX, M1NOS, SX, VALUE:IIINOS]'>>'[TX, NX, M1NOS, ERROR, VALUE:ERROR]',\r\n        (839).removed:'[TX, NX, M1NOS, ERROR, VALUE:ERROR]'\r\n    ]\r\n```\r\n\r\nSo removing a single line from the List causes an audit trail of 800+ entries.  Instead, wouldn't it be  better to have this be the result:\r\n\r\n```java\r\ncommit 3.0, author: me@here.com, Feb 9, 2015 2:25:48 PM\r\n  changed object: StagingTable/54d909bb102cbbfdf54855ea\r\n    list changed on 'rawRows' property: [\r\n        (10).removed:'[T0, N1, M0, SX, VALUE:IINOS]'\r\n    ]\r\n```\r\n\r\nFor example, if I put the raw JSON out and delete the line, a command-line diff looks like this:\r\n\r\n```\r\n$ diff before.json after.json\r\n44d43\r\n<         [ \"T0\", \"N1\", \"M0\", \"S3\", \"VALUE:IIIC\" ],\r\n```\r\n\r\nNot sure how easy this would be to accomplish, but I do worry that if small changes are producing so much noise, what if I had a table with a very large list.  The growth of the changelog would be too quick."},"comment":{"url":"https://api.github.com/repos/javers/javers/issues/comments/80716773","html_url":"https://github.com/javers/javers/issues/97#issuecomment-80716773","issue_url":"https://api.github.com/repos/javers/javers/issues/97","id":80716773,"user":{"login":"bartoszwalacik","id":2511028,"avatar_url":"https://avatars.githubusercontent.com/u/2511028?v=3","gravatar_id":"","url":"https://api.github.com/users/bartoszwalacik","html_url":"https://github.com/bartoszwalacik","followers_url":"https://api.github.com/users/bartoszwalacik/followers","following_url":"https://api.github.com/users/bartoszwalacik/following{/other_user}","gists_url":"https://api.github.com/users/bartoszwalacik/gists{/gist_id}","starred_url":"https://api.github.com/users/bartoszwalacik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bartoszwalacik/subscriptions","organizations_url":"https://api.github.com/users/bartoszwalacik/orgs","repos_url":"https://api.github.com/users/bartoszwalacik/repos","events_url":"https://api.github.com/users/bartoszwalacik/events{/privacy}","received_events_url":"https://api.github.com/users/bartoszwalacik/received_events","type":"User","site_admin":false},"created_at":"2015-03-14T20:50:34Z","updated_at":"2015-03-14T20:50:34Z","body":"great, so the new algorithm will be fine for you, i'am doing the release ..."}}