{"thread":{"id":"19654","subject":"git repack and dumb protocols","startedAt":"2009-06-03T23:50:54Z","lastAt":"2009-06-09T16:15:47Z","messageCount":9,"participants":["Andreas Klöckner","Michael J Gruber","Peter Harris","Stephen Boyd"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"115400","messageId":"200906031950.56974.lists@informa.tiker.net","threadId":"19654","inReplyTo":null,"subject":"git repack and dumb protocols","fromName":"Andreas Klöckner","fromEmail":"lists@informa.tiker.net","sentAt":"2009-06-03T23:50:54Z","receivedAt":"2009-06-03T23:50:54Z","isPatch":false,"sender":{"key":"lists@informa.tiker.net","avatar":null},"body":"Hi there,\n\nI've posted a git repository to the web that is an rsync copy of my \ndevelopment archive's .git directory, with update-server-info run on it. Now \nif I understand correctly, this contains a single file for every \ncommit/file/whatever else I ever made, which is a paint over HTTP. I have then \nrecently learned about the wonder that is git repack, which I would love to \nuse on this repository, were it not for this comment in its manpage:\n\n8< ----------------------------------------------------------------------\nEspecially useful when packing a repository that is used for private \ndevelopment and there is no need to worry about people fetching via dumb \nprotocols from it. 8< \n----------------------------------------------------------------------\n\nIt says this relating to the '-a' option, but it makes me wonder if I'll break \ncopies of the repo that other people have pulled if I use 'repack'? What are \nthe possible interactions and things to keep in mind between repack and dumb \nprotocols?\n\nIn any case, I would like to suggest that the rather ominous-sounding text in \nthe manpage be replaced with something more concrete, i.e. \"If you repack an \narchive that has people fetching via dumb protocols from it, X, Y, and Z will \nhappen.\"\n\nThanks,\nAndreas\n\n(please cc--not subscribed)\n"},{"id":"115421","messageId":"1244113113-28541-1-git-send-email-git@drmicha.warpmail.net","threadId":"19654","inReplyTo":"200906031950.56974.lists@informa.tiker.net","subject":"[PATCH] git-pack.txt: Clarify implications of -a for dumb protocols","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-06-04T10:58:33Z","receivedAt":"2009-06-04T10:58:33Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"The current text make some users feel uneasy, worrying whether\n'-a' could lead to corrupt repositories. Clarify that '-a'\nmay lead to performance issues only for dumb protocols.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\nIs that clear enough but concise?\n\nApplies to maint.\n\n Documentation/git-repack.txt |    5 ++++-\n 1 files changed, 4 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt\nindex aaa8852..8af5505 100644\n--- a/Documentation/git-repack.txt\n+++ b/Documentation/git-repack.txt\n@@ -32,7 +32,10 @@ OPTIONS\n \tpack everything referenced into a single pack.\n \tEspecially useful when packing a repository that is used\n \tfor private development and there is no need to worry\n-\tabout people fetching via dumb protocols from it.  Use\n+\tabout people fetching via dumb protocols from it. \n+\t(Over dumb protocols, one would have to fetch the whole new\n+\tpack in order to get any contained object, no matter how\n+\tmany other objects in that pack exist locally already.) Use\n \twith '-d'.  This will clean up the objects that `git prune`\n \tleaves behind, but `git fsck --full` shows as\n \tdangling.\n-- \n1.6.3.1.268.g94d6d1\n"},{"id":"115422","messageId":"1244115295-28688-1-git-send-email-git@drmicha.warpmail.net","threadId":"19654","inReplyTo":"200906031950.56974.lists@informa.tiker.net","subject":"[PATCHv1+eps] git-repack.txt: Clarify implications of -a for dumb protocols","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-06-04T11:34:55Z","receivedAt":"2009-06-04T11:34:55Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"The current text makes some users feel uneasy, worrying whether\n'-a' could lead to corrupt repositories. Clarify that '-a'\nmay lead to performance issues only for dumb protocols.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\nIs that clear enough but concise?\n\nApplies to maint.\n\n[Sorry for the resend, I managed to mistype the subject.]\n\n Documentation/git-repack.txt |    5 ++++-\n 1 files changed, 4 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt\nindex aaa8852..8af5505 100644\n--- a/Documentation/git-repack.txt\n+++ b/Documentation/git-repack.txt\n@@ -32,7 +32,10 @@ OPTIONS\n \tpack everything referenced into a single pack.\n \tEspecially useful when packing a repository that is used\n \tfor private development and there is no need to worry\n-\tabout people fetching via dumb protocols from it.  Use\n+\tabout people fetching via dumb protocols from it. \n+\t(Over dumb protocols, one would have to fetch the whole new\n+\tpack in order to get any contained object, no matter how\n+\tmany other objects in that pack exist locally already.) Use\n \twith '-d'.  This will clean up the objects that `git prune`\n \tleaves behind, but `git fsck --full` shows as\n \tdangling.\n-- \n1.6.3.1.268.g94d6d1\n"},{"id":"115429","messageId":"eaa105840906040547o473801c8jca309c821282a091@mail.gmail.com","threadId":"19654","inReplyTo":"200906031950.56974.lists@informa.tiker.net","subject":"Re: git repack and dumb protocols","fromName":"Peter Harris","fromEmail":"git@peter.is-a-geek.org","sentAt":"2009-06-04T12:47:37Z","receivedAt":"2009-06-04T12:47:37Z","isPatch":false,"sender":{"key":"git@peter.is-a-geek.org","avatar":null},"body":"On Wed, Jun 3, 2009 at 7:50 PM, Andreas Klöckner wrote:\n>\n> 8< ----------------------------------------------------------------------\n> Especially useful when packing a repository that is used for private\n> development and there is no need to worry about people fetching via dumb\n> protocols from it. 8<\n> ----------------------------------------------------------------------\n>\n> It says this relating to the '-a' option, but it makes me wonder if I'll break\n> copies of the repo that other people have pulled if I use 'repack'? What are\n> the possible interactions and things to keep in mind between repack and dumb\n> protocols?\n\nIt won't break any copies, but it may cause excessive network use.\n\nDumb protocols can only fetch or not-fetch the entire pack. So if\nsomeone hasn't fetched since the last push, the next time they do a\n\"git pull\", they will retrieve the entire repository. Even if they\nonly need a single small commit.\n\nAs you can imagine, people using dumb protocols over slow connections\nmay become somewhat annoyed with the admin that often does a repack\n-a.\n\nYou do want to repack (usually without -a -- but see also \".keep\")\nperiodically, though. Working out a schedule depends on the activity\nlevel of the repository, and is left as an exercise for the reader.\n\n> In any case, I would like to suggest that the rather ominous-sounding text in\n> the manpage be replaced with something more concrete, i.e. \"If you repack an\n> archive that has people fetching via dumb protocols from it, X, Y, and Z will\n> happen.\"\n\nPatches welcome.\n\nPeter Harris\n"},{"id":"115431","messageId":"200906040934.39475.lists@informa.tiker.net","threadId":"19654","inReplyTo":"1244115295-28688-1-git-send-email-git@drmicha.warpmail.net","subject":"Re: [PATCHv1+eps] git-repack.txt: Clarify implications of -a for dumb protocols","fromName":"Andreas Klöckner","fromEmail":"lists@informa.tiker.net","sentAt":"2009-06-04T13:34:12Z","receivedAt":"2009-06-04T13:34:12Z","isPatch":false,"sender":{"key":"lists@informa.tiker.net","avatar":null},"body":"Thanks, that's much better!\n\nAndreas\n\nOn Donnerstag 04 Juni 2009, Michael J Gruber wrote:\n> The current text makes some users feel uneasy, worrying whether\n> '-a' could lead to corrupt repositories. Clarify that '-a'\n> may lead to performance issues only for dumb protocols.\n>\n> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n> ---\n> Is that clear enough but concise?\n>\n> Applies to maint.\n>\n> [Sorry for the resend, I managed to mistype the subject.]\n>\n>  Documentation/git-repack.txt |    5 ++++-\n>  1 files changed, 4 insertions(+), 1 deletions(-)\n>\n> diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt\n> index aaa8852..8af5505 100644\n> --- a/Documentation/git-repack.txt\n> +++ b/Documentation/git-repack.txt\n> @@ -32,7 +32,10 @@ OPTIONS\n>  \tpack everything referenced into a single pack.\n>  \tEspecially useful when packing a repository that is used\n>  \tfor private development and there is no need to worry\n> -\tabout people fetching via dumb protocols from it.  Use\n> +\tabout people fetching via dumb protocols from it.\n> +\t(Over dumb protocols, one would have to fetch the whole new\n> +\tpack in order to get any contained object, no matter how\n> +\tmany other objects in that pack exist locally already.) Use\n>  \twith '-d'.  This will clean up the objects that `git prune`\n>  \tleaves behind, but `git fsck --full` shows as\n>  \tdangling.\n\n\n"},{"id":"115438","messageId":"780e0a6b0906041246k43d42af1xe623168c52ff7e4f@mail.gmail.com","threadId":"19654","inReplyTo":"1244115295-28688-1-git-send-email-git@drmicha.warpmail.net","subject":"Re: [PATCHv1+eps] git-repack.txt: Clarify implications of -a for dumb protocols","fromName":"Stephen Boyd","fromEmail":"bebarino@gmail.com","sentAt":"2009-06-04T19:46:23Z","receivedAt":"2009-06-04T19:46:23Z","isPatch":false,"sender":{"key":"bebarino@gmail.com","avatar":"https://avatars.githubusercontent.com/u/38832?v=4"},"body":"On Thu, Jun 4, 2009 at 4:34 AM, Michael J\nGruber<git@drmicha.warpmail.net> wrote:\n>        pack everything referenced into a single pack.\n>        Especially useful when packing a repository that is used\n>        for private development and there is no need to worry\n> -       about people fetching via dumb protocols from it.  Use\n> +       about people fetching via dumb protocols from it.\n> +       (Over dumb protocols, one would have to fetch the whole new\n> +       pack in order to get any contained object, no matter how\n> +       many other objects in that pack exist locally already.) Use\n>        with '-d'.  This will clean up the objects that `git prune`\n>        leaves behind, but `git fsck --full` shows as\n>        dangling.\n\nInstead of adding this, why don't we just remove the part about dumb\nprotocols? So just say that it's especially useful for private\ndevelopment. Then, if we really want to keep this performance note\njust add it after the paragraph in one of those \"+\" things (What are\nthose called?)\n"},{"id":"115492","messageId":"4A28D470.5030403@drmicha.warpmail.net","threadId":"19654","inReplyTo":"780e0a6b0906041246k43d42af1xe623168c52ff7e4f@mail.gmail.com","subject":"Re: [PATCHv1+eps] git-repack.txt: Clarify implications of -a for dumb protocols","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-06-05T08:16:48Z","receivedAt":"2009-06-05T08:16:48Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Stephen Boyd venit, vidit, dixit 04.06.2009 21:46:\n> On Thu, Jun 4, 2009 at 4:34 AM, Michael J\n> Gruber<git@drmicha.warpmail.net> wrote:\n>>        pack everything referenced into a single pack.\n>>        Especially useful when packing a repository that is used\n>>        for private development and there is no need to worry\n>> -       about people fetching via dumb protocols from it.  Use\n>> +       about people fetching via dumb protocols from it.\n>> +       (Over dumb protocols, one would have to fetch the whole new\n>> +       pack in order to get any contained object, no matter how\n>> +       many other objects in that pack exist locally already.) Use\n>>        with '-d'.  This will clean up the objects that `git prune`\n>>        leaves behind, but `git fsck --full` shows as\n>>        dangling.\n> \n> Instead of adding this, why don't we just remove the part about dumb\n> protocols? So just say that it's especially useful for private\n> development. Then, if we really want to keep this performance note\n> just add it after the paragraph in one of those \"+\" things (What are\n> those called?)\n\n...because \"repack -a\" hurts *badly* on even midsized repos when dumb\nprotocols are used. On the other hand, using it isn't that much of an\nimprovement in terms of pack size, unless you repack manually very often\nand, thus, produce many small packs. So, \"gc --auto\" users should be\nfine in any case (dumb or not - the protocol, that is...) as long as\nthey don't use \"-a\".\n\nMichael\n"},{"id":"115552","messageId":"780e0a6b0906051214t76f2bf37u96cc0b8039f63d23@mail.gmail.com","threadId":"19654","inReplyTo":"4A28D470.5030403@drmicha.warpmail.net","subject":"Re: [PATCHv1+eps] git-repack.txt: Clarify implications of -a for dumb protocols","fromName":"Stephen Boyd","fromEmail":"bebarino@gmail.com","sentAt":"2009-06-05T19:14:15Z","receivedAt":"2009-06-05T19:14:15Z","isPatch":false,"sender":{"key":"bebarino@gmail.com","avatar":"https://avatars.githubusercontent.com/u/38832?v=4"},"body":"On Fri, Jun 5, 2009 at 1:16 AM, Michael J\nGruber<git@drmicha.warpmail.net> wrote:\n> Stephen Boyd venit, vidit, dixit 04.06.2009 21:46:\n>> Instead of adding this, why don't we just remove the part about dumb\n>> protocols? So just say that it's especially useful for private\n>> development. Then, if we really want to keep this performance note\n>> just add it after the paragraph in one of those \"+\" things (What are\n>> those called?)\n>\n> ...because \"repack -a\" hurts *badly* on even midsized repos when dumb\n> protocols are used. On the other hand, using it isn't that much of an\n> improvement in terms of pack size, unless you repack manually very often\n> and, thus, produce many small packs. So, \"gc --auto\" users should be\n> fine in any case (dumb or not - the protocol, that is...) as long as\n> they don't use \"-a\".\n\nMaybe I spoke wrongly. I'm suggesting something like\n\n       Especially useful when packing a repository that is used\n       for private development.  Use with '-d'.  This will clean up\n       the objects that `git prune` leaves behind, but\n       `git fsck --full` shows as dangling.\n+\nNote: Users fetching over dumb protocols will have to fetch the\nwhole pack in order to get any contained object, no matter how\nmany other objects in that pack they already have locally.\n\nI think this Note part probably needs some work though.\n"},{"id":"115917","messageId":"1244564147-15918-1-git-send-email-git@drmicha.warpmail.net","threadId":"19654","inReplyTo":"780e0a6b0906051214t76f2bf37u96cc0b8039f63d23@mail.gmail.com","subject":"[PATCH] git-repack.txt: Clarify implications of -a for dumb protocols","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-06-09T16:15:47Z","receivedAt":"2009-06-09T16:15:47Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"The current text makes some users feel uneasy, worrying whether\n'-a' could lead to corrupt repositories. Clarify that '-a'\nmay lead to performance issues only for dumb protocols.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\nHelped-by: Stephen Boyd <bebarino@gmail.com>\n\n Documentation/git-repack.txt |    7 +++++--\n 1 files changed, 5 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt\nindex aaa8852..c9257a1 100644\n--- a/Documentation/git-repack.txt\n+++ b/Documentation/git-repack.txt\n@@ -31,11 +31,14 @@ OPTIONS\n \tInstead of incrementally packing the unpacked objects,\n \tpack everything referenced into a single pack.\n \tEspecially useful when packing a repository that is used\n-\tfor private development and there is no need to worry\n-\tabout people fetching via dumb protocols from it.  Use\n+\tfor private development. Use\n \twith '-d'.  This will clean up the objects that `git prune`\n \tleaves behind, but `git fsck --full` shows as\n \tdangling.\n++\n+Note that users fetching over dumb protocols will have to fetch the\n+whole new pack in order to get any contained object, no matter how many\n+other objects in that pack they already have locally.\n \n -A::\n \tSame as `-a`, unless '-d' is used.  Then any unreachable\n-- \n1.6.3.2.278.gb6431.dirty\n"}]}