{"push_id":782038044,"size":34,"distinct_size":0,"ref":"refs/heads/jk/config-sources","head":"e31e9c0b4e72793d7112d469372b19ccfbfe2188","before":"698bb7bb1902ed78f021897b9b6f95eb24cb75f7","commits":[{"sha":"ce113604672fed9b429b1c162b1005794fff6a17","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"log: diagnose empty HEAD more clearly\n\nIf you init or clone an empty repository, the initial\nmessage from running \"git log\" is not very friendly:\n\n  $ git init\n  Initialized empty Git repository in /home/peff/foo/.git/\n  $ git log\n  fatal: bad default revision 'HEAD'\n\nLet's detect this situation and write a more friendly\nmessage:\n\n  $ git log\n  fatal: your current branch 'master' does not have any commits yet\n\nWe also detect the case that 'HEAD' points to a broken ref;\nthis should be even less common, but is easy to see. Note\nthat we do not diagnose all possible cases. We rely on\nresolve_ref, which means we do not get information about\ncomplex cases. E.g., \"--default master\" would use dwim_ref\nto find \"refs/heads/master\", but we notice only that\n\"master\" does not exist. Similarly, a complex sha1\nexpression like \"--default HEAD^2\" will not resolve as a\nref.\n\nBut that's OK. We fall back to a generic error message in\nthose cases, and they are unlikely to be used anyway.\nCatching an empty or broken \"HEAD\" improves the common case,\nand the other cases are not regressed.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/ce113604672fed9b429b1c162b1005794fff6a17"},{"sha":"1733ed3d70f0a051b286eea9f7cac78977b40a0d","author":{"email":"b51f8aa3feee97d0b75fd44a370e6ced7c587af7@gmail.com","name":"Erik Elfström"},"message":"t7300: fix broken && chains\n\nWhile we are here, remove some boilerplate by using test_commit.\n\nSigned-off-by: Erik Elfström <erik.elfstrom@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/1733ed3d70f0a051b286eea9f7cac78977b40a0d"},{"sha":"5c99995df8ee3b02224f0e2e86a3d1e4bb2f7348","author":{"email":"58cc993db606fd7043084d51c23db751557f1001@gmail.com","name":"Christian Couder"},"message":"trailer: support multiline title\n\nWe currently ignore the first line passed to `git interpret-trailers`,\nwhen looking for the beginning of the trailers.\n\nUnfortunately this does not work well when a commit is created with a\nline break in the title, using for example the following command:\n\ngit commit -m 'place of\ncode: change we made'\n\nThat's why instead of ignoring only the first line, it is better to\nignore the first paragraph.\n\nSigned-off-by: Christian Couder <christian.couder@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/5c99995df8ee3b02224f0e2e86a3d1e4bb2f7348"},{"sha":"6bea53c130a8f519fd534edfcd8116d2963afce8","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"read-cache: fix indentation in read_index_from\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/6bea53c130a8f519fd534edfcd8116d2963afce8"},{"sha":"9dd330e6cad6ce11557acb18f35136c549d8ac1b","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"rerere: release lockfile in non-writing functions\n\nThere's a bug in builtin/am.c in which we take a lock on\nMERGE_RR recursively. But rather than fix am.c, this patch\nfixes the confusing interface from rerere.c that caused the\nbug. Read on for the gory details.\n\nThe setup_rerere() function both reads the existing MERGE_RR\nfile, and takes MERGE_RR.lock. In the rerere() and\nrerere_forget() functions, we end up in write_rr(), which\nwill then commit the lock file.\n\nBut for functions like rerere_clear() that do not write to\nMERGE_RR, we expect the caller to have handled\nsetup_rerere(). That caller would then need to release the\nlockfile, but it can't; the lock struct is local to\nrerere.c.\n\nFor builtin/rerere.c, this is OK. We run a single rerere\noperation and then exit immediately, which has the side\neffect of rolling back the lockfile.\n\nBut in builtin/am.c, this is actively wrong. If we run \"git\nam -3 --skip\", we call setup-rerere twice without releasing\nthe lock:\n\n  1. The \"--skip\" causes us to call am_rerere_clear(), which\n     calls setup_rerere(), but never drops the lock.\n\n  2. We then proceed to the next patch.\n\n  3. The \"--3way\" may cause us to call rerere() to handle\n     conflicts in that patch, but we are already holding the\n     lock. The lockfile code dies with:\n\n     BUG: prepare_tempfile_object called for active object\n\nWe could fix this by having rerere_clear() call\nrollback_lock_file(). But it feels a bit odd for it to roll\nback a lockfile that it did not itself take. So let's\nsimplify the interface further, and handle setup_rerere in\nthe function itself, taking away the question from the\ncaller over whether they need to do so.\n\nWe can give rerere_gc() the same treatment, as well (even\nthough it doesn't have any callers besides builtin/rerere.c\nat this point). Note that these functions don't take flags\nfrom their callers to pass along to setup_rerere; that's OK,\nbecause the flags would not be meaningful for what they are\ndoing.\n\nBoth of those functions need to hold the lock because even\nthough they do not write to MERGE_RR, they are still writing\nand should be protected from a simultaneous \"rerere\" run.\nBut rerere_remaining(), \"rerere diff\", and \"rerere status\"\nare all read-only operations. They want to setup_rerere(),\nbut do not care about taking the lock in the first place.\nSince our update of MERGE_RR is the usual atomic rename done\nby commit_lock_file, they can just do a lockless read. For\nthat, we teach setup_rerere a READONLY flag to avoid the\nlock.\n\nAs a bonus, this pushes builtin/rerere.c's setup_rerere call\ncloser to the functions that use it. Which means that \"git\nrerere totally-bogus-command\" will no longer silently\nexit(0) in a repository without rerere enabled.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/9dd330e6cad6ce11557acb18f35136c549d8ac1b"},{"sha":"699a0f3748474fce7b688212c3f9ab25d7b750f5","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jk/log-missing-default-HEAD'\n\n\"git init empty && git -C empty log\" said \"bad default revision 'HEAD'\",\nwhich was found to be a bit confusing to new users.\n\n* jk/log-missing-default-HEAD:\n  log: diagnose empty HEAD more clearly","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/699a0f3748474fce7b688212c3f9ab25d7b750f5"},{"sha":"83d9092f95cefa3f72ba772b8405b116b622553b","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'ee/clean-test-fixes'\n\n* ee/clean-test-fixes:\n  t7300: fix broken && chains","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/83d9092f95cefa3f72ba772b8405b116b622553b"},{"sha":"8f8386eeb43e12a6c9704915994e6075a5a9b1cf","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'sb/read-cache-one-indent-style-fix'\n\n* sb/read-cache-one-indent-style-fix:\n  read-cache: fix indentation in read_index_from","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/8f8386eeb43e12a6c9704915994e6075a5a9b1cf"},{"sha":"cdd00dfe9431b431e488d0bb77d39f1461a9dcc5","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'cc/trailers-corner-case-fix'\n\nThe \"interpret-trailers\" helper mistook a multi-paragraph title of\na commit log message with a colon in it as the end of the trailer\nblock.\n\n* cc/trailers-corner-case-fix:\n  trailer: support multiline title","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/cdd00dfe9431b431e488d0bb77d39f1461a9dcc5"},{"sha":"16ffa6443e279a9b3b63d7a2bebeb07833506010","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Git 2.6-rc0\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/16ffa6443e279a9b3b63d7a2bebeb07833506010"},{"sha":"7662973ea38e39f2766a4403209189f263c914a3","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jk/am-rerere-lock-fix'\n\nRecent \"git am\" introduced a double-locking failure when used with\nthe \"--3way\" option that invokes rerere machinery.\n\n* jk/am-rerere-lock-fix:\n  rerere: release lockfile in non-writing functions","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/7662973ea38e39f2766a4403209189f263c914a3"},{"sha":"03ea02771a3752b81db355d70adf430f217b5d7a","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'mh/get-remote-group-fix' into maint\n\nAn off-by-one error made \"git remote\" to mishandle a remote with a\nsingle letter nickname.\n\n* mh/get-remote-group-fix:\n  get_remote_group(): use skip_prefix()\n  get_remote_group(): eliminate superfluous call to strcspn()\n  get_remote_group(): rename local variable \"space\" to \"wordlen\"\n  get_remote_group(): handle remotes with single-character names","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/03ea02771a3752b81db355d70adf430f217b5d7a"},{"sha":"cbcd3dcaa8e504779523959ccf8771fdb32f2d2a","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'cb/open-noatime-clear-errno' into maint\n\nWhen trying to see that an object does not exist, a state errno\nleaked from our \"first try to open a packfile with O_NOATIME and\nthen if it fails retry without it\" logic on a system that refuses\nO_NOATIME.  This confused us and caused us to die, saying that the\npackfile is unreadable, when we should have just reported that the\nobject does not exist in that packfile to the caller.\n\n* cb/open-noatime-clear-errno:\n  git_open_noatime: return with errno=0 on success","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/cbcd3dcaa8e504779523959ccf8771fdb32f2d2a"},{"sha":"6c0850f2dd994baaf64ef580e466706ce17a860f","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jk/long-error-messages' into maint\n\nThe codepath to produce error messages had a hard-coded limit to\nthe size of the message, primarily to avoid memory allocation while\ncalling die().\n\n* jk/long-error-messages:\n  vreportf: avoid intermediate buffer\n  vreportf: report to arbitrary filehandles","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/6c0850f2dd994baaf64ef580e466706ce17a860f"},{"sha":"8b2707101aa52d4da98becea0aa910de13768488","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jh/strbuf-read-use-read-in-full' into maint\n\nstrbuf_read() used to have one extra iteration (and an unnecessary\nstrbuf_grow() of 8kB), which was eliminated.\n\n* jh/strbuf-read-use-read-in-full:\n  strbuf_read(): skip unnecessary strbuf_grow() at eof","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/8b2707101aa52d4da98becea0aa910de13768488"},{"sha":"d11448f685f5fac85daef59f8dd98c723d438fe9","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'ps/t1509-chroot-test-fixup' into maint\n\nt1509 test that requires a dedicated VM environment had some\nbitrot, which has been corrected.\n\n* ps/t1509-chroot-test-fixup:\n  tests: fix cleanup after tests in t1509-root-worktree\n  tests: fix broken && chains in t1509-root-worktree","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/d11448f685f5fac85daef59f8dd98c723d438fe9"},{"sha":"969560bddc07fe5c11470be6d2dfcc62215c8692","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'sg/help-group' into maint\n\nWe rewrote one of the build scripts in Perl but this reimplements\nin Bourne shell.\n\n* sg/help-group:\n  generate-cmdlist: re-implement as shell script","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/969560bddc07fe5c11470be6d2dfcc62215c8692"},{"sha":"0b2cef2805a02a9db4a3ba01004dd767af97c692","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'nd/dwim-wildcards-as-pathspecs' into maint\n\nTest updates for Windows.\n\n* nd/dwim-wildcards-as-pathspecs:\n  t2019: skip test requiring '*' in a file name non Windows","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/0b2cef2805a02a9db4a3ba01004dd767af97c692"},{"sha":"fa6d3749edce0a5ba8c9150f984cc307e0092d0d","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jk/fix-alias-pager-config-key-warnings' into maint\n\nBecause the configuration system does not allow \"alias.0foo\" and\n\"pager.0foo\" as the configuration key, the user cannot use '0foo'\nas a custom command name anyway, but \"git 0foo\" tried to look these\nkeys up and emitted useless warnings before saying '0foo is not a\ngit command'.  These warning messages have been squelched.\n\n* jk/fix-alias-pager-config-key-warnings:\n  config: silence warnings for command names with invalid keys","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fa6d3749edce0a5ba8c9150f984cc307e0092d0d"},{"sha":"e654e3b574bf1e4cc7556c2f01188eaf41271901","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jk/rev-list-has-no-notes' into maint\n\n\"git rev-list\" does not take \"--notes\" option, but did not complain\nwhen one is given.\n\n* jk/rev-list-has-no-notes:\n  rev-list: make it obvious that we do not support notes","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/e654e3b574bf1e4cc7556c2f01188eaf41271901"}]}