{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":385586,"defaultBranch":"master","name":"git","ownerLogin":"gitster","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2009-11-25T19:20:49.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/54884?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717540545.0","currentOid":""},"activityList":{"items":[{"before":"295554edfc4988d94cf07fd306c42f93c1550fe9","after":null,"ref":"refs/heads/wip/heads-are-branches","pushedAt":"2024-06-04T22:35:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"}},{"before":"02777ab017ee868b8c216fd7d1cee4423019bb1c","after":"028e944a94e12975734c1e342e67311233dbdaa2","ref":"refs/heads/jch","pushedAt":"2024-06-04T22:35:45.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'jc/heads-are-branches' into jch\n\n* jc/heads-are-branches:\n show-ref: introduce --branches and deprecate --heads\n ls-remote: introduce --branches and deprecate --heads\n refs: call branches branches","shortMessageHtmlLink":"Merge branch 'jc/heads-are-branches' into jch"}},{"before":null,"after":"607c3d372ef89cf16874c288c60423587286d182","ref":"refs/heads/jc/heads-are-branches","pushedAt":"2024-06-04T22:35:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"show-ref: introduce --branches and deprecate --heads\n\nWe call the tips of branches \"heads\", but this command calls the\noption to show only branches \"--heads\", which confuses the branches\nthemselves and the tips of branches.\n\nStraighten the terminology by introducing \"--branches\" option that\nlimits the output to branches, and deprecate \"--heads\" option used\nthat way.\n\nWe do not plan to remove \"--heads\" or \"-h\" yet; we may want to do so\nat Git 3.0, in which case, we may need to start advertising upcoming\nremoval with an extra warning when they are used.\n\nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"show-ref: introduce --branches and deprecate --heads"}},{"before":"2efc1da3f92a8b3674bd80aeee3ffdfec9a977f7","after":"6ca5d8d1a0ffec38a04c5e53ceed557d0fcf7a64","ref":"refs/heads/ap/credential-clear-fix","pushedAt":"2024-06-04T22:35:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"credential: clear expired c->credential, unify secret clearing\n\nWhen a struct credential expires, credential_fill() clears c->password\nso that clients don't try to use it later. However, a struct cred that\nuses an alternate authtype won't have a password, but might have a\ncredential stored in c->credential.\n\nThis is a problem, for example, when an OAuth2 bearer token is used. In\nthe system I'm using, the OAuth2 configuration generates and caches a\nbearer token that is valid for an hour. After the token expires, git\nneeds to call back into the credential helper to use a stored refresh\ntoken to get a new bearer token. But if c->credential is still non-NULL,\ngit will instead try to use the expired token and fail with an error:\n\n fatal: Authentication failed for 'https:///repository'\n\nAnd on the server:\n\n [auth_openidc:error] [client :34012] oidc_proto_validate_exp: \"exp\" validation failure (1717522989): JWT expired 224 seconds ago\n\nFix this by clearing both c->password and c->credential for an expired\nstruct credential. While we're at it, use credential_clear_secrets()\nwherever both c->password and c->credential are being cleared, and use\nthe full credential_clear() in credential_reject() after the credential\nhas been erased from all of the helpers.\n\nSigned-off-by: Aaron Plattner \nAcked-by: brian m. carlson \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"credential: clear expired c->credential, unify secret clearing"}},{"before":"3d9d04b6625b4b0d2d66531aabe944041cca2a5a","after":"c34ff838187e0b2f07ce54a66c0bc41ab1b331d9","ref":"refs/heads/seen","pushedAt":"2024-06-04T22:35:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'rj/add-p-pager' into seen\n\n\"git add -i\" and friends learned a new '|' command that sends the\ncurrent hunk to the pager, instead of dumping it to the terminal.\n\n* rj/add-p-pager:\n add-patch: introduce the command '|'\n test-terminal: introduce --no-stdin-pty\n pager: introduce setup_custom_pager\n pager: introduce wait_for_pager\n pager: do not close fd 2 unnecessarily\n add-patch: test for 'p' command","shortMessageHtmlLink":"Merge branch 'rj/add-p-pager' into seen"}},{"before":"5fdfabb358e3bd55e683912846b67fdbaf649f5d","after":"02777ab017ee868b8c216fd7d1cee4423019bb1c","ref":"refs/heads/jch","pushedAt":"2024-06-04T21:21:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'ps/leakfixes-more' into jch\n\nMore memory leaks have been plugged.\n\n* ps/leakfixes-more: (29 commits)\n builtin/blame: fix leaking ignore revs files\n builtin/blame: fix leaking prefixed paths\n blame: fix leaking data for blame scoreboards\n line-range: plug leaking find functions\n merge: fix leaking merge bases\n builtin/merge: fix leaking `struct cmdnames` in `get_strategy()`\n sequencer: fix memory leaks in `make_script_with_merges()`\n builtin/clone: plug leaking HEAD ref in `wanted_peer_refs()`\n apply: fix leaking string in `match_fragment()`\n sequencer: fix leaking string buffer in `commit_staged_changes()`\n commit: fix leaking parents when calling `commit_tree_extended()`\n config: fix leaking \"core.notesref\" variable\n rerere: fix various trivial leaks\n builtin/stash: fix leak in `show_stash()`\n revision: free diff options\n builtin/log: fix leaking commit list in git-cherry(1)\n merge-recursive: fix memory leak when finalizing merge\n builtin/merge-recursive: fix leaking object ID bases\n builtin/difftool: plug memory leaks in `run_dir_diff()`\n object-name: free leaking object contexts\n ...","shortMessageHtmlLink":"Merge branch 'ps/leakfixes-more' into jch"}},{"before":null,"after":"2efc1da3f92a8b3674bd80aeee3ffdfec9a977f7","ref":"refs/heads/ap/credential-clear-fix","pushedAt":"2024-06-04T21:21:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"credential: clear expired c->credential, unify secret clearing\n\nWhen a struct credential expires, credential_fill() clears c->password\nso that clients don't try to use it later. However, a struct cred that\nuses an alternate authtype won't have a password, but might have a\ncredential stored in c->credential.\n\nThis is a problem, for example, when an OAuth2 bearer token is used. In\nthe system I'm using, the OAuth2 configuration generates and caches a\nbearer token that is valid for an hour. After the token expires, git\nneeds to call back into the credential helper to use a stored refresh\ntoken to get a new bearer token. But if c->credential is still non-NULL,\ngit will instead try to use the expired token and fail with an error:\n\n fatal: Authentication failed for 'https:///repository'\n\nAnd on the server:\n\n [auth_openidc:error] [client :34012] oidc_proto_validate_exp: \"exp\" validation failure (1717522989): JWT expired 224 seconds ago\n\nFix this by clearing both c->password and c->credential for an expired\nstruct credential. While we're at it, use credential_clear_secrets()\nwherever both c->password and c->credential are being cleared, and use\nthe full credential_clear() in credential_reject() after the credential\nhas been erased from all of the helpers.\n\nv2: Unify secret clearing into credential_clear_secrets(), use\ncredential_clear() in credential_reject(), add a comment about why we\ncan't use credential_clear() in credential_fill().\n\nSigned-off-by: Aaron Plattner \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"credential: clear expired c->credential, unify secret clearing"}},{"before":"3ee6deb5ef4ea884411537d50feb896a6f0072b8","after":"3d9d04b6625b4b0d2d66531aabe944041cca2a5a","ref":"refs/heads/seen","pushedAt":"2024-06-04T21:21:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'rj/add-p-pager' into seen\n\n\"git add -i\" and friends learned a new '|' command that sends the\ncurrent hunk to the pager, instead of dumping it to the terminal.\n\n* rj/add-p-pager:\n add-patch: introduce the command '|'\n test-terminal: introduce --no-stdin-pty\n pager: introduce setup_custom_pager\n pager: introduce wait_for_pager\n pager: do not close fd 2 unnecessarily\n add-patch: test for 'p' command","shortMessageHtmlLink":"Merge branch 'rj/add-p-pager' into seen"}},{"before":"f5a118872dd8dd35c167323c16ecb4035919ef3f","after":"51c0d632d3b6f489f60f2f19f0e8107318335085","ref":"refs/heads/next","pushedAt":"2024-06-04T21:21:57.000Z","pushType":"push","commitsCount":28,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'jk/cap-exclude-file-size' into next\n\nAn overly large \".gitignore\" files are now rejected silently.\n\n* jk/cap-exclude-file-size:\n dir.c: skip .gitignore, etc larger than INT_MAX","shortMessageHtmlLink":"Merge branch 'jk/cap-exclude-file-size' into next"}},{"before":"10cd2c2867a15f2b3116b93b5201b1c0b1ac6e40","after":"1da2d5fea18dc19f7df331e4dfcd2c6846d5ae47","ref":"refs/heads/ps/document-breaking-changes","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"BreakingChanges: document that we do not plan to deprecate git-checkout\n\nThe git-checkout(1) command is seen by many as hard to understand\nbecause it connects two somewhat unrelated features: switching between\nbranches and restoring worktree files from arbitrary revisions. In 2019,\nwe thus implemented two new commands git-switch(1) and git-restore(1) to\nsplit out these separate concerns into standalone functions.\n\nThis \"replacement\" of git-checkout(1) has repeatedly triggered concerns\nfor our userbase that git-checkout(1) will eventually go away. This is\nnot the case though: the use of that command is still widespread, and it\nis not expected that this will change anytime soon.\n\nDocument that all three commands will remain for the foreseeable future.\nThis decision may be revisited in case we ever figure out that most\neveryone has given up on any of the commands.\n\nSigned-off-by: Patrick Steinhardt \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"BreakingChanges: document that we do not plan to deprecate git-checkout"}},{"before":"3340254cc1774e590cedb8a512b25102770e9331","after":"1eaf0bfadcec3809ca8de0f7a6d0a6da53dd5423","ref":"refs/heads/jk/sparse-leakfix","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"sparse-checkout: free duplicate hashmap entries\n\nIn insert_recursive_pattern(), we create a new pattern_entry to insert\ninto the parent_hashmap. If we find that the same entry already exists\nin the hashmap, we skip adding the new one. But we forget to free the new\none, creating a leak.\n\nWe can fix it by cleaning up the discarded entry. It would probably be\npossible to avoid creating it in the first place, but it's non-trivial.\nWe'd have to define a \"keydata\" struct that lets us compare the existing\nentries to the broken-out fields. It's probably not worth the\ncomplexity, so we'll punt on that for now.\n\nThere is one subtlety here: our insertion is happening in a loop, with\neach iteration looking at the pattern we just inserted (hence the\n\"recursive\" in the name). So if we skip insertion, what do we look at?\n\nThe obvious answer is that we should remember the existing duplicate we\nfound and use that. But I _think_ in that case, we probably already have\nall of the recursive bits already (from when the original entry was\nadded). And so just breaking out of the loop would be correct. But I'm\nnot 100% sure on that; after all, the original leaky code could have\ndone the same break, but it didn't.\n\nSo I went with the \"obvious answer\" above, which has no chance of\nchanging the behavior aside from fixing the leak.\n\nWith this patch, t1091 can now be marked leak-free.\n\nSigned-off-by: Jeff King \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"sparse-checkout: free duplicate hashmap entries"}},{"before":"b246753f96f23bc8f7025e454822f4d9b522b4dd","after":"3ee6deb5ef4ea884411537d50feb896a6f0072b8","ref":"refs/heads/seen","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'rj/add-p-pager' into seen\n\n* rj/add-p-pager:\n add-patch: introduce the command '|'\n test-terminal: introduce --no-stdin-pty\n pager: introduce setup_custom_pager\n pager: introduce wait_for_pager\n pager: do not close fd 2 unnecessarily\n add-patch: test for 'p' command","shortMessageHtmlLink":"Merge branch 'rj/add-p-pager' into seen"}},{"before":"b25ec8b8d58e73c4327b0fcc9298e7ef6fe8e7a7","after":"56f4f4a29d32e177ef9af0907a17e431e8b3737e","ref":"refs/heads/jc/t1517-more","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"imap-send: minimum leakfix\n\nEVen with the minimum \"no-op\" invocation t1517 makes, \"git imap-send\"\nleaks an empty strbuf it used to read a 0-byte string into.\n\nThere are a few other topics cooking in 'next' that plugs many\nother leaks in this program, so let's minimally fix this one, barely\nenough to make CI pass, leaving the rest for the other topic.\n\nHelped-by: Jeff King \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"imap-send: minimum leakfix"}},{"before":"23f21a86c50bce672c1bbf5748325fc57c60434b","after":"5fdfabb358e3bd55e683912846b67fdbaf649f5d","ref":"refs/heads/jch","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'ps/leakfixes-more' into jch\n\nMore memory leaks have been plugged.\n\n* ps/leakfixes-more: (29 commits)\n builtin/blame: fix leaking ignore revs files\n builtin/blame: fix leaking prefixed paths\n blame: fix leaking data for blame scoreboards\n line-range: plug leaking find functions\n merge: fix leaking merge bases\n builtin/merge: fix leaking `struct cmdnames` in `get_strategy()`\n sequencer: fix memory leaks in `make_script_with_merges()`\n builtin/clone: plug leaking HEAD ref in `wanted_peer_refs()`\n apply: fix leaking string in `match_fragment()`\n sequencer: fix leaking string buffer in `commit_staged_changes()`\n commit: fix leaking parents when calling `commit_tree_extended()`\n config: fix leaking \"core.notesref\" variable\n rerere: fix various trivial leaks\n builtin/stash: fix leak in `show_stash()`\n revision: free diff options\n builtin/log: fix leaking commit list in git-cherry(1)\n merge-recursive: fix memory leak when finalizing merge\n builtin/merge-recursive: fix leaking object ID bases\n builtin/difftool: plug memory leaks in `run_dir_diff()`\n object-name: free leaking object contexts\n ...","shortMessageHtmlLink":"Merge branch 'ps/leakfixes-more' into jch"}},{"before":"ede386364a931a4e90b80353faa8d9a0ca9f3489","after":"732308452642f532a4c3f7b31fdbddc84350bf3b","ref":"refs/heads/ps/no-writable-strings","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"config.mak.dev: enable `-Wwrite-strings` warning\n\nWriting to string constants is undefined behaviour and must be avoided\nin C. Even so, the compiler does not help us with this by default\nbecause those constants are not in fact marked as `const`. This makes it\nrather easy to accidentally assign a constant to a non-const variable or\nfield and then later on try to either free it or write to it.\n\nEnable `-Wwrite-strings` to catch such mistakes. With this warning\nenabled, the type of string constants is changed to `const char[]` and\nwill thus cause compiler warnings when being assigned to non-const\nfields and variables.\n\nSigned-off-by: Patrick Steinhardt \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"config.mak.dev: enable -Wwrite-strings warning"}},{"before":null,"after":"c6ac9f6cc3d5005fbbc9a6801caa6a419ab4b520","ref":"refs/heads/rj/add-p-pager","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"add-patch: introduce the command '|'\n\nIntroduce a new command '|' to send the current hunk to a program. If\nno program is specified, use the pager.\n\nSigned-off-by: Rubén Justo \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"add-patch: introduce the command '|'"}},{"before":"54c50866fa398a825f77bafc637bf933286c7385","after":"f5a118872dd8dd35c167323c16ecb4035919ef3f","ref":"refs/heads/next","pushedAt":"2024-06-04T19:38:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'jc/t1517-more' into next\n\n\"smoke tests\" to ensure git commands that are designed to run\noutside repositories do work.\n\n* jc/t1517-more:\n imap-send: minimum leakfix","shortMessageHtmlLink":"Merge branch 'jc/t1517-more' into next"}},{"before":"9155fff47dad7dc06fd0b2f49c2349909d588faf","after":"10cd2c2867a15f2b3116b93b5201b1c0b1ac6e40","ref":"refs/heads/ps/document-breaking-changes","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"BreakingChanges: document that we do not plan to deprecate git-checkout\n\nThe git-checkout(1) command is seen by many as hard to understand\nbecause it connects two somewhat unrelated features: switching between\nbranches and restoring worktree files from arbitrary revisions. In 2019,\nwe thus implemented two new commands git-switch(1) and git-restore(1) to\nsplit out these separate concerns into standalone functions.\n\nThis \"replacement\" of git-checkout(1) has repeatedly triggered concerns\nfor our userbase that git-checkout(1) will eventually go away. This is\nnot the case though: the use of that command is still widespread, and it\nis not expected that this will change anytime soon.\n\nDocument that all three commands will remain for the foreseeable future.\nThis decision may be revisited in case we ever figure out that most\neveryone has given up on any of the commands.\n\nSigned-off-by: Patrick Steinhardt \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"BreakingChanges: document that we do not plan to deprecate git-checkout"}},{"before":"56b2b0cb30ab7efee224672f0bdf8528428fd662","after":"23f21a86c50bce672c1bbf5748325fc57c60434b","ref":"refs/heads/jch","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'ps/leakfixes-more' into jch\n\n* ps/leakfixes-more: (29 commits)\n builtin/blame: fix leaking ignore revs files\n builtin/blame: fix leaking prefixed paths\n blame: fix leaking data for blame scoreboards\n line-range: plug leaking find functions\n merge: fix leaking merge bases\n builtin/merge: fix leaking `struct cmdnames` in `get_strategy()`\n sequencer: fix memory leaks in `make_script_with_merges()`\n builtin/clone: plug leaking HEAD ref in `wanted_peer_refs()`\n apply: fix leaking string in `match_fragment()`\n sequencer: fix leaking string buffer in `commit_staged_changes()`\n commit: fix leaking parents when calling `commit_tree_extended()`\n config: fix leaking \"core.notesref\" variable\n rerere: fix various trivial leaks\n builtin/stash: fix leak in `show_stash()`\n revision: free diff options\n builtin/log: fix leaking commit list in git-cherry(1)\n merge-recursive: fix memory leak when finalizing merge\n builtin/merge-recursive: fix leaking object ID bases\n builtin/difftool: plug memory leaks in `run_dir_diff()`\n object-name: free leaking object contexts\n ...","shortMessageHtmlLink":"Merge branch 'ps/leakfixes-more' into jch"}},{"before":null,"after":"295554edfc4988d94cf07fd306c42f93c1550fe9","ref":"refs/heads/wip/heads-are-branches","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"show-ref: introduce --branches and deprecate --heads\n\nWe call the tips of branches \"heads\", but this command calls the\noption to show only branches \"--heads\", which confuses the branches\nthemselves and the tips of branches.\n\nStraighten the terminology by introducing \"--branches\" option that\nlimits the output to branches, and deprecate \"--heads\" option used\nthat way.\n\nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"show-ref: introduce --branches and deprecate --heads"}},{"before":null,"after":"3ba210c80d7c05659a48328ac01284444065a5d9","ref":"refs/heads/ps/leakfixes-more","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"builtin/blame: fix leaking ignore revs files\n\nWhen parsing the blame configuration we add \"blame.ignoreRevsFile\"\nconfigs to a string list. This string list is declared as with `NODUP`,\nand thus we hand over the allocated string to that list. We eventually\nend up calling `string_list_clear()` on that list, but due to it being\ndeclared as `NODUP` we will not release the associated strings and thus\nleak memory.\n\nFix this issue by setting up the list as `DUP` instead and free the\nconfig string after insertion.\n\nSigned-off-by: Patrick Steinhardt \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"builtin/blame: fix leaking ignore revs files"}},{"before":"8ba6d20d63a5e76ff214ab155c3a477367997ddc","after":"54c50866fa398a825f77bafc637bf933286c7385","ref":"refs/heads/next","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"push","commitsCount":43,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Sync with 'master'","shortMessageHtmlLink":"Sync with 'master'"}},{"before":"9eaef5822cd76bbeb53b6479ce0ddaad34ee2b14","after":"7b0defb3915eaa0bd118f0996e8c00b4eb2dc1ca","ref":"refs/heads/master","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"The tenth batch\n\nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"The tenth batch"}},{"before":"307e64d504de7e3dafc2c2a14db7d9adaf869a97","after":"b246753f96f23bc8f7025e454822f4d9b522b4dd","ref":"refs/heads/seen","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'ew/khash-to-khashl' into seen\n\nThe hashtable library \"khash.h\" has been replaced with \"khashl.h\"\nthat has better memory usage characteristics.\n\n* ew/khash-to-khashl:\n khashl: fix ensemble lookups on empty table\n treewide: switch to khashl for memory savings\n list-objects-filter: use kh_size API","shortMessageHtmlLink":"Merge branch 'ew/khash-to-khashl' into seen"}},{"before":"179a46d0f5ba840959dcc6711fd01b6548fb3c68","after":"dcf9db3b2ba1ed1ab535280882c57300bc4640c0","ref":"refs/heads/ps/ref-storage-migration","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"builtin/refs: new command to migrate ref storage formats\n\nIntroduce a new command that allows the user to migrate a repository\nbetween ref storage formats. This new command is implemented as part of\na new git-refs(1) executable. This is due to two reasons:\n\n - There is no good place to put the migration logic in existing\n commands. git-maintenance(1) felt unwieldy, and git-pack-refs(1) is\n not the correct place to put it, either.\n\n - I had it in my mind to create a new low-level command for accessing\n refs for quite a while already. git-refs(1) is that command and can\n over time grow more functionality relating to refs. This should help\n discoverability by consolidating low-level access to refs into a\n single executable.\n\nAs mentioned in the preceding commit that introduces the ref storage\nformat migration logic, the new `git refs migrate` command still has a\nbunch of restrictions. These restrictions are documented accordingly.\n\nSigned-off-by: Patrick Steinhardt \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"builtin/refs: new command to migrate ref storage formats"}},{"before":"1afc10f4d955cc6fc8a0f12da650f925bf337da2","after":"ede386364a931a4e90b80353faa8d9a0ca9f3489","ref":"refs/heads/ps/no-writable-strings","pushedAt":"2024-06-03T22:22:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"config.mak.dev: enable `-Wwrite-strings` warning\n\nWriting to string constants is undefined behaviour and must be avoided\nin C. Even so, the compiler does not help us with this by default\nbecause those constants are not in fact marked as `const`. This makes it\nrather easy to accidentally assign a constant to a non-const variable or\nfield and then later on try to either free it or write to it.\n\nEnable `-Wwrite-strings` to catch such mistakes. With this warning\nenabled, the type of string constants is changed to `const char[]` and\nwill thus cause compiler warnings when being assigned to non-const\nfields and variables.\n\nSigned-off-by: Patrick Steinhardt \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"config.mak.dev: enable -Wwrite-strings warning"}},{"before":"18609771279aad279a7697aadf78fb6a471761b5","after":"179a46d0f5ba840959dcc6711fd01b6548fb3c68","ref":"refs/heads/ps/ref-storage-migration","pushedAt":"2024-06-02T01:26:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"SQUASH??? doc fix","shortMessageHtmlLink":"SQUASH??? doc fix"}},{"before":"392190fab52f6ed3e159920425e559ca557dd4c7","after":"291ef5b61c569ca9d40100fec6ab16dfd65c9a32","ref":"refs/heads/iw/trace-argv-on-alias","pushedAt":"2024-06-02T01:26:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"run-command: show prepared command\n\nThis adds a trace point in start_command so we can see the full\ncommand invocation without having to resort to strace/code inspection.\nFor example:\n\n $ GIT_TRACE=1 git test foo\n git.c:755 trace: exec: git-test foo\n run-command.c:657 trace: run_command: git-test foo\n run-command.c:657 trace: run_command: 'echo $*' foo\n run-command.c:749 trace: start_command: /bin/sh -c 'echo $* \"$@\"' 'echo $*' foo\n\nPrior changes have made the documentation around the internals of the\nalias command execution clearer, but I have still found this detailed\nview of the aliased command being run helpful for debugging purposes.\n\nA test case is added to ensure the full command output is present in\nthe execution flow.\n\nSigned-off-by: Ian Wienand \nSigned-off-by: Junio C Hamano ","shortMessageHtmlLink":"run-command: show prepared command"}},{"before":"5fc861cf712b205684b78407c29e86aa9b0c5ed5","after":"307e64d504de7e3dafc2c2a14db7d9adaf869a97","ref":"refs/heads/seen","pushedAt":"2024-06-02T01:26:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'ps/no-writable-strings' into seen\n\n* ps/no-writable-strings:\n SQUASH???\n config.mak.dev: enable `-Wwrite-strings` warning\n builtin/merge: always store allocated strings in `pull_twohead`\n builtin/rebase: adapt code to not assign string constants to non-const\n imap-send: fix leaking memory in `imap_server_conf`\n imap-send: drop global `imap_server_conf` variable\n mailmap: always store allocated strings in mailmap blob\n revision: always store allocated strings in output encoding\n remote-curl: avoid assigning string constant to non-const variable\n send-pack: always allocate receive status\n parse-options: cast long name for OPTION_ALIAS\n object-file: make `buf` parameter of `index_mem()` a constant\n line-log: always allocate the output prefix\n http: do not assign string constant to non-const field\n refspec: remove global tag refspec structure\n reftable: improve const correctness when assigning string constants\n compat/win32: fix const-correctness with string constants\n global: convert intentionally-leaking config strings to consts\n global: assign non-const strings as required\n global: improve const correctness when assigning string constants","shortMessageHtmlLink":"Merge branch 'ps/no-writable-strings' into seen"}},{"before":"c5158a0f5c61db1ebd9f246fe1ce487990e8175f","after":"56b2b0cb30ab7efee224672f0bdf8528428fd662","ref":"refs/heads/jch","pushedAt":"2024-06-02T01:26:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gitster","name":"Junio C Hamano","path":"/gitster","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54884?s=80&v=4"},"commit":{"message":"Merge branch 'jk/cap-exclude-file-size' into jch\n\n* jk/cap-exclude-file-size:\n dir.c: skip .gitignore, etc larger than INT_MAX","shortMessageHtmlLink":"Merge branch 'jk/cap-exclude-file-size' into jch"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXISTbwA","startCursor":null,"endCursor":null}},"title":"Activity · gitster/git"}