{"action":"created","issue":{"url":"https://api.github.com/repos/libgit2/libgit2sharp/issues/1213","labels_url":"https://api.github.com/repos/libgit2/libgit2sharp/issues/1213/labels{/name}","comments_url":"https://api.github.com/repos/libgit2/libgit2sharp/issues/1213/comments","events_url":"https://api.github.com/repos/libgit2/libgit2sharp/issues/1213/events","html_url":"https://github.com/libgit2/libgit2sharp/pull/1213","id":113165346,"number":1213,"title":"Rename PackBuilder -> PackDefinition, improve PackOptions, introduce WriteTo","user":{"login":"kevin-david","id":1923186,"avatar_url":"https://avatars.githubusercontent.com/u/1923186?v=3","gravatar_id":"","url":"https://api.github.com/users/kevin-david","html_url":"https://github.com/kevin-david","followers_url":"https://api.github.com/users/kevin-david/followers","following_url":"https://api.github.com/users/kevin-david/following{/other_user}","gists_url":"https://api.github.com/users/kevin-david/gists{/gist_id}","starred_url":"https://api.github.com/users/kevin-david/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevin-david/subscriptions","organizations_url":"https://api.github.com/users/kevin-david/orgs","repos_url":"https://api.github.com/users/kevin-david/repos","events_url":"https://api.github.com/users/kevin-david/events{/privacy}","received_events_url":"https://api.github.com/users/kevin-david/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":29,"created_at":"2015-10-24T14:44:53Z","updated_at":"2015-11-17T03:55:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/libgit2/libgit2sharp/pulls/1213","html_url":"https://github.com/libgit2/libgit2sharp/pull/1213","diff_url":"https://github.com/libgit2/libgit2sharp/pull/1213.diff","patch_url":"https://github.com/libgit2/libgit2sharp/pull/1213.patch"},"body":"The options make sense to me as immutable, and a struct required one less null check :) \r\n\r\nThe idea here is to enable writing a pack to an arbitrary stream without the additional overhead of indexing - looking at the libgit2, there's some unnecessary work done if you're building a packfile to send to a remote server, for example.\r\n\r\nThanks to @whoisj for the guidance on interop with libgit2\r\n\r\n/cc @AMSadek "},"comment":{"url":"https://api.github.com/repos/libgit2/libgit2sharp/issues/comments/157261197","html_url":"https://github.com/libgit2/libgit2sharp/pull/1213#issuecomment-157261197","issue_url":"https://api.github.com/repos/libgit2/libgit2sharp/issues/1213","id":157261197,"user":{"login":"AMSadek","id":13529666,"avatar_url":"https://avatars.githubusercontent.com/u/13529666?v=3","gravatar_id":"","url":"https://api.github.com/users/AMSadek","html_url":"https://github.com/AMSadek","followers_url":"https://api.github.com/users/AMSadek/followers","following_url":"https://api.github.com/users/AMSadek/following{/other_user}","gists_url":"https://api.github.com/users/AMSadek/gists{/gist_id}","starred_url":"https://api.github.com/users/AMSadek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AMSadek/subscriptions","organizations_url":"https://api.github.com/users/AMSadek/orgs","repos_url":"https://api.github.com/users/AMSadek/repos","events_url":"https://api.github.com/users/AMSadek/events{/privacy}","received_events_url":"https://api.github.com/users/AMSadek/received_events","type":"User","site_admin":false},"created_at":"2015-11-17T03:55:33Z","updated_at":"2015-11-17T03:55:33Z","body":"@whoisj \r\n> Why ask a pack builder object to understand the file system? \r\n\r\nWhat is it meant by understand file system ? is that because we are passing a directory path to write files to it? ... I can see in other places in the API file paths are passed in similar way. Do you suggest a better way to write to files?\r\n\r\n> Also the write file API is weird to me. WriteTo(Stream) is more elegant and SOLID.\r\n\r\nAre you suggesting to drop the write to file from the API ?\r\nWell, two things, first I assume it's faster if we're going to write the pack file to desk at the end anyway cause it's native. Second, WriteTo(Stream) doesn't write the index (.idx) file. Only the pack file (.pack)."}}