{"action":"created","issue":{"url":"https://api.github.com/repos/ostreedev/ostree/issues/564","repository_url":"https://api.github.com/repos/ostreedev/ostree","labels_url":"https://api.github.com/repos/ostreedev/ostree/issues/564/labels{/name}","comments_url":"https://api.github.com/repos/ostreedev/ostree/issues/564/comments","events_url":"https://api.github.com/repos/ostreedev/ostree/issues/564/events","html_url":"https://github.com/ostreedev/ostree/pull/564","id":186601666,"number":564,"title":"pull: Redo logic for \"scanning\"","user":{"login":"cgwalters","id":244096,"avatar_url":"https://avatars.githubusercontent.com/u/244096?v=3","gravatar_id":"","url":"https://api.github.com/users/cgwalters","html_url":"https://github.com/cgwalters","followers_url":"https://api.github.com/users/cgwalters/followers","following_url":"https://api.github.com/users/cgwalters/following{/other_user}","gists_url":"https://api.github.com/users/cgwalters/gists{/gist_id}","starred_url":"https://api.github.com/users/cgwalters/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgwalters/subscriptions","organizations_url":"https://api.github.com/users/cgwalters/orgs","repos_url":"https://api.github.com/users/cgwalters/repos","events_url":"https://api.github.com/users/cgwalters/events{/privacy}","received_events_url":"https://api.github.com/users/cgwalters/received_events","type":"User","site_admin":false},"labels":[{"id":403885876,"url":"https://api.github.com/repos/ostreedev/ostree/labels/reviewed/needs-rework","name":"reviewed/needs-rework","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-11-01T17:56:55Z","updated_at":"2016-11-16T19:24:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ostreedev/ostree/pulls/564","html_url":"https://github.com/ostreedev/ostree/pull/564","diff_url":"https://github.com/ostreedev/ostree/pull/564.diff","patch_url":"https://github.com/ostreedev/ostree/pull/564.patch"},"body":"What in the code is called \"scanning\" is ensuring (potentially\r\nrecursively) have an object, and if not, fetching it.  And then if\r\nit's metadata, parsing it and finding new objects to fetch.\r\n\r\nThis logic has grown fairly complex.  What I'm trying to fix\r\nright now is that if we're doing a pull-local to a remote repository\r\nvia `sshfs` (FUSE) we still end up scanning, which is inefficient.\r\n\r\nWe can take advantage of the \"commitpartial\" logic here - if a commit\r\nisn't partial, it's complete, hence we don't need to scan it.\r\n\r\nAt the same time, I'm changing the logic here to *always* do scans for\r\ndirtree objects.  This will fix cases where multiple commits share\r\ndirtree objects.  We have \"commitpartial\" metadata, but no such concept\r\nof partial/complete for dirtrees.\r\n\r\nBut, we'll only ever scan dirtrees if we scan commits, which is\r\nwhat the section above fixes.\r\n\r\nCloses: https://github.com/ostreedev/ostree/issues/543"},"comment":{"url":"https://api.github.com/repos/ostreedev/ostree/issues/comments/261045185","html_url":"https://github.com/ostreedev/ostree/pull/564#issuecomment-261045185","issue_url":"https://api.github.com/repos/ostreedev/ostree/issues/564","id":261045185,"user":{"login":"cgwalters","id":244096,"avatar_url":"https://avatars.githubusercontent.com/u/244096?v=3","gravatar_id":"","url":"https://api.github.com/users/cgwalters","html_url":"https://github.com/cgwalters","followers_url":"https://api.github.com/users/cgwalters/followers","following_url":"https://api.github.com/users/cgwalters/following{/other_user}","gists_url":"https://api.github.com/users/cgwalters/gists{/gist_id}","starred_url":"https://api.github.com/users/cgwalters/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgwalters/subscriptions","organizations_url":"https://api.github.com/users/cgwalters/orgs","repos_url":"https://api.github.com/users/cgwalters/repos","events_url":"https://api.github.com/users/cgwalters/events{/privacy}","received_events_url":"https://api.github.com/users/cgwalters/received_events","type":"User","site_admin":false},"created_at":"2016-11-16T19:24:10Z","updated_at":"2016-11-16T19:24:10Z","body":"Hum...I think we should split those out as separate issues, I don't believe they're new with this PR, and I'm worried about conflating too many things at once.\r\n\r\n"}}
{"actor":{"display_login":"cgwalters"}}