git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sitaram Chamarty <sitaramc@gmail.com>
To: Andres Perera <andres.p@zoho.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	Duy Nguyen <pclouds@gmail.com>, David Jeske <davidj@gmail.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: ephemeral-branches instead of detached-head?
Date: Wed, 14 Aug 2013 14:35:49 +0530	[thread overview]
Message-ID: <520B486D.1040602@gmail.com> (raw)
In-Reply-To: <CAPrKj1ZQL0N7VFfZ3qS14Nhp8O4Kaez9QWK7AvqCXZds1Q=mRw@mail.gmail.com>

On 08/14/2013 12:40 PM, Andres Perera wrote:
> On Wed, Aug 14, 2013 at 2:02 AM, Sitaram Chamarty <sitaramc@gmail.com> wrote:
>> On 08/14/2013 07:14 AM, Junio C Hamano wrote:
>>> Sitaram Chamarty <sitaramc@gmail.com> writes:
>>>
>>>>     # all reflog entries that are not on a branch, tag, or remote
>>>>     d1 = !gitk --date-order $(git log -g --pretty=%H) --not --branches --tags --remotes
>>>>     # all dangling commits not on a branch, tag, or remote
>>>>     d2 = !gitk --date-order $(git fsck | grep "dangling.commit" | cut -f3 -d' ') --not --branches --tags --remotes
>>>>
>>>> (Apologies if something like this was already said; I was not following
>>>> the discussion closely enough to notice)
>>>
>>> Yup.
>>>
>>> A potential problem is that the output from "log -g --pretty=%H" or
>>> "fsck | grep dangling" may turn out to be humongous.  Other than
>>> that, they correctly compute what you want.
>>
>> I thought I mentioned that but I can't find my email now so maybe I
>> didn't.
>>
>> In practice though, I find that, bash at least seems happy to take
>> command lines as long as 7+ million characters long, so with the default
>> reflog expire times, that should work out to 10,000 commits *per day*.
>> [Tested with: echo {1000000..1900000}  > junk; echo `cat junk` | wc]
> 
> echo is a builtin in bash, as is the case with other shell implementations
> 
> builtins may have different limit's than exec()'s ARG_MAX
> 
> $ getconf ARG_MAX
> 262144
> $ perl -e 'print "A" x (262144 * 2)' | wc -c
>   524288
> $ perl -e 'print "A" x (262144 * 2)' | sh -c 'read v; echo "$v"' | wc -c
>   524289
> $ perl -e 'print "A" x (262144 * 2)' | sh -c 'read v; /bin/echo "$v"' | wc -c
> sh: /bin/echo: Argument list too long
>        0
> 
> builtin's argument buffer limit tends to be aligned with the
> implementation's lexer buffer limit

Aah; good catch -- I did not know this.  Thanks!

My systems show 2621440 on CentOS 6 and 2097152 on Fedora 19, so --
dividing by 8 (abbrev SHA + space) then by 90, that's still 2900 commits
*per day* to run past this limit though!

(side note: making a single argument that long seems to have a much
lower limit than having multiple arguments:

    $ /bin/echo `perl -e 'print "A" x (1000000)'` | wc
    -bash: /bin/echo: Argument list too long
          0       0       0
    $ /bin/echo `perl -e 'print "A " x (1000000)'` | wc
          1 1000000 2000000

notice that the second one is twice as long in terms of bytes, but it's
not a single argument).

  reply	other threads:[~2013-08-14  9:06 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-12  7:25 ephemeral-branches instead of detached-head? David Jeske
2013-08-12  7:39 ` Jonathan Nieder
2013-08-12  7:55 ` Junio C Hamano
2013-08-12  8:37   ` David Jeske
2013-08-12 12:14     ` David Jeske
2013-08-12 13:23       ` Duy Nguyen
2013-08-12 17:04         ` Andreas Schwab
2013-08-12 17:24         ` Junio C Hamano
2013-08-12 19:40           ` David Jeske
2013-08-12 19:05         ` David Jeske
2013-08-12 17:22       ` Junio C Hamano
2013-08-13  6:05     ` Duy Nguyen
     [not found]       ` <CA+CP9O5Ak3YD60--Mj+eLv3qzbZuuwTN-AxY3xb=SciKD=uZoQ@mail.gmail.com>
2013-08-13 15:13         ` Duy Nguyen
2013-08-13 15:36         ` Fwd: " David Jeske
2013-08-13 16:58           ` Junio C Hamano
2013-08-13 17:13             ` Junio C Hamano
2013-08-13 16:49       ` Junio C Hamano
2013-08-14  0:04         ` Sitaram Chamarty
2013-08-14  1:44           ` Junio C Hamano
2013-08-14  6:32             ` Sitaram Chamarty
2013-08-14  6:59               ` Jeff King
2013-08-14  7:10               ` Andres Perera
2013-08-14  9:05                 ` Sitaram Chamarty [this message]
2013-08-14 16:40                   ` Andres Perera

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=520B486D.1040602@gmail.com \
    --to=sitaramc@gmail.com \
    --cc=andres.p@zoho.com \
    --cc=davidj@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pclouds@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).