{"action":"created","issue":{"url":"https://api.github.com/repos/NixOS/nix/issues/2358","repository_url":"https://api.github.com/repos/NixOS/nix","labels_url":"https://api.github.com/repos/NixOS/nix/issues/2358/labels{/name}","comments_url":"https://api.github.com/repos/NixOS/nix/issues/2358/comments","events_url":"https://api.github.com/repos/NixOS/nix/issues/2358/events","html_url":"https://github.com/NixOS/nix/pull/2358","id":351641272,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA5MTg0Njg4","number":2358,"title":"fetchGit: use a better caching scheme","user":{"login":"graham-at-target","id":39596207,"node_id":"MDQ6VXNlcjM5NTk2MjA3","avatar_url":"https://avatars0.githubusercontent.com/u/39596207?v=4","gravatar_id":"","url":"https://api.github.com/users/graham-at-target","html_url":"https://github.com/graham-at-target","followers_url":"https://api.github.com/users/graham-at-target/followers","following_url":"https://api.github.com/users/graham-at-target/following{/other_user}","gists_url":"https://api.github.com/users/graham-at-target/gists{/gist_id}","starred_url":"https://api.github.com/users/graham-at-target/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graham-at-target/subscriptions","organizations_url":"https://api.github.com/users/graham-at-target/orgs","repos_url":"https://api.github.com/users/graham-at-target/repos","events_url":"https://api.github.com/users/graham-at-target/events{/privacy}","received_events_url":"https://api.github.com/users/graham-at-target/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-08-17T15:35:20Z","updated_at":"2018-08-19T11:11:19Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/NixOS/nix/pulls/2358","html_url":"https://github.com/NixOS/nix/pull/2358","diff_url":"https://github.com/NixOS/nix/pull/2358.diff","patch_url":"https://github.com/NixOS/nix/pull/2358.patch"},"body":"The current usage technically works by putting multiple different\r\nrepos in to the same git directory. However, it is very slow as\r\nGit tries very hard to find common commits between the two\r\nrepositories. If the two repositories are large (like Nixpkgs and\r\nanother long-running project,) it is maddeningly slow.\r\n\r\nThis change busts the cache for existing deployments, but users\r\nwill be promptly repaid in per-repository performance.\r\n\r\n---\r\n\r\nI ran the tests and the fetchGit test passed. There is an unrelated failure in brotli.sh, which is already failing on Darwin: https://hydra.nixos.org/build/79518003/nixlog/1 which shouldn't block this merging."},"comment":{"url":"https://api.github.com/repos/NixOS/nix/issues/comments/414120252","html_url":"https://github.com/NixOS/nix/pull/2358#issuecomment-414120252","issue_url":"https://api.github.com/repos/NixOS/nix/issues/2358","id":414120252,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNDEyMDI1Mg==","user":{"login":"grahamc","id":76716,"node_id":"MDQ6VXNlcjc2NzE2","avatar_url":"https://avatars3.githubusercontent.com/u/76716?v=4","gravatar_id":"","url":"https://api.github.com/users/grahamc","html_url":"https://github.com/grahamc","followers_url":"https://api.github.com/users/grahamc/followers","following_url":"https://api.github.com/users/grahamc/following{/other_user}","gists_url":"https://api.github.com/users/grahamc/gists{/gist_id}","starred_url":"https://api.github.com/users/grahamc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grahamc/subscriptions","organizations_url":"https://api.github.com/users/grahamc/orgs","repos_url":"https://api.github.com/users/grahamc/repos","events_url":"https://api.github.com/users/grahamc/events{/privacy}","received_events_url":"https://api.github.com/users/grahamc/received_events","type":"User","site_admin":false},"created_at":"2018-08-19T11:11:19Z","updated_at":"2018-08-19T11:11:19Z","author_association":"MEMBER","body":"Right. Fetchgit can take multiple minutes per repository, just scanning for mutual histories.  This makes —pure quite painful. \n\nUnfortunately there is no true commit 0 because a a repository is a full dag and can support multiple initial commits. \n\nAn ugly alternative idea might be allow fetchgit to accept an optional cache key param to override the default.\n\nAs is though fetchgit is only really usable to fetch a single repo. \n\n> On Aug 19, 2018, at 6:43 AM, Daiderd Jordan <notifications@github.com> wrote:\n> \n> The problem is that this becomes unusable when used in combination with other projects. I've seen a warning like WARNING: no common commits when using a new repository for the first time, maybe that could be used somehow?\n> \n> Alternatively using eg. commit 0 as the identity instead of the url might be an option.\n> \n> —\n> You are receiving this because you are subscribed to this thread.\n> Reply to this email directly, view it on GitHub, or mute the thread.\n"}}
{"actor":{"display_login":"grahamc"}}