From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8246 invoked by alias); 6 May 2011 13:59:14 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 29166 Received: (qmail 23799 invoked from network); 6 May 2011 13:59:12 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.google.com designates 209.85.212.177 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:date:x-google-sender-auth :message-id:subject:from:to:content-type; bh=ZXL2Tuf1rQMT7nbK2KfqrvBYQ1tsCnpZms6TvVFo0b4=; b=GCRrOJbLl5Zia4zEovYbVZvi2883qfJPyXREglNMQ3KjU3ro+nrZGU7OZg7Z7MH+SR md4wU8bIbq16oFlO2QyyBFuUMKaTxKXQLSCOmxbbkQPyyV3mfZ9AE9bY1RGcBpRhMSHc 9KDcJgIZxQ7nsfUCDQ+42WrN1xKtrW/n3ptPo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=HiH0clctbhf7HQCVuLkmgF/koQ4Oz3djV28zkcNSmou2yx6D3PU+/ufDYMwJ+wkJFU TUA0GNc/CAbvu2VAzM0JrrdKQhz6p7UoNGvCA/miDRwh2evs/YdZfPo22H9ojOPrfQYI 5LPQd5WPKd5ji7lisyNRW3VhVsobRvKwnSZZw= MIME-Version: 1.0 Sender: nikolai.weibull@gmail.com Date: Fri, 6 May 2011 15:03:49 +0200 X-Google-Sender-Auth: ydKw3O1Rc4pcMMDEdBY2egv6tUU Message-ID: Subject: Speed improvement patch for __git_files and __git_files_relative From: Nikolai Weibull To: Zsh Workers Content-Type: multipart/mixed; boundary=bcaec5396bc8eba42304a29b1e8b --bcaec5396bc8eba42304a29b1e8b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi! I=E2=80=99ve now put together a patch for __git_files and __git_files_relative. __git_files is a lot faster than previous versions and __git_files_relative should be a lot faster too, now that it only uses substitutions. (Well, there=E2=80=99s a for loop that iterate= s over the file names to determine the common path prefix, but I see no way of avoiding it.) It would be great if this could make it into the 4.3.12 release, so please give it a try as soon as possible. --bcaec5396bc8eba42304a29b1e8b Content-Type: application/octet-stream; name="__git_files.patch" Content-Disposition: attachment; filename="__git_files.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gnd4wtbp0 ZGlmZiAtLWdpdCBhL0NvbXBsZXRpb24vVW5peC9Db21tYW5kL19naXQgYi9Db21wbGV0aW9uL1Vu aXgvQ29tbWFuZC9fZ2l0CmluZGV4IDQ2NjRjZmEuLjcwOTkyZGUgMTAwNjQ0Ci0tLSBhL0NvbXBs ZXRpb24vVW5peC9Db21tYW5kL19naXQKKysrIGIvQ29tcGxldGlvbi9Vbml4L0NvbW1hbmQvX2dp dApAQCAtNjIzLDcgKzYyMywxMSBAQCBfZ2l0LWRpZmYgKCkgewogICAgICAgY2FzZSAkQ1VSUkVO VCBpbgogICAgICAgICAoMSkKICAgICAgICAgICBpZiBbWyAtbiAke29wdF9hcmdzWyhJKS0tXX0g XV07IHRoZW4KLSAgICAgICAgICAgIF9fZ2l0X2NoYW5nZWQtaW4td29ya2luZy10cmVlX2ZpbGVz ICYmIHJldD0wCisgICAgICAgICAgICBpZiBbWyAtbiAke29wdF9hcmdzWyhJKS0tY2FjaGVkfC0t c3RhZ2VkXX0gXV07IHRoZW4KKyAgICAgICAgICAgICAgX19naXRfY2hhbmdlZC1pbi1pbmRleF9m aWxlcyAmJiByZXQ9MAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBfX2dpdF9jaGFu Z2VkLWluLXdvcmtpbmctdHJlZV9maWxlcyAmJiByZXQ9MAorICAgICAgICAgICAgZmkKICAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICBsb2NhbCBmaWxlc19hbHQ9J2ZpbGVzOjpfX2dpdF9jaGFu Z2VkLWluLXdvcmtpbmctdHJlZV9maWxlcycKIApAQCAtNTE0Niw0NSArNTE1MCwzMiBAQCBfX2dp dF9ub3Rlc19yZWZzICgpIHsKIAogKCggJCtmdW5jdGlvbnNbX19naXRfZmlsZXNfcmVsYXRpdmVd ICkpIHx8CiBfX2dpdF9maWxlc19yZWxhdGl2ZSAoKSB7Ci0gIGxvY2FsIHJhd2ZpbGVzIGZpbGVz IGZpbGUgZl9wYXJ0cyBwcmVmaXggcF9wYXJ0cyB0bXAKKyAgbG9jYWwgZmlsZXMgZmlsZSBmX3Bh cnRzIHByZWZpeCBwX3BhcnRzIHRtcAogCiAgIHByZWZpeD0kKF9jYWxsX3Byb2dyYW0gZ2l0cHJl Zml4IGdpdCByZXYtcGFyc2UgLS1zaG93LXByZWZpeCAyPi9kZXYvbnVsbCkKICAgX19naXRfY29t bWFuZF9zdWNjZXNzZnVsICRwaXBlc3RhdHVzIHx8IHJldHVybgogCi0gICMgRW1wdHkgcHJlZml4 LCBubyBtb2RpZmljYXRpb25zCiAgIGlmICgoICQjcHJlZml4ID09IDAgKSk7IHRoZW4KICAgICBw cmludCAkMQogICAgIHJldHVybgogICBmaQogCi0gIHJhd2ZpbGVzPSgkeygwKTF9KQogICBmaWxl cz0oKQogCi0gICMgTm93IHdlIGFzc3VtZSB0aGF0IHdlJ3ZlIGdpdmVuICJhYnNvbHV0ZSIgcGF0 aHMgbGlzdCB3aXRoICJyb290IgotICAjIGJlaW5nIHJlcG9zaXRvcnkgdG9wIGRpcmVjdG9yeS4g ICRwcmVmaXggaXMgYWxzbyAiYWJzb2x1dGUiIHBhdGguCi0gIGZvciBmaWxlIGluICRyYXdmaWxl czsgZG8KLSAgICAjIENvbGxhcHNlICIvLi8iIGFuZCAiLy8iLCBzdHJpcCAiLy4iIGFuZCAiLyIg ZnJvbSB0YWlsIChJIGtub3csCi0gICAgIyB0aGlzIGlzIGEgYml0IHBhcmFub2lkKS4KLSAgICBm X3BhcnRzPSgkeyhzOi86KSIkeyR7JHske2ZpbGUvL1wvXC8vL30vL1wvLlwvLy99JSUvLn0lJS99 In0pCi0gICAgcF9wYXJ0cz0oJHsoczovOikiJHskeyR7JHtwcmVmaXgvL1wvXC8vL30vL1wvLlwv Ly99JSUvLn0lJS99In0pCi0gICAgdG1wPSgpCi0KLSAgICAjIFN0cmlwIGNvbW1vbiBwYXRoIHBy ZWZpeC4KLSAgICB3aGlsZSAoKCAkI2ZfcGFydHMgPiAwICkpICYmICgoICQjcF9wYXJ0cyA+IDAg KSkgJiYgW1sgJGZfcGFydHNbMV0gPT0gJHBfcGFydHNbMV0gXV07IGRvCi0gICAgICBmX3BhcnRz WzFdPSgpCi0gICAgICBwX3BhcnRzWzFdPSgpCi0gICAgZG9uZQotCi0gICAgIyBJZiBwcmVmaXgg c3RpbGwgbm90IGVtcHR5LCBhc2NlbmQgdXAuCi0gICAgd2hpbGUgKCggJCNwX3BhcnRzID4gMCAp KTsgZG8KLSAgICAgIHRtcCs9Li4KLSAgICAgIHBfcGFydHNbMV09KCkKKyAgIyBDb2xsYXBzZSDi gJwvL+KAnSBhbmQg4oCcLy4v4oCdIGludG8g4oCcL+KAnS4gU3RyaXAgYW55IHJlbWFpbmluZyDi gJwvLuKAnSBhbmQg4oCcL+KAnS4KKyAgZm9yIGZpbGUgaW4gJHskeyR7JHskeygwKTF9Ly9cL1wv Ly99Ly9cLy5cLy8vfSUvLn0lL307IGRvCisgICAgaW50ZWdlciBpIG4KKyAgICAoKCBuID0gJCNm aWxlID4gJCNwcmVmaXggPyAkI2ZpbGUgOiAkI3ByZWZpeCApKQorICAgIGZvciAoKCBpID0gMTsg aSA8PSBuOyBpKysgKSk7IGRvCisgICAgICBpZiBbWyAkZmlsZVtpXSAhPSAkcHJlZml4W2ldIF1d OyB0aGVuCisgICAgICAgIHdoaWxlICgoIGkgPiAwICkpICYmIFtbICRmaWxlW2ktMV0gIT0gLyBd XTsgZG8KKyAgICAgICAgICAoKCBpLS0gKSkKKyAgICAgICAgZG9uZQorICAgICAgICBicmVhawor ICAgICAgZmkKICAgICBkb25lCiAKLSAgICAjIEFkZCByZW1haW5pbmcgcGF0aC4KLSAgICB0bXAr PSgkZl9wYXJ0cykKLQotICAgIGZpbGVzKz0keyhqOi86KXRtcH0KKyAgICBmaWxlcys9JHsobEAk eyNwcmVmaXhbaSwtMV0vL1teXC9dfSozQEAuLi9AKX0ke2ZpbGVbaSwtMV19CiAgIGRvbmUKIAog ICBwcmludCAkeyhwajpcMDopZmlsZXN9CkBAIC01MTkyLDI3ICs1MTgzLDI1IEBAIF9fZ2l0X2Zp bGVzX3JlbGF0aXZlICgpIHsKIAogKCggJCtmdW5jdGlvbnNbX19naXRfZmlsZXNdICkpIHx8CiBf X2dpdF9maWxlcyAoKSB7Ci0gIGxvY2FsIGNvbXBhZGRfb3B0cyBvcHRzIHRhZyBkZXNjcmlwdGlv biBnaXRkaXIgZ2l0Y2R1cCBmaWxlcyBleHBsCisgIGxvY2FsIGNvbXBhZGRfb3B0cyBvcHRzIHRh ZyBkZXNjcmlwdGlvbiBnaXRjZHVwIGdpdHByZWZpeCBmaWxlcyBleHBsCiAKICAgenBhcnNlb3B0 cyAtRCAtRSAtYSBjb21wYWRkX29wdHMgVjogSjogMSAyIG4gZiBYOiBNOiBQOiBTOiByOiBSOiBx IEY6CiAgIHpwYXJzZW9wdHMgLUQgLUUgLWEgb3B0cyAtLSAtY2FjaGVkIC1kZWxldGVkIC1tb2Rp ZmllZCAtb3RoZXJzIC1pZ25vcmVkIC11bm1lcmdlZCAta2lsbGVkIHgrOiAtLWV4Y2x1ZGUrOgog ICB0YWc9JDEgZGVzY3JpcHRpb249JDI7IHNoaWZ0IDIKIAotICBnaXRkaXI9JChfY2FsbF9wcm9n cmFtIGdpdGRpciBnaXQgcmV2LXBhcnNlIC0tZ2l0LWRpciAyPi9kZXYvbnVsbCkKKyAgZ2l0Y2R1 cD0kKF9jYWxsX3Byb2dyYW0gZ2l0Y2R1cCBnaXQgcmV2LXBhcnNlIC0tc2hvdy1jZHVwIDI+L2Rl di9udWxsKQogICBfX2dpdF9jb21tYW5kX3N1Y2Nlc3NmdWwgJHBpcGVzdGF0dXMgfHwgcmV0dXJu CiAKLSAgZ2l0Y2R1cD0kKF9jYWxsX3Byb2dyYW0gZ2l0Y2R1cCBnaXQgcmV2LXBhcnNlIC0tc2hv dy1jZHVwIDI+L2Rldi9udWxsKQorICBnaXRwcmVmaXg9JChfY2FsbF9wcm9ncmFtIGdpdHByZWZp eCBnaXQgcmV2LXBhcnNlIC0tc2hvdy1wcmVmaXggMj4vZGV2L251bGwpCiAgIF9fZ2l0X2NvbW1h bmRfc3VjY2Vzc2Z1bCAkcGlwZXN0YXR1cyB8fCByZXR1cm4KIAotICBvcHRzKz0nLS1leGNsdWRl LXBlci1kaXJlY3Rvcnk9LmdpdGlnbm9yZScKLSAgW1sgLWYgIiRnaXRkaXIvaW5mby9leGNsdWRl IiBdXSAmJiBvcHRzKz0iLS1leGNsdWRlLWZyb209JGdpdGRpci9pbmZvL2V4Y2x1ZGUiCisgICMg VE9ETzogLS1kaXJlY3Rvcnkgc2hvdWxkIHByb2JhYmx5IGJlIGFkZGVkIHRvICRvcHRzIHdoZW4g LS1vdGhlcnMgaXMgZ2l2ZW4uCiAKLSAgZmlsZXM9JChfY2FsbF9wcm9ncmFtIGZpbGVzIGdpdCBs cy1maWxlcyAteiAtLWZ1bGwtbmFtZSAkb3B0cyAtLSAkZ2l0Y2R1cCAyPi9kZXYvbnVsbCkKLSAg X19naXRfY29tbWFuZF9zdWNjZXNzZnVsICRwaXBlc3RhdHVzIHx8IHJldHVybgotICBmaWxlcz0o JHsoMCkiJChfX2dpdF9maWxlc19yZWxhdGl2ZSAkZmlsZXMpIn0pCisgIGxvY2FsIHByZWY9JGdp dGNkdXAkZ2l0cHJlZml4JFBSRUZJWAorICBmaWxlcz0oJHsoMCkiJChfY2FsbF9wcm9ncmFtIGZp bGVzIGdpdCBscy1maWxlcyAteiAtLWV4Y2x1ZGUtc3RhbmRhcmQgJG9wdHMgLS0gJHtwcmVmOisk cHJlZlwqfSAyPi9kZXYvbnVsbCkifSkKICAgX19naXRfY29tbWFuZF9zdWNjZXNzZnVsICRwaXBl c3RhdHVzIHx8IHJldHVybgogCi0gIF93YW50ZWQgJHRhZyBleHBsICRkZXNjcmlwdGlvbiBfbXVs dGlfcGFydHMgJGNvbXBhZGRfb3B0cyAtIC8gZmlsZXMKKyAgX3dhbnRlZCAkdGFnIGV4cGwgJGRl c2NyaXB0aW9uIF9tdWx0aV9wYXJ0cyAtZiAkY29tcGFkZF9vcHRzIC0gLyBmaWxlcwogfQogCiAo KCAkK2Z1bmN0aW9uc1tfX2dpdF9jYWNoZWRfZmlsZXNdICkpIHx8Cg== --bcaec5396bc8eba42304a29b1e8b--