{"push_id":998161047,"size":196,"distinct_size":196,"ref":"refs/heads/master","head":"8cc56ac7ccc373078f911cc351b6b1547517a6f2","before":"c286173aad4d982e6c37572411950baffe8f0ba1","commits":[{"sha":"320d39cdb075896804868cc8b1ca834a04ffdd8f","author":{"email":"955341c97b9d93a23c19524fc0105a6405902afe@web.de","name":"Torsten Bögershausen"},"message":"t0027: add tests for get_stream_filter()\n\nWhen a filter is configured, a different code-path is used in convert.c\nand entry.c via get_stream_filter(), but there are no test cases yet.\n\nAdd tests for the filter API by configuring the ident filter.\nThe result of the SHA1 conversion is not checked, this is already\ndone in other TC.\n\nAdd a parameter to checkout_files() in t0027.\nWhile changing the signature, add another parameter for the eol= attribute.\nThis is currently unused, tests for e.g.\n\"* text=auto eol=lf\" will be added in a separate commit.\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/320d39cdb075896804868cc8b1ca834a04ffdd8f"},{"sha":"92cce1355ed4d2eb674b0742b00cfa133a4a8d58","author":{"email":"955341c97b9d93a23c19524fc0105a6405902afe@web.de","name":"Torsten Bögershausen"},"message":"convert.c: remove unused parameter 'path'\n\nSome functions get a parameter path, but don't use it.\nRemove the unused parameter.\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/92cce1355ed4d2eb674b0742b00cfa133a4a8d58"},{"sha":"bb211b4de83b7cbc93049bc0d73883083a6a8b0b","author":{"email":"955341c97b9d93a23c19524fc0105a6405902afe@web.de","name":"Torsten Bögershausen"},"message":"convert.c: remove input_crlf_action()\n\nIntegrate the code of input_crlf_action() into convert_attrs(),\nso that ca.crlf_action is always valid after calling convert_attrs().\nKeep a copy of crlf_action in attr_action, this is needed for\nget_convert_attr_ascii().\n\nRemove eol_attr from struct conv_attrs, as it is now used temporally.\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/bb211b4de83b7cbc93049bc0d73883083a6a8b0b"},{"sha":"4b4024f5ddca2ac14c2b15158d7cca888a8ae25e","author":{"email":"955341c97b9d93a23c19524fc0105a6405902afe@web.de","name":"Torsten Bögershausen"},"message":"convert.c: use text_eol_is_crlf()\n\nAdd a helper function to find out, which line endings text files\nshould get at checkout, depending on core.autocrlf and core.eol\nconfiguration variables.\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/4b4024f5ddca2ac14c2b15158d7cca888a8ae25e"},{"sha":"1cc777de6f4396f578e0f5e6b1a5ec23b96a52f0","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"checkout: reorder check_filename conditional\n\nIf we have a \"--\" flag, we should not be doing DWIM magic\nbased on whether arguments can be filenames. Reorder the\nconditional to avoid the check_filename() call entirely in\nthis case. The outcome is the same, but the short-circuit\nmakes the dependency more clear.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/1cc777de6f4396f578e0f5e6b1a5ec23b96a52f0"},{"sha":"df714f81a709dda9552f137ccd2a3510119298ad","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"check_filename: tighten dwim-wildcard ambiguity\n\nWhen specifying both revisions and pathnames, we allow\n\"<rev> -- <pathspec>\" to be spelled without the \"--\" as long\nas it is not ambiguous. The original logic was something\nlike:\n\n  1. Resolve each item with get_sha1(). If successful,\n     we know it can be a <rev>. Verify that it _isn't_ a\n     filename, using verify_non_filename(), and complain of\n     ambiguity otherwise.\n\n  2. If get_sha1() didn't succeed, make sure that it _is_\n     a file, using verify_filename(). If not, complain\n     that it is neither a <rev> nor a <pathspec>.\n\nBoth verify_filename() and verify_non_filename() rely on\ncheck_filename(), which definitely said \"yes, this is a\nfile\" or \"no, it is not\" using lstat().\n\nCommit 28fcc0b (pathspec: avoid the need of \"--\" when\nwildcard is used, 2015-05-02) introduced a convenience\nfeature: check_filename() will consider anything with\nwildcard meta-characters as a possible filename, without\neven checking the filesystem.\n\nThis works well for case 2. For such a wildcard, we would\npreviously have died and said \"it is neither\". Post-28fcc0b,\nwe assume it's a pathspec and proceed.\n\nBut it makes some instances of case 1 worse. We may have an\nextended sha1 expression that contains meta-characters\n(e.g., \"HEAD^{/foo.*bar}\"), and we now complain that it's\nalso a filename, due to the wildcard characters (even though\nthat wildcard would not match anything in the filesystem).\n\nOne solution would be to actually expand the pathname and\nsee if it matches anything on the filesystem. But that's\npotentially expensive, and we do not have to be so rigorous\nfor this DWIM magic (if you want rigor, use \"--\").\n\nInstead, we can just use different rules for cases 1 and 2.\nWhen we know something is a rev, we will complain only if it\nmeets a much higher standard for \"this is also a file\";\nnamely that it actually exists in the filesystem. Case 2\nremains the same: we use the looser \"it could be a filename\"\nstandard introduced by 28fcc0b.\n\nWe can accomplish this by pulling the wildcard logic out of\ncheck_filename() and putting it into verify_filename(). Its\npartner verify_non_filename() does not need a change, since\ncheck_filename() goes back to implementing the \"higher\nstandard\".\n\nBesides these two callers of check_filename(), there is one\nother: git-checkout does a similar DWIM itself. It hits this\ncode path only after get_sha1() has returned failure, making\nit case 2, which gets the special wildcard treatment.\n\nNote that we drop the tests in t2019 in favor of a more\ncomplete set in t6133. t2019 was not the right place for\nthem (it's about refname ambiguity, not dwim parsing\nambiguity), and the second test explicitly checked for the\nopposite result of the case we are fixing here (which didn't\nreally make any sense; as shown by the test_must_fail in the\ntest, it would only serve to annoy people).\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/df714f81a709dda9552f137ccd2a3510119298ad"},{"sha":"aac4fac1689f7d1414523d2ac96f1c737ee53b71","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"get_sha1: don't die() on bogus search strings\n\nThe get_sha1() function generally returns an error code\nrather than dying, and we sometimes speculatively call it\nwith something that may be a revision or a pathspec, in\norder to see which one it might be.\n\nIf it sees a bogus \":/\" search string, though, it complains,\nwithout giving the caller the opportunity to recover. We can\ndemonstrate this in t6133 by looking for \":/*.t\", which\nshould mean \"*.t at the root of the tree\", but instead dies\nbecause of the invalid regex (the \"*\" has nothing to operate\non).\n\nWe can fix this by returning an error rather than calling\ndie(). Unfortunately, the tradeoff is that the error message\nis slightly worse in cases where we _do_ know we have a rev.\nE.g., running \"git log ':/*.t' --\" before yielded:\n\n  fatal: Invalid search pattern: *.t\n\nand now we get only:\n\n  fatal: bad revision ':/*.t'\n\nThere's not a simple way to fix this short of passing a\n\"quiet\" flag all the way through the get_sha1() stack.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/aac4fac1689f7d1414523d2ac96f1c737ee53b71"},{"sha":"df747b818f0c9b7d0db1d7e3837b78e5d48b6fde","author":{"email":"955341c97b9d93a23c19524fc0105a6405902afe@web.de","name":"Torsten Bögershausen"},"message":"convert.c: refactor crlf_action\n\nRefactor the determination and usage of crlf_action.\nToday, when no \"crlf\" attribute are set on a file, crlf_action is set to\nCRLF_GUESS. Use CRLF_UNDEFINED instead, and search for \"text\" or \"eol\" as\nbefore.\nAfter searching for line ending attributes, save the value in\nstruct conv_attrs.crlf_action attr_action,\nso that get_convert_attr_ascii() is able report the attributes.\n\nReplace the old CRLF_GUESS usage:\nCRLF_GUESS && core.autocrlf=true -> CRLF_AUTO_CRLF\nCRLF_GUESS && core.autocrlf=false -> CRLF_BINARY\nCRLF_GUESS && core.autocrlf=input -> CRLF_AUTO_INPUT\n\nSave the action in conv_attrs.crlf_action (as before) and change\nall callers.\n\nMake more clear, what is what, by defining:\n\n- CRLF_UNDEFINED : No attributes set. Temparally used, until core.autocrlf\n                   and core.eol is evaluated and one of CRLF_BINARY,\n                   CRLF_AUTO_INPUT or CRLF_AUTO_CRLF is selected\n- CRLF_BINARY    : No processing of line endings.\n- CRLF_TEXT      : attribute \"text\" is set, line endings are processed.\n- CRLF_TEXT_INPUT: attribute \"input\" or \"eol=lf\" is set. This implies text.\n- CRLF_TEXT_CRLF : attribute \"eol=crlf\" is set. This implies text.\n- CRLF_AUTO      : attribute \"auto\" is set.\n- CRLF_AUTO_INPUT: core.autocrlf=input (no attributes)\n- CRLF_AUTO_CRLF : core.autocrlf=true  (no attributes)\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/df747b818f0c9b7d0db1d7e3837b78e5d48b6fde"},{"sha":"6e336a530b0dd98d1c751440ca5666a6999ab020","author":{"email":"955341c97b9d93a23c19524fc0105a6405902afe@web.de","name":"Torsten Bögershausen"},"message":"convert.c: simplify text_stat\n\nSimplify the statistics:\nlonecr counts the CR which is not followed by a LF,\nlonelf counts the LF which is not preceded by a CR,\ncrlf counts CRLF combinations.\nThis simplifies the evaluation of the statistics.\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/6e336a530b0dd98d1c751440ca5666a6999ab020"},{"sha":"c915f11eb4922e154e29cf62d3b549d65c06a170","author":{"email":"8c2951295f8292b0c03727bc4652981172298eae@yhbt.net","name":"Eric Wong"},"message":"connect & http: support -4 and -6 switches for remote operations\n\nSometimes it is necessary to force IPv4-only or IPv6-only operation\non networks where name lookups may return a non-routable address and\nstall remote operations.\n\nThe ssh(1) command has an equivalent switches which we may pass when\nwe run them.  There may be old ssh(1) implementations out there\nwhich do not support these switches; they should report the\nappropriate error in that case.\n\nrsync support is untouched for now since it is deprecated and\nscheduled to be removed.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\nReviewed-by: Torsten Bögershausen <tboegi@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/c915f11eb4922e154e29cf62d3b549d65c06a170"},{"sha":"415959387e0642842be7aad05fa5d95ea4ed350f","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"http-push: stop using name_path\n\nThe graph traversal code here passes along a name_path to\nbuild up the pathname at which we find each blob. But we\nnever actually do anything with the resulting names, making\nit a waste of code and memory.\n\nThis usage came in aa1dbc9 (Update http-push functionality,\n2006-03-07), and originally the result was passed to\n\"add_object\" (which stored it, but didn't really use it,\neither). But we stopped using that function in 1f1e895 (Add\n\"named object array\" concept, 2006-06-19) in favor of\nstoring just the objects themselves.\n\nMoreover, the generation of the name in process_tree() is\nbuggy. It sticks \"name\" onto the end of the name_path linked\nlist, and then passes it down again as it recurses (instead\nof \"entry.path\"). So it's a good thing this was unused, as\nthe resulting path for \"a/b/c/d\" would end up as \"a/a/a/a\".\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/415959387e0642842be7aad05fa5d95ea4ed350f"},{"sha":"f9fb9d0e3caebe97c54c101d8235e6529d5a1273","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"show_object_with_name: simplify by using path_name()\n\nWhen \"git rev-list\" shows an object with its associated path\nname, it does so by walking the name_path linked list and\nprinting each component (stopping at any embedded NULs or\nnewlines).\n\nWe'd like to eventually get rid of name_path entirely in\nfavor of a single buffer, and dropping this custom printing\ncode is part of that. As a first step, let's use path_name()\nto format the list into a single buffer, and print that.\nThis is strictly less efficient than the original, but it's\na temporary step in the refactoring; our end game will be to\nget the fully formatted name in the first place.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/f9fb9d0e3caebe97c54c101d8235e6529d5a1273"},{"sha":"13528ab37cadb4d4f7384d0449489760912904b8","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"list-objects: convert name_path to a strbuf\n\nThe \"struct name_path\" data is examined in only two places:\nwe generate it in process_tree(), and we convert it to a\nsingle string in path_name(). Everyone else just passes it\nthrough to those functions.\n\nWe can further note that process_tree() already keeps a\nsingle strbuf with the leading tree path, for use with\ntree_entry_interesting().\n\nInstead of building a separate name_path linked list, let's\njust use the one we already build in \"base\". This reduces\nthe amount of code (especially tricky code in path_name()\nwhich did not check for integer overflows caused by deep\nor large pathnames).\n\nIt is also more efficient in some instances.  Any time we\nwere using tree_entry_interesting, we were building up the\nstrbuf anyway, so this is an immediate and obvious win\nthere. In cases where we were not, we trade off storing\n\"pathname/\" in a strbuf on the heap for each level of the\npath, instead of two pointers and an int on the stack (with\none pointer into the tree object). On a 64-bit system, the\nlatter is 20 bytes; so if path components are less than that\non average, this has lower peak memory usage.  In practice\nit probably doesn't matter either way; we are already\nholding in memory all of the tree objects leading up to each\npathname, and for normal-depth pathnames, we are only\ntalking about hundreds of bytes.\n\nThis patch leaves \"struct name_path\" as a thin wrapper\naround the strbuf, to avoid disrupting callbacks. We should\nfix them, but leaving it out makes this diff easier to view.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/13528ab37cadb4d4f7384d0449489760912904b8"},{"sha":"bd64516aca4d4e22acb33c71429d293a14d355cf","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"list-objects: drop name_path entirely\n\nIn the previous commit, we left name_path as a thin wrapper\naround a strbuf. This patch drops it entirely. As a result,\nevery show_object_fn callback needs to be adjusted. However,\nnone of their code needs to be changed at all, because the\nonly use was to pass it to path_name(), which now handles\nthe bare strbuf.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/bd64516aca4d4e22acb33c71429d293a14d355cf"},{"sha":"de1e67d0703894cb6ea782e36abb63976ab07e60","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"list-objects: pass full pathname to callbacks\n\nWhen we find a blob at \"a/b/c\", we currently pass this to\nour show_object_fn callbacks as two components: \"a/b/\" and\n\"c\". Callbacks which want the full value then call\npath_name(), which concatenates the two. But this is an\ninefficient interface; the path is a strbuf, and we could\nsimply append \"c\" to it temporarily, then roll back the\nlength, without creating a new copy.\n\nSo we could improve this by teaching the callsites of\npath_name() this trick (and there are only 3). But we can\nalso notice that no callback actually cares about the\nbroken-down representation, and simply pass each callback\nthe full path \"a/b/c\" as a string. The callback code becomes\neven simpler, then, as we do not have to worry about freeing\nan allocated buffer, nor rolling back our modification to\nthe strbuf.\n\nThis is theoretically less efficient, as some callbacks\nwould not bother to format the final path component. But in\npractice this is not measurable. Since we use the same\nstrbuf over and over, our work to grow it is amortized, and\nwe really only pay to memcpy a few bytes.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/de1e67d0703894cb6ea782e36abb63976ab07e60"},{"sha":"17f1365dbce9aa00cab3f196e7fa7138d9081eef","author":{"email":"024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","name":"Nguyễn Thái Ngọc Duy"},"message":"rev-parse: take prefix into account in --git-common-dir\n\nMost of the time, get_git_common_dir() returns an absolute path so\nprefix is irrelevant. If it returns a relative path (e.g. from the\nmain worktree) then prefixing is required.\n\nNoticed-by: Mike Hommey <mh@glandium.org>\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/17f1365dbce9aa00cab3f196e7fa7138d9081eef"},{"sha":"00540458a82ff2454ae1cc63e38a9ce4a1eea878","author":{"email":"f01032651c12a22b2103346ba96b3b6b231f9d3c@spearce.org","name":"Shawn Pearce"},"message":"remote-curl: include curl_errorstr on SSL setup failures\n\nFor curl error 35 (CURLE_SSL_CONNECT_ERROR) users need the\nadditional text stored in CURLOPT_ERRORBUFFER to debug why\nthe connection did not start. This is curl_errorstr inside\nof http.c, so include that in the message if it is non-empty.\n\nSometimes HTTP response codes aren't yet available, such as\nwhen the SSL setup fails. Don't include HTTP 0 in the message.\n\nSigned-off-by: Shawn Pearce <spearce@spearce.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/00540458a82ff2454ae1cc63e38a9ce4a1eea878"},{"sha":"121061f67fd47aed5b2f3a7deb82af15215636bd","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"http: add option to try authentication without username\n\nPerforming GSS-Negotiate authentication using Kerberos does not require\nspecifying a username or password, since that information is already\nincluded in the ticket itself.  However, libcurl refuses to perform\nauthentication if it has not been provided with a username and password.\nAdd an option, http.emptyAuth, that provides libcurl with an empty\nusername and password to make it attempt authentication anyway.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/121061f67fd47aed5b2f3a7deb82af15215636bd"},{"sha":"a60ea8fb66945a886ea53fd3f41e61cc5fb3201e","author":{"email":"024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","name":"Nguyễn Thái Ngọc Duy"},"message":"dir.c: fix match_pathname()\n\nGiven the pattern \"1/2/3/4\" and the path \"1/2/3/4/f\", the pattern\nprefix is \"1/2/3/4\". We will compare and remove the prefix from both\npattern and path and come to this code\n\n\t/*\n\t * If the whole pattern did not have a wildcard,\n\t * then our prefix match is all we need; we\n\t * do not need to call fnmatch at all.\n\t */\n\tif (!patternlen && !namelen)\n\t\treturn 1;\n\nwhere patternlen is zero (full pattern consumed) and the remaining\npath in \"name\" is \"/f\". We fail to realize it's matched in this case\nand fall back to fnmatch(), which also fails to catch it. Fix it.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/a60ea8fb66945a886ea53fd3f41e61cc5fb3201e"},{"sha":"bac65a2be598811d944c846bdf61580f5c1af927","author":{"email":"024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","name":"Nguyễn Thái Ngọc Duy"},"message":"dir.c: support tracing exclude\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/j6t/git/commits/bac65a2be598811d944c846bdf61580f5c1af927"}]}