{"push_id":659251219,"size":54,"distinct_size":0,"ref":"refs/heads/jk/no-argv0-path","head":"0912eced9e498b983852e979bc6e63d5295e514f","before":"78a89bba9b3ce30790dab74f46178e44f96b084a","commits":[{"sha":"5f7817c85d4b5f65626c8f49249a6c91292b8513","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"define a structure for object IDs\n\nMany places throughout the code use \"unsigned char [20]\" to store object IDs\n(SHA-1 values).  This leads to lots of hardcoded numbers throughout the\ncodebase.  It also leads to confusion about the purposes of a buffer.\n\nIntroduce a structure for object IDs.  This allows us to obtain the benefits\nof compile-time checking for misuse.  The structure is expected to remain\nthe same size and have the same alignment requirements on all known\nplatforms, compared to the array of unsigned char, although this is not\nrequired for correctness.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/5f7817c85d4b5f65626c8f49249a6c91292b8513"},{"sha":"aa1c6fdf478c023180e5ca5f1658b00a72592dc6","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"define utility functions for object IDs\n\nThere are several utility functions (hashcmp and friends) that are used\nfor comparing object IDs (SHA-1 values).  Using these functions, which\ntake pointers to unsigned char, with struct object_id requires tiresome\naccess to the sha1 member, which bloats code and violates the desired\nencapsulation.  Provide wrappers around these functions for struct\nobject_id for neater, more maintainable code.  Use the new constants to\navoid the hard-coded 20s and 40s throughout the original functions.\n\nThese functions simply call the underlying pointer-to-unsigned-char\nversions to ensure that any performance improvements will be passed\nthrough to the new functions.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/aa1c6fdf478c023180e5ca5f1658b00a72592dc6"},{"sha":"3c5ff9956c017e1737fdc350dbec160277be4fc1","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"bisect.c: convert leaf functions to use struct object_id\n\nConvert some constants to GIT_SHA1_HEXSZ.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/3c5ff9956c017e1737fdc350dbec160277be4fc1"},{"sha":"13609673c4410df754197ec4ae9b57f15bc803d4","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"archive.c: convert to use struct object_id\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/13609673c4410df754197ec4ae9b57f15bc803d4"},{"sha":"aeecdcd4c1c1a380e45aecadd8042a6a90ee3a20","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"zip: use GIT_SHA1_HEXSZ for trailers\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/aeecdcd4c1c1a380e45aecadd8042a6a90ee3a20"},{"sha":"fa33c3aae238c683b2b15989b9d7f88df19fa93d","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"bulk-checkin.c: convert to use struct object_id\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fa33c3aae238c683b2b15989b9d7f88df19fa93d"},{"sha":"1ff57c13c54bc9d548178e012f77717f87f2655d","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"diff: convert struct combine_diff_path to object_id\n\nAlso, convert a constant to GIT_SHA1_HEXSZ.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/1ff57c13c54bc9d548178e012f77717f87f2655d"},{"sha":"7683e2e6e301835236539a33b2fba936dd1a0a2b","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"commit: convert parts to struct object_id\n\nConvert struct commit_graft and necessary local parts of commit.c.\nAlso, convert several constants based on the hex length of an SHA-1 to\nuse GIT_SHA1_HEXSZ, and move several magic constants into variables for\nreadability.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/7683e2e6e301835236539a33b2fba936dd1a0a2b"},{"sha":"1a876a69af6552d16827ecc1931c42e2287a83a0","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"patch-id: convert to use struct object_id\n\nConvert some magic numbers to the new GIT_SHA1 constants.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/1a876a69af6552d16827ecc1931c42e2287a83a0"},{"sha":"d07d4ab401173a10173f2747cf5e0f074b6d2b39","author":{"email":"738bdd359be778fee9f0fc4e2934ad72f436ceda@crustytoothpaste.net","name":"brian m. carlson"},"message":"apply: convert threeway_stage to object_id\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/d07d4ab401173a10173f2747cf5e0f074b6d2b39"},{"sha":"c9e1f2c7f2acca17c629255b96761a4a1047a28a","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"diff-no-index: DWIM \"diff D F\" into \"diff D/F F\"\n\n\"git diff --no-index\" was supposed to be a poor-man's approach to\nallow using Git diff goodies outside of a Git repository, without\nhaving to patch mainstream diff implementations.\n\nUnlike a POSIX diff that treats \"diff D F\" (or \"diff F D\") as a\nrequest to compare D/F and F (or F and D/F) when D is a directory\nand F is a file, however, we did not accept such a command line and\ninstead barfed with \"file/directory conflict\".\n\nImitate what POSIX diff does and append the basename of the file\nafter the name of the directory before comparing.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c9e1f2c7f2acca17c629255b96761a4a1047a28a"},{"sha":"06151739988601b0fe6179c6c67a0031b85b536f","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"diff-no-index: align D/F handling with that of normal Git\n\nWhen a commit changes a path P that used to be a file to a directory\nand creates a new path P/X in it, \"git show\" would say that file P\nwas removed and file P/X was created for such a commit.\n\nHowever, if we compare two directories, D1 and D2, where D1 has a\nfile D1/P in it and D2 has a directory D2/P under which there is a\nfile D2/P/X, and ask \"git diff --no-index D1 D2\" to show their\ndifferences, we simply get a refusal \"file/directory conflict\".\n\nSurely, that may be what GNU diff does, but we can do better and it\nis easy to do so.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/06151739988601b0fe6179c6c67a0031b85b536f"},{"sha":"05bfc7dcaa0e99e045c326e2887dba24e58266d8","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"line-log.c: fix a memleak\n\nThe `filepair` is assigned new memory with any iteration via\nprocess_diff_filepair, so free it before the current iteration ends.\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/05bfc7dcaa0e99e045c326e2887dba24e58266d8"},{"sha":"539d09c3b4d55d3bf652133d0244aa694cc1b444","author":{"email":"9904419133015298990973ad253a390ae1d3133a@glandium.org","name":"Mike Hommey"},"message":"show-branch: show all local heads when only giving one rev along --topics\n\n\"git show-branch --topics <rev> <revs>...\" displays ancestry graph, only\nconsidering commits that are in all given revs, except the first one.\n\n\"git show-branch\" displays ancestry graph for all local branches.\n\nUnfortunately, \"git show-branch --topics <rev>\" only prints out the rev\ninfo for the given rev, and nothing else, e.g.:\n\n  $ git show-branch --topics origin/master\n  [origin/master] Sync with 2.3.3\n\nWhile there is an option to add all remote-tracking branches (-r), and\nanother to add all local+remote branches (-a), there is no option to add\nonly local branches. Adding such an option could be considered, but a\nuser would likely already expect that the above command line considers\nthe lack of rev other than for --topics as meaning all local branches,\nlike when there is no argument at all.\n\nMoreover, when using -r and -a along with --topics, the first local or\nremote-tracking branch, depending on alphabetic order is used instead of\nthe one given after --topics (any rev given on the command line is\nactually simply ignored when either -r or -a is given). And if no rev is\ngiven at all, the fact that the first alphetical branch is the base of\ntopics is probably not expected by users (Maybe --topics should always\nrequire one rev on the command line?)\n\nThis change makes\n  \"show-branch --topics $rev\"\nact as\n  \"show-branch --topics $rev $(git for-each-ref refs/heads\n                               --format='%(refname:short)')\"\n\n  \"show-branch -r --topics $rev ...\"\nact as\n  \"show-branch --topics $rev ... $(git for-each-ref refs/remotes\n                                   --format='%(refname:short)')\"\ninstead of\n  \"show-branch --topics $(git for-each-ref refs/remotes\n                          --format='%(refname:short)')\"\n\nand\n  \"show-branch -a --topics $rev ...\"\nact as\n  \"show-branch --topics $rev ... $(git for-each-ref refs/heads refs/remotes\n                                   --format='%(refname:short)')\"\ninstead of\n  \"show-branch --topics $(git for-each-ref refs/heads refs/remotes\n                          --format='%(refname:short)')\"\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/peff/git/commits/539d09c3b4d55d3bf652133d0244aa694cc1b444"},{"sha":"84ccad8dec1b8675699d70412def098d61456c55","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"init: don't set core.worktree when initializing /.git\n\nIf you create a git repository in the root directory with\n\"git init /\", we erroneously write a core.worktree entry.\nThis isn't _wrong_, in the sense that it's OK to set\ncore.worktree when we don't need to. But it is unnecessarily\nsurprising if you later move the .git directory to another\npath (which usually moves the relative working tree, but is\nfoiled if there is an explicit worktree set).\n\nThe problem is that we check whether core.worktree is\nnecessary by seeing if we can make the git_dir by\nconcatenating \"/.git\" onto the working tree. That would lead\nto \"//.git\" in this instance, but we actually have \"/.git\"\n(without the doubled slash).\n\nWe can fix this by special-casing the root directory. I also\nsplit the logic out into its own function to make the\nconditional a bit more readable (and used skip_prefix, which\nI think makes it a little more obvious what is going on).\n\nNo tests, as we would need to be able to write to \"/\" to do\nso. I did manually confirm that:\n\n  sudo git init /\n  cd /\n  git rev-parse --show-toplevel\n  git config core.worktree\n\nstill finds the top-level correctly (as \"/\"), and does not\nset any core.worktree variable.\n\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":false,"url":"https://api.github.com/repos/peff/git/commits/84ccad8dec1b8675699d70412def098d61456c55"},{"sha":"fc792ca86049a85f9cf916d6bcdbbc1799ba91ec","author":{"email":"6db98389b30108e0095ac10136b50ad76e34ea91@gmail.com","name":"Thomas Schneider"},"message":"checkout: call a single commit \"it\" intead of \"them\"\n\nWhen detached and checking out a branch again, git checkout warns\nabout commit(s) that might get lost.  It says \"If you want to keep\nthem ...\" even for only one commit.\n\nUse Q_() to allow differentiating singular vs plural.\n\nSigned-off-by: Thomas Schneider <thosch97@gmail.com>\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fc792ca86049a85f9cf916d6bcdbbc1799ba91ec"},{"sha":"2cce675a631991884899626dd1c1b3d0195518fe","author":{"email":"6b3799be4300e44489a08090123f3842e6419da5@diamand.org","name":"Luke Diamand"},"message":"git-p4: fix small bug in locked test scripts\n\nTest script t9816-git-p4-locked.sh test #4 tests for\nadding a file that is locked by Perforce automatically.\nThis is currently not supported by git-p4 and so is\nexpected to fail.\n\nHowever, a small typo meant it always failed, even with\na fixed git-p4. Fix the typo to resolve this.\n\nSigned-off-by: Luke Diamand <luke@diamand.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/2cce675a631991884899626dd1c1b3d0195518fe"},{"sha":"d077c2db8db64c931976391afee6c35828868a11","author":{"email":"6b3799be4300e44489a08090123f3842e6419da5@diamand.org","name":"Luke Diamand"},"message":"git-p4: small fix for locked-file-move-test\n\nThe test for handling of failure when trying to move a file\nthat is locked by another client was not quite correct - it\nfailed early on because the target file in the move already\nexisted.\n\nThe test now fails because git-p4 does not properly detect\nthat p4 has rejected the move, and instead just crashes. At\npresent, git-p4 has no support for detecting that a file\nhas been locked and reporting it to the user, so this is\nthe expected outcome.\n\nSigned-off-by: Luke Diamand <luke@diamand.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/d077c2db8db64c931976391afee6c35828868a11"},{"sha":"34a0dbfc6b7463a68df79d5773102f85e56cbe4d","author":{"email":"95d4b78dce79b83710136590bb81c6c1421184fc@playstation.sony.com","name":"Blair Holloway"},"message":"git-p4: fix filetype detection on files opened exclusively\n\nIf a Perforce server is configured to automatically set +l\n(exclusive lock) on add of certain file types, git p4 submit will\nfail during getP4OpenedType, as the regex doesn't expect the\ntrailing '*exclusive*' from p4 opened:\n\n  //depot/file.png#1 - add default change (binary+l) *exclusive*\n\nSigned-off-by: Blair Holloway <blair_holloway@playstation.sony.com>\nAcked-by: Luke Diamand <luke@diamand.org>\nSigned-off-by: Luke Diamand <luke@diamand.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/34a0dbfc6b7463a68df79d5773102f85e56cbe4d"},{"sha":"f86a3747abc742359397e3050b1fbef297415de5","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"pack-bitmap.c: fix a memleak\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/f86a3747abc742359397e3050b1fbef297415de5"}]}