{"push_id":1210723992,"size":52,"distinct_size":12,"ref":"refs/heads/next","head":"66765a41ed474ba5c6702f65e187cd9aa6236993","before":"a430a9797684c80a6568f94673942a75ad2da843","commits":[{"sha":"1be36b60f158b55e8d594e2b605928a9a71a432f","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"Makefile: drop extra dependencies for test helpers\n\nA few test-helpers have Makefile dependencies on specific\nobject files. But since these files are part of libgit.a\n(which all of the helpers link against), the inclusion is\nsimply redundant.\n\nThese were once necessary, but became redundant due to\n5c5ba73 (Makefile: Use generic rule to build test programs,\n2007-05-31), which added the $(GITLIBS) dependency (but\ndidn't prune the extra dependency lines). Later commits then\ncargo-culted the practice (e.g., b4285c7).\n\nNote that we _do_ need to leave the dependencies on the svn\nlibrary, as that is not part of the usual link command.\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/git/git/commits/1be36b60f158b55e8d594e2b605928a9a71a432f"},{"sha":"4df7c8a0375803b952bad31ac29578cfd56a2ac1","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"Makefile: use VCSSVN_LIB to refer to svn library\n\nWe have an abstracted variable; let's use it consistently.\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/git/git/commits/4df7c8a0375803b952bad31ac29578cfd56a2ac1"},{"sha":"503e22418082d1ec616ec98ab90c6a73cd3ef96f","author":{"name":"Johannes Schindelin","email":"c714eff280a95c3e5bbcc9303c4499eebb0d49aa@gmx.de"},"message":"t/test-lib.sh: fix running tests with --valgrind\n\nWe forgot to adjust this code path after moving the test helpers to\nt/helper/.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nAcked-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/503e22418082d1ec616ec98ab90c6a73cd3ef96f"},{"sha":"882d49ca5cb6a584a37ab0266b8720b5b0bf2101","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"push: anonymize URL in status output\n\nCommit 47abd85 (fetch: Strip usernames from url's before\nstoring them, 2009-04-17) taught fetch to anonymize URLs.\nThe primary purpose there was to avoid sticking passwords in\nmerge-commit messages, but as a side effect, we also avoid\nprinting them to stderr.\n\nThe push side does not have the merge-commit problem, but it\nprobably should avoid printing them to stderr. We can reuse\nthe same anonymizing function.\n\nNote that for this to come up, the credentials would have to\nappear either on the command line or in a git config file,\nneither of which is particularly secure. So people _should_\nbe switching to using credential helpers instead, which\nmakes this problem go away. But that's no excuse not to\nimprove the situation for people who for whatever reason end\nup using credentials embedded in the URL.\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/git/git/commits/882d49ca5cb6a584a37ab0266b8720b5b0bf2101"},{"sha":"16726cfa0c3ad5d0d261bd7068014e659cb989da","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"diff: document diff-filter exclusion\n\nIn v1.8.5 days, 7f2ea5f0 (diff: allow lowercase letter to specify\nwhat change class to exclude, 2013-07-17) taught the \"--diff-filter\"\nmechanism to take lowercase letters as exclusion, but we forgot to\ndocument it.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/16726cfa0c3ad5d0d261bd7068014e659cb989da"},{"sha":"77a9745d19b2b308c1ce97d18053322d1471bc4c","author":{"name":"Stefan Beller","email":"75e5af3a5fc6e432c184f339c5c73c118a246be6@google.com"},"message":"push options: {pre,post}-receive hook learns about push options\n\nThe environment variable GIT_PUSH_OPTION_COUNT is set to the number of\npush options sent, and GIT_PUSH_OPTION_{0,1,..} is set to the transmitted\noption.\n\nThe code is not executed as the push options are set to NULL, nor is the\nnew capability advertised.\n\nThere was some discussion back and forth how to present these push options\nto the user as there are some ways to do it:\n\nKeep all options in one environment variable\n============================================\n+ easiest way to implement in Git\n- This would make things hard to parse correctly in the hook.\n\nPut the options in files instead,\nfilenames are in GIT_PUSH_OPTION_FILES\n======================================\n+ After a discussion about environment variables and shells, we may not\n  want to put user data into an environment variable (see [1] for example).\n+ We could transmit binaries, i.e. we're not bound to C strings as\n  we are when using environment variables to the user.\n+ Maybe easier to parse than constructing environment variable names\n  GIT_PUSH_OPTION_{0,1,..} yourself\n- cleanup of the temporary files is hard to do reliably\n- we have race conditions with multiple clients pushing, hence we'd need\n  to use mkstemp. That's not too bad, but still.\n\nUse environment variables, but restrict to key/value pairs\n==========================================================\n(When the user pushes a push option `foo=bar`, we'd\nGIT_PUSH_OPTION_foo=bar)\n+ very easy to parse for a simple model of push options\n- it's not sufficient for more elaborate models, e.g.\n  it doesn't allow doubles (e.g. cc=reviewer@email)\n\nPresent the options in different environment variables\n======================================================\n(This is implemented)\n* harder to parse as a user, but we have a sample hook for that.\n- doesn't allow binary files\n+ allows the same option twice, i.e. is not restrictive about\n  options, except for binary files.\n+ doesn't clutter a remote directory with (possibly stale)\n  temporary files\n\nAs we first want to focus on getting simple strings to work\nreliably, we go with the last option for now. If we want to\ndo transmission of binaries later, we can just attach a\n'side-channel', e.g. \"any push option that contains a '\\0' is\nput into a file instead of the environment variable and we'd\nhave new GIT_PUSH_OPTION_FILES, GIT_PUSH_OPTION_FILENAME_{0,1,..}\nenvironment variables\".\n\n[1] 'Shellshock' https://lwn.net/Articles/614218/\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/git/git/commits/77a9745d19b2b308c1ce97d18053322d1471bc4c"},{"sha":"c714e45f87301562b940e3621431ed7f7fbd16e5","author":{"name":"Stefan Beller","email":"75e5af3a5fc6e432c184f339c5c73c118a246be6@google.com"},"message":"receive-pack: implement advertising and receiving push options\n\nThe pre/post receive hook may be interested in more information from the\nuser. This information can be transmitted when both client and server\nsupport the \"push-options\" capability, which when used is a phase directly\nafter update commands ended by a flush pkt.\n\nSimilar to the atomic option, the server capability can be disabled via\nthe `receive.advertisePushOptions` config variable. While documenting\nthis, fix a nit in the `receive.advertiseAtomic` wording.\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/git/git/commits/c714e45f87301562b940e3621431ed7f7fbd16e5"},{"sha":"f6a4e61fbb647928d615a0befaec163a5d2bf4af","author":{"name":"Stefan Beller","email":"75e5af3a5fc6e432c184f339c5c73c118a246be6@google.com"},"message":"push: accept push options\n\nThis implements everything that is required on the client side to make use\nof push options from the porcelain push command.\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/git/git/commits/f6a4e61fbb647928d615a0befaec163a5d2bf4af"},{"sha":"3ac870300a7bb430341388a8f2ec465328986617","author":{"name":"Stefan Beller","email":"75e5af3a5fc6e432c184f339c5c73c118a246be6@google.com"},"message":"add a test for push options\n\nThe functions `mk_repo_pair` as well as `test_refs` are borrowed from\nt5543-atomic-push, with additional hooks installed.\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/git/git/commits/3ac870300a7bb430341388a8f2ec465328986617"},{"sha":"49c58d86ceb7816c5f0ca36e38e26cd6b8506d74","author":{"name":"Eric Wong","email":"47aede7528d154728613163cc3055c3c2c82ea2f@80x24.org"},"message":"daemon: ignore ENOTSOCK from setsockopt\n\nIn inetd mode, we are not guaranteed stdin or stdout is a\nsocket; callers could filter the data through a pipe\nor be testing with regular files.\n\nThis prevents t5802 from polluting syslog.\n\nSigned-off-by: Eric Wong <e@80x24.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/49c58d86ceb7816c5f0ca36e38e26cd6b8506d74"},{"sha":"a9b02de8b79de44ee8f4a0506b65a62f38999bd8","author":{"name":"Eric Wong","email":"47aede7528d154728613163cc3055c3c2c82ea2f@80x24.org"},"message":"configure.ac: stronger test for pthread linkage\n\nWe need to test linkage of pthread_create and pthread_join,\nas pthread_mutex_* and pthread_key_* functions do not need\nextra linkage under FreeBSD 10.3, leading to a false-positive\nof the empty case.\n\nSigned-off-by: Eric Wong <e@80x24.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/a9b02de8b79de44ee8f4a0506b65a62f38999bd8"},{"sha":"993a21b0a05bf2e2063c58e5722c29f5747e39d4","author":{"name":"Johannes Schindelin","email":"c714eff280a95c3e5bbcc9303c4499eebb0d49aa@gmx.de"},"message":"fsck: refactor how to describe objects\n\nIn many places, we refer to objects via their SHA-1s. Let's abstract\nthat into a function.\n\nFor the moment, it does nothing else than what we did previously: print\nout the 40-digit hex string. But that will change over the course of the\nnext patches.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/993a21b0a05bf2e2063c58e5722c29f5747e39d4"},{"sha":"7b35efd734e501f9e4692768a8b6aea818c0c93e","author":{"name":"Johannes Schindelin","email":"c714eff280a95c3e5bbcc9303c4499eebb0d49aa@gmx.de"},"message":"fsck_walk(): optionally name objects on the go\n\nIf fsck_options->name_objects is initialized, and if it already has\nname(s) for the object(s) that are to be the starting point(s) for\nfsck_walk(), then that function will now add names for the objects\nthat were walked.\n\nThis will be highly useful for teaching git-fsck to identify root causes\nfor broken links, which is the task for the next patch in this series.\n\nNote that this patch opts for decorating the objects with plain strings\ninstead of full-blown structs (à la `struct rev_name` in the code of\nthe `git name-rev` command), for several reasons:\n\n- the code is much simpler than if it had to work with structs that\n  describe arbitrarily long names such as \"master~14^2~5:builtin/am.c\",\n\n- the string processing is actually quite light-weight compared to the\n  rest of fsck's operation,\n\n- the caller of fsck_walk() is expected to provide names for the\n  starting points, and using plain and simple strings is just the\n  easiest way to do that.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/7b35efd734e501f9e4692768a8b6aea818c0c93e"},{"sha":"1cd772cc4124e43b14231dcaeae8a5dddf4ffdb9","author":{"name":"Johannes Schindelin","email":"c714eff280a95c3e5bbcc9303c4499eebb0d49aa@gmx.de"},"message":"fsck: give the error function a chance to see the fsck_options\n\nWe will need this in the next commit, where fsck will be taught to\noptionally name the objects when reporting issues about them.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/1cd772cc4124e43b14231dcaeae8a5dddf4ffdb9"},{"sha":"f9e7d9f8c3e32280418a0bedd9d37f2a0cc2e2b9","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"test-lib.sh: introduce and use $EMPTY_TREE\n\nThis is a special SHA1. Let's keep it at one place, easier to replace\nlater when the hash change comes, easier to recognize.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/f9e7d9f8c3e32280418a0bedd9d37f2a0cc2e2b9"},{"sha":"378932d3c3214cf658805af20c4bd101922d8fcd","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"test-lib.sh: introduce and use $EMPTY_BLOB\n\nSimilar to $EMPTY_TREE this makes it easier to recognize this special\nSHA-1 and change hash later.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/378932d3c3214cf658805af20c4bd101922d8fcd"},{"sha":"c041d54a741e516b5a743f4d27532e484f2a05d3","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"cache-tree.c: fix i-t-a entry skipping directory updates sometimes\n\nCommit 3cf773e (cache-tree: fix writing cache-tree when CE_REMOVE is\npresent - 2012-12-16) skips i-t-a entries when building trees objects\nfrom the index. Unfortunately it may skip too much.\n\nThe code in question checks if an entry is an i-t-a one, then no tree\nentry will be written. But it does not take into account that\ndirectories can also be written with the same code. Suppose we have\nthis in the index.\n\n    a-file\n    subdir/file1\n    subdir/file2\n    subdir/file3\n    the-last-file\n\nWe write an entry for a-file as normal and move on to subdir/file1,\nwhere we realize the entry name for this level is simply just\n\"subdir\", write down an entry for \"subdir\" then jump three items ahead\nto the-last-file.\n\nThat is what happens normally when the first file in subdir is not an\ni-t-a entry. If subdir/file1 is an i-t-a, because of the broken\ncondition in this code, we still think \"subdir\" is an i-t-a file and\nnot writing \"subdir\" down and jump to the-last-file. The result tree\nnow only has two items: a-file and the-last-file. subdir should be\nthere too (even though it only records two sub-entries, file2 and\nfile3).\n\nIf the i-t-a entry is subdir/file2 or subdir/file3, this is not a\nproblem because we jump over them anyway. Which may explain why the\nbug is hidden for nearly four years.\n\nFix it by making sure we only skip i-t-a entries when the entry in\nquestion is actual an index entry, not a directory.\n\nReported-by: Yuri Kanivetsky <yuri.kanivetsky@gmail.com>\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/c041d54a741e516b5a743f4d27532e484f2a05d3"},{"sha":"6d6a782fbf83927212f348f91823d886c5cd6d85","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"cache-tree: do not generate empty trees as a result of all i-t-a subentries\n\nIf a subdirectory contains nothing but i-t-a entries, we generate an\nempty tree object and add it to its parent tree. Which is wrong. Such\na subdirectory should not be added.\n\nNote that this has a cascading effect. If subdir 'a/b/c' contains\nnothing but i-t-a entries, we ignore it. But then if 'a/b' contains\nonly (the non-existing) 'a/b/c', then we should ignore 'a/b' while\nbuilding 'a' too. And it goes all the way up to top directory.\n\nNoticed-by: Junio C Hamano <gitster@pobox.com>\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/6d6a782fbf83927212f348f91823d886c5cd6d85"},{"sha":"3b75ee93278179004bc2f117fcfe3d5d76a0a2fa","author":{"name":"Mike Hommey","email":"0fa1ec019f545602546f76c862df558442f914ca@glandium.org"},"message":"blame: allow to blame paths freshly added to the index\n\nWhen blaming files, changes in the work tree are taken into account\nand displayed as being \"Not Committed Yet\".\n\nHowever, when blaming a file that is not known to the current HEAD,\ngit blame fails with `no such path 'foo' in HEAD`, even when the file\nwas git add'ed.\n\nAllowing such a blame is useful when the new file added to the index\n(not yet committed) was created by renaming an existing file.  It\nalso is useful when the new file was created from pieces already in\nHEAD, moved or copied from other files and blaming with copy\ndetection (i.e. \"-C\").\n\nSigned-off-by: Mike Hommey <mh@glandium.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/3b75ee93278179004bc2f117fcfe3d5d76a0a2fa"},{"sha":"c66b470082144471fc95e669eb398c8f320d67c4","author":{"name":"Mike Hommey","email":"0fa1ec019f545602546f76c862df558442f914ca@glandium.org"},"message":"t/t8003-blame-corner-cases.sh: Use here documents\n\nSomehow, this test was using:\n\n{\n\techo A\n\techo B\n} > file\n\nblock to feed file contents. This changes those to the form most common\nin git test scripts:\n\ncat >file <<-\\EOF\nA\nB\nEOF\n\nSigned-off-by: Mike Hommey <mh@glandium.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/git/git/commits/c66b470082144471fc95e669eb398c8f320d67c4"}]}
{"actor":{"display_login":"gitster"}}