{"push_id":585805251,"size":530,"distinct_size":530,"ref":"refs/heads/master","head":"7f4ba4b6e3ba7075ca6b379ba23fd3088cbe69a8","before":"3f1509809e728b70ea7912e4e1b40f22965e45ee","commits":[{"sha":"05e73682cd28eeaf6d949badefd85b94244fca3f","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"checkout: report upstream correctly even with loosely defined branch.*.merge\n\nWhen checking out a branch that is set to build on top of another\nbranch (often, a remote-tracking branch), \"git checkout\" reports how\nyour work relates to the other branch, e.g.\n\n    Your branch is behind 'origin/master', and can be fast-forwarded.\n\nBack when this feature was introduced, this was only done for\nbranches that build on remote-tracking branches, but 5e6e2b48 (Make\nlocal branches behave like remote branches when --tracked,\n2009-04-01) added support to give the same report for branches that\nbuild on other local branches (i.e. branches whose branch.*.remote\nvariables are set to '.').  Unlike the support for the branches\nbuilding on remote-tracking branches, however, this did not take\ninto account the fact that branch.*.merge configuration is allowed\nto record a shortened branch name.\n\nWhen branch.*.merge is set to 'master' (not 'refs/heads/master'),\ni.e. \"my branch builds on the local 'master' branch\", this caused\n\"git checkout\" to report:\n\n    Your branch is based on 'master', but the upstream is gone.\n\nThe upstream is our repository and is definitely not gone, so this\noutput is nonsense.\n\nThe fix is fairly obvious; just like the branch name is DWIMed when\n\"git pull\" merges from the 'master' branch without complaint on such\na branch, the name of the branch the current branch builds upon\nneeds to be DWIMed the same way.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/05e73682cd28eeaf6d949badefd85b94244fca3f"},{"sha":"fb1d6dabce69bce3f28a7f442da990ef8df872ac","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"clone: --dissociate option to mark that reference is only temporary\n\nWhile use of the --reference option to borrow objects from an\nexisting local repository of the same project is an effective way to\nreduce traffic when cloning a project over the network, it makes the\nresulting \"borrowing\" repository dependent on the \"borrowed\"\nrepository.  After running\n\n\tgit clone --reference=P $URL Q\n\nthe resulting repository Q will be broken if the borrowed repository\nP disappears.\n\nThe way to allow the borrowed repository to be removed is to repack\nthe borrowing repository (i.e. run \"git repack -a -d\" in Q); while\npower users may know it very well, it is not easily discoverable.\n\nTeach a new \"--dissociate\" option to \"git clone\" to run this\nrepacking for the user.\n\nHelped-by: Johannes Sixt <j6t@kdbg.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/fb1d6dabce69bce3f28a7f442da990ef8df872ac"},{"sha":"6936b5859c47b826437218fbfc0e2bc0935f7136","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"diff -B -M: fix output for \"copy and then rewrite\" case\n\nStarting from a single file, A, if you create B as a copy of A (and\npossibly make some edit) and then make extensive change to A, you\nwill see:\n\n    $ git diff -C --name-status\n    C89    A    B\n    M      A\n\nwhich is expected.  However, if you ask the same question in a\ndifferent way, you see this:\n\n    $ git diff -B -M --name-status\n    R89    A    B\n    M100   A\n\ntelling us that A was rename-edited into B (as if \"A will no longer\nexist as the result\") and at the same time A itself was extensively\nedited.\n\nIn this case, because the resulting tree still does have file A\n(even if it has contents vastly different from the original), we\nshould use \"C\"opy, not \"R\"ename, to avoid hinting that A somehow\ngoes away.\n\nTwo existing tests were depending on the wrong behaviour, and fixed.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/6936b5859c47b826437218fbfc0e2bc0935f7136"},{"sha":"08e3ce5a20d738746b2a7700be6d3954bf01a2b9","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"builtin/merge.c: drop a parameter that is never used\n\nSince the very beginning when we added the \"renormalizing\" parameter\nto this function with 7610fa57 (merge-recursive --renormalize,\n2010-08-05), nobody seems to have ever referenced it.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/08e3ce5a20d738746b2a7700be6d3954bf01a2b9"},{"sha":"75c961b767ec061696634c1079dbe5f1a9e10f93","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"merge & sequencer: unify codepaths that write \"Conflicts:\" hint\n\nTwo identical loops in suggest_conflicts() in merge, and\ndo_recursive_merge() in sequencer, can use a single helper function\nextracted from the latter that prepares the \"Conflicts:\" hint that\nis meant to remind the user the paths for which merge conflicts had\nto be resolved to write a better commit log message.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/75c961b767ec061696634c1079dbe5f1a9e10f93"},{"sha":"d55aeb7687448189327ad058096b55431da5ea42","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"strbuf_add_commented_lines(): avoid SP-HT sequence in commented lines\n\nThe strbuf_add_commented_lines() function passes a pair of prefixes,\none to be used for a non-empty line, and the other for an empty\nline, to underlying add_lines().  The former is set to a comment\nchar followed by a SP, while the latter is set to just the comment\nchar.  This is designed to give a SP after the comment character,\ne.g. \"# <user text>\\n\", on a line with some text, and to avoid\nemitting an unsightly \"# \\n\" for an empty line.\n\nTeach this machinery to also use the latter space-less prefix when\nthe payload line begins with a tab, to show e.g. \"#\\t<user text>\\n\";\notherwise we will end up showing \"# \\t<user text>\\n\" which is\nsimilarly unsightly.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/d55aeb7687448189327ad058096b55431da5ea42"},{"sha":"073bd75e177aa9f1fc42b152a38e251c7156dfe0","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"builtin/commit.c: extract ignore_non_trailer() helper function\n\nExtract a helper function from prepare_to_commit() to determine\nwhere to place a new Signed-off-by: line, which is essentially the\ntrue \"end\" of the log message, ignoring the trailing \"Conflicts:\"\nline and everything below it.\n\nThe detection _should_ make sure the \"Conflicts:\" line it finds is\ntruly the conflict hint block by checking everything that follows is\na HT indented pathname to avoid false positive, but this logic will\nbe revamped in a later patch to ignore comments and blanks anyway,\nso it is left as-is in this step.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/073bd75e177aa9f1fc42b152a38e251c7156dfe0"},{"sha":"261f315bebfa9af2d09f20211960100ff06f87cb","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"merge & sequencer: turn \"Conflicts:\" hint into a comment\n\nJust like other hints such as \"Changes to be committed\" we show in\nthe editor to remind the committer what paths were involved in the\nresulting commit to help improving their log message, this section\nis merely a reminder.\n\nTraditionally, it was not made into comments primarily because it\nhas to be generated outside the wt-status infrastructure, and also\nbecause it was meant as a bit stronger reminder than the others\n(i.e. explaining how you resolved conflicts is much more important\nthan mentioning what you did to every paths involved in the commit).\n\nBut that still does not make this hint a part of the log message\nproper, and not showing it as a comment is inviting mistakes.\n\nNote that we still notice \"Conflicts:\" followed by list of indented\npathnames as an old-style cruft and insert a new Signed-off-by:\nbefore it.  This is so that \"commit --amend -s\" adds the new S-o-b\nat the right place when used on an older commit.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/261f315bebfa9af2d09f20211960100ff06f87cb"},{"sha":"d76c9e95b435b660f8f1b3e01d3c2f934e2ec441","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"bisect: clean flags after checking merge bases\n\nUnless there is a good reason to belieave that a particular\ninvocation of a get_merge_bases*() is the last one that cares about\nthe object flags the computation of merge bases leaves on the\nobjects, the \"cleanup\" parameter should always be true, and I do not\nthink there is one in this codepath.\n\nFound by code inspection.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/d76c9e95b435b660f8f1b3e01d3c2f934e2ec441"},{"sha":"2ce406ccb85c4546b6d19309a6101b37c7bd952e","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"get_merge_bases(): always clean-up object flags\n\nThe callers of get_merge_bases() can choose to leave object flags\nused during the merge-base traversal by passing cleanup=0 as a\nparameter, but in practice a very few callers can afford to do so\n(namely, \"git merge-base\"), as they need to compute merge base in\npreparation for other processing of their own and they need to see\nthe object without contaminate flags.\n\nChange the function signature of get_merge_bases_many() and\nget_merge_bases() to drop the cleanup parameter, so that the\nmajority of the callers do not have to say \", 1\" at the end.\n\nGive a new get_merge_bases_many_dirty() API to support only a few\ncallers that know they do not need to spend cycles cleaning up the\nobject flags.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/2ce406ccb85c4546b6d19309a6101b37c7bd952e"},{"sha":"fa137f67a40bbcb3f583920586fdd34ce98ddeaf","author":{"email":"024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","name":"Nguyễn Thái Ngọc Duy"},"message":"lockfile.c: store absolute path\n\nLocked paths can be saved in a linked list so that if something wrong\nhappens, *.lock are removed. For relative paths, this works fine if we\nkeep cwd the same, which is true 99% of time except:\n\n- update-index and read-tree hold the lock on $GIT_DIR/index really\n  early, then later on may call setup_work_tree() to move cwd.\n\n- Suppose a lock is being held (e.g. by \"git add\") then somewhere\n  down the line, somebody calls real_path (e.g. \"link_alt_odb_entry\"),\n  which temporarily moves cwd away and back.\n\nDuring that time when cwd is moved (either permanently or temporarily)\nand we decide to die(), attempts to remove relative *.lock will fail,\nand the next operation will complain that some files are still locked.\n\nAvoid this case by turning relative paths to absolute before storing\nthe path in \"filename\" field.\n\nReported-by: Yue Lin Ho <yuelinho777@gmail.com>\nHelped-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>\nHelped-by: Johannes Sixt <j6t@kdbg.org>\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nAdapted-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/fa137f67a40bbcb3f583920586fdd34ce98ddeaf"},{"sha":"f1a35295c2b66d2501f034d864afb2c5d8bb0e08","author":{"email":"6f5ccf8c3f31fed36c8213408711400d90769bde@raz.or.at","name":"Bernhard Reiter"},"message":"imap-send: use parse options API to determine verbosity\n\nThe -v/-q options were sort-of supported but without using the\nparse-options API, and were not documented.\n\nSigned-off-by: Bernhard Reiter <ockham@raz.or.at>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/f1a35295c2b66d2501f034d864afb2c5d8bb0e08"},{"sha":"1e16b255b95b45374db0b0cf69ef0ecce768ac27","author":{"email":"6f5ccf8c3f31fed36c8213408711400d90769bde@raz.or.at","name":"Bernhard Reiter"},"message":"git-imap-send: use libcurl for implementation\n\nUse libcurl's high-level API functions to implement git-imap-send\ninstead of the previous low-level OpenSSL-based functions.\n\nSince version 7.30.0, libcurl's API has been able to communicate with\nIMAP servers. Using those high-level functions instead of the current\nones would reduce imap-send.c by some 1200 lines of code. For now,\nthe old ones are wrapped in #ifdefs, and the new functions are enabled\nby make if curl's version is >= 7.34.0, from which version on curl's\nCURLOPT_LOGIN_OPTIONS (enabling IMAP authentication) parameter has been\navailable. The low-level functions will still be used for tunneling\ninto the server for now.\n\nAs I don't have access to that many IMAP servers, I haven't been able to\ntest the new code with a wide variety of parameter combinations. I did\ntest both secure and insecure (imaps:// and imap://) connections and\nvalues of \"PLAIN\" and \"LOGIN\" for the authMethod.\n\nIn order to suppress a sparse warning about \"using sizeof on a\nfunction\", we use the same solution used in commit 9371322a6\n(\"sparse: suppress some \"using sizeof on a function\" warnings\",\n06-10-2013) which solved exactly this problem for the other commands\nusing libcurl.\n\nHelped-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>\nSigned-off-by: Bernhard Reiter <ockham@raz.or.at>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/1e16b255b95b45374db0b0cf69ef0ecce768ac27"},{"sha":"216d29ef257e48f95bc14765d5da17e7854a3109","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more\n\n* jc/conflict-hint:\n  merge & sequencer: turn \"Conflicts:\" hint into a comment\n  builtin/commit.c: extract ignore_non_trailer() helper function\n  merge & sequencer: unify codepaths that write \"Conflicts:\" hint\n  builtin/merge.c: drop a parameter that is never used\n  git-tag.txt: Add a missing hyphen to `-s`","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/216d29ef257e48f95bc14765d5da17e7854a3109"},{"sha":"8c3845892363abf3fb5cf2fe61bc455554f50c68","author":{"email":"ddbaab5867ed34fd53535b58c9cdd59abd2e2aff@tuxfamily.org","name":"Christian Couder"},"message":"commit: make ignore_non_trailer() non static\n\nSigned-off-by: Christian Couder <chriscool@tuxfamily.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/8c3845892363abf3fb5cf2fe61bc455554f50c68"},{"sha":"61cfef4ca4bdacbb90866fa8fd0e0f0b16b2cafc","author":{"email":"ddbaab5867ed34fd53535b58c9cdd59abd2e2aff@tuxfamily.org","name":"Christian Couder"},"message":"trailer: reuse ignore_non_trailer() to ignore conflict lines\n\nMake sure we look for trailers before any conflict line\nby reusing the ignore_non_trailer() function.\n\nSigned-off-by: Christian Couder <chriscool@tuxfamily.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/61cfef4ca4bdacbb90866fa8fd0e0f0b16b2cafc"},{"sha":"3d24a7267dd9b57b864d119a533bdfdfaccd9161","author":{"email":"ddbaab5867ed34fd53535b58c9cdd59abd2e2aff@tuxfamily.org","name":"Christian Couder"},"message":"trailer: add test with an old style conflict block\n\nSigned-off-by: Christian Couder <chriscool@tuxfamily.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/3d24a7267dd9b57b864d119a533bdfdfaccd9161"},{"sha":"073281e2aea7177e27de8a46c5463e2f83833412","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"pass TIME_DATE_NOW to approxidate future-check\n\nThe approxidate functions accept an extra \"now\" parameter to\navoid calling time() themselves. We use this in our test\nsuite to make sure we have a consistent time for computing\nrelative dates. However, deep in the bowels of approxidate,\nwe also call time() to check whether possible dates are far\nin the future. Let's make sure that the \"now\" override makes\nit to that spot, too, so we can consistently test that\nfeature.\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/mx4492/git/commits/073281e2aea7177e27de8a46c5463e2f83833412"},{"sha":"d37239536ce960af9292fdf297e7c277303e95be","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"approxidate: allow ISO-like dates far in the future\n\nWhen we are parsing approxidate strings and we find three\nnumbers separate by one of \":/-.\", we guess that it may be a\ndate. We feed the numbers to match_multi_number, which\nchecks whether it makes sense as a date in various orderings\n(e.g., dd/mm/yy or mm/dd/yy, etc).\n\nOne of the checks we do is to see whether it is a date more\nthan 10 days in the future. This was added in 38035cf (date\nparsing: be friendlier to our European friends.,\n2006-04-05), and lets us guess that if it is currently April\n2014, then \"10/03/2014\" is probably March 10th, not October\n3rd.\n\nThis has a downside, though; if you want to be overly\ngenerous with your \"--until\" date specification, we may\nwrongly parse \"2014-12-01\" as \"2014-01-12\" (because the\nlatter is an in-the-past date). If the year is a future year\n(i.e., both are future dates), it gets even weirder. Due to\nthe vagaries of approxidate, months _after_ the current date\n(no matter the year) get flipped, but ones before do not.\n\nThis patch drops the \"in the future\" check for dates of this\nform, letting us treat them always as yyyy-mm-dd, even if\nthey are in the future. This does not affect the normal\ndd/mm/yyyy versus mm/dd/yyyy lookup, because this code path\nonly kicks in when the first number is greater than 70\n(i.e., it must be a year, and cannot be either a date or a\nmonth).\n\nThe one possible casualty is that \"yyyy-dd-mm\" is less\nlikely to be chosen over \"yyyy-mm-dd\". That's probably OK,\nthough because:\n\n  1. The difference happens only when the date is in the\n     future. Already we prefer yyyy-mm-dd for dates in the\n     past.\n\n  2. It's unclear whether anybody even uses yyyy-dd-mm\n     regularly. It does not appear in lists of common date\n     formats in Wikipedia[1,2].\n\n  3. Even if (2) is wrong, it is better to prefer ISO-like\n     dates, as that is consistent with what we use elsewhere\n     in git.\n\n[1] http://en.wikipedia.org/wiki/Date_and_time_representation_by_country\n[2] http://en.wikipedia.org/wiki/Calendar_date\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/mx4492/git/commits/d37239536ce960af9292fdf297e7c277303e95be"},{"sha":"068395150b8a2b3e6fbed3e60ca5cbb7c7bb6a99","author":{"email":"2cb6c6c4ccf58d41468189c2307f7a4ebf120324@google.com","name":"Ronnie Sahlberg"},"message":"lock_ref_sha1_basic: do not die on locking errors\n\nlock_ref_sha1_basic is inconsistent about when it calls\ndie() and when it returns NULL to signal an error. This is\nannoying to any callers that want to recover from a locking\nerror.\n\nThis seems to be mostly historical accident. It was added in\n4bd18c4 (Improve abstraction of ref lock/write.,\n2006-05-17), which returned an error in all cases except\ncalling safe_create_leading_directories, in which case it\ndied.  Later, 40aaae8 (Better error message when we are\nunable to lock the index file, 2006-08-12) asked\nhold_lock_file_for_update to die for us, leaving the\nresolve_ref code-path the only one which returned NULL.\n\nWe tried to correct that in 5cc3cef (lock_ref_sha1(): do not\nsometimes error() and sometimes die()., 2006-09-30),\nby converting all of the die() calls into returns. But we\nmissed the \"die\" flag passed to the lock code, leaving us\ninconsistent. This state persisted until e5c223e\n(lock_ref_sha1_basic(): if locking fails with ENOENT, retry,\n2014-01-18). Because of its retry scheme, it does not ask\nthe lock code to die, but instead manually dies with\nunable_to_lock_die().\n\nWe can make this consistent with the other return paths by\nconverting this to use unable_to_lock_message(), and\nreturning NULL. This is safe to do because all callers\nalready needed to check the return value of the function,\nsince it could fail (and return NULL) for other reasons.\n\n[jk: Added excessive history explanation]\n\nSigned-off-by: Ronnie Sahlberg <sahlberg@google.com>\nSigned-off-by: Jeff King <peff@peff.net>\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/mx4492/git/commits/068395150b8a2b3e6fbed3e60ca5cbb7c7bb6a99"}]}