{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":145584971,"defaultBranch":"main","name":"git-filter-repo","ownerLogin":"newren","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-08-21T15:40:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5455730?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1722535911.0","currentOid":""},"activityList":{"items":[{"before":"e1b7c3d1eae4b8e724ad81b584d20fffe78dd092","after":"ac50405044073df5caca22f8ac9d7a248b11515b","ref":"refs/heads/main","pushedAt":"2024-08-02T18:41:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"t9390: skip the version test if we are in some kind of installation\n\nThe version test assumes we are in a clone of the git-filter-repo\nrepository, without the kind of changes that would be performed by an\ninstallation of git-filter-repo (which may, for example, change the\nshebang line or the @@LOCALEDIR@@ references). So, if we are testing\nan installation of git-filter-repo, simply skip this test.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"t9390: skip the version test if we are in some kind of installation"}},{"before":"e1b7c3d1eae4b8e724ad81b584d20fffe78dd092","after":"ac50405044073df5caca22f8ac9d7a248b11515b","ref":"refs/heads/testme","pushedAt":"2024-08-02T18:33:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"t9390: skip the version test if we are in some kind of installation\n\nThe version test assumes we are in a clone of the git-filter-repo\nrepository, without the kind of changes that would be performed by an\ninstallation of git-filter-repo (which may, for example, change the\nshebang line or the @@LOCALEDIR@@ references). So, if we are testing\nan installation of git-filter-repo, simply skip this test.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"t9390: skip the version test if we are in some kind of installation"}},{"before":"725e478a921b207cdb8400355559a5ff98c71333","after":"e1b7c3d1eae4b8e724ad81b584d20fffe78dd092","ref":"refs/heads/main","pushedAt":"2024-08-01T19:31:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: handle origin refs without origin remote\n\ngit-svn creates references of the form refs/remotes/origin/..., even\nthough it does not actually set up an origin remote. Prior to\n a12d74249f5d (filter-repo: notify users when we remove the origin\n remote, 2024-07-30)\nthis would have resulted in a\n fatal: No such remote: 'origin'\nerror from the attempt to run `git remote rm origin`. However, the exit\nstatus of the command was ignored so filter-repo would have continued on\nand ended up getting the right result, just scaring users. Still\nsuboptimal, but at least it worked. Since the above-mentioned commit,\nthough, the code would die with a traceback stating that\nb'remote.origin.url' was not found in self._config_settings.\n\nJust return early from _migrate_origin_to_heads() when there is no\nremote configured to avoid these problems.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: handle origin refs without origin remote"}},{"before":"f629a99cd3696d122316c6141a5a8e7cd180e697","after":"e1b7c3d1eae4b8e724ad81b584d20fffe78dd092","ref":"refs/heads/testme","pushedAt":"2024-08-01T19:29:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: handle origin refs without origin remote\n\ngit-svn creates references of the form refs/remotes/origin/..., even\nthough it does not actually set up an origin remote. Prior to\n a12d74249f5d (filter-repo: notify users when we remove the origin\n remote, 2024-07-30)\nthis would have resulted in a\n fatal: No such remote: 'origin'\nerror from the attempt to run `git remote rm origin`. However, the exit\nstatus of the command was ignored so filter-repo would have continued on\nand ended up getting the right result, just scaring users. Still\nsuboptimal, but at least it worked. Since the above-mentioned commit,\nthough, the code would die with a traceback stating that\nb'remote.origin.url' was not found in self._config_settings.\n\nJust return early from _migrate_origin_to_heads() when there is no\nremote configured to avoid these problems.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: handle origin refs without origin remote"}},{"before":"b9473159b0e03673edf3c9a7aab560ebb1c77018","after":"f629a99cd3696d122316c6141a5a8e7cd180e697","ref":"refs/heads/testme","pushedAt":"2024-08-01T19:26:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"fixup! filter-repo: notice and signal when cleanup commands fail","shortMessageHtmlLink":"fixup! filter-repo: notice and signal when cleanup commands fail"}},{"before":"e2293113ad35f649ea67b75ea9481964679c0ca9","after":"b9473159b0e03673edf3c9a7aab560ebb1c77018","ref":"refs/heads/testme","pushedAt":"2024-08-01T19:22:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"fixup! filter-repo: provide warnings about filterability on subpar filesystems","shortMessageHtmlLink":"fixup! filter-repo: provide warnings about filterability on subpar fi…"}},{"before":"522e3d666983b62a8ed270cc37cfcdc0924f067e","after":"e2293113ad35f649ea67b75ea9481964679c0ca9","ref":"refs/heads/testme","pushedAt":"2024-08-01T19:19:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"fixup! filter-repo: provide warnings about filterability on subpar filesystems","shortMessageHtmlLink":"fixup! filter-repo: provide warnings about filterability on subpar fi…"}},{"before":"41af6443b86538da65b528fff7681dbcf8c8c7a1","after":"522e3d666983b62a8ed270cc37cfcdc0924f067e","ref":"refs/heads/testme","pushedAt":"2024-08-01T19:15:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"fixup! filter-repo: provide warnings about filterability on subpar filesystems","shortMessageHtmlLink":"fixup! filter-repo: provide warnings about filterability on subpar fi…"}},{"before":"d40b54042f2313fd4befdb37bd7d6b52454534c4","after":"41af6443b86538da65b528fff7681dbcf8c8c7a1","ref":"refs/heads/testme","pushedAt":"2024-08-01T19:11:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"fixup! filter-repo: provide warnings about filterability on subpar filesystems","shortMessageHtmlLink":"fixup! filter-repo: provide warnings about filterability on subpar fi…"}},{"before":"edadb02af12f9c7300e12637e70a8473c96110be","after":"d40b54042f2313fd4befdb37bd7d6b52454534c4","ref":"refs/heads/testme","pushedAt":"2024-08-01T18:43:44.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"fixup! filter-repo: provide warnings about filterability on subpar filesystems","shortMessageHtmlLink":"fixup! filter-repo: provide warnings about filterability on subpar fi…"}},{"before":"fa3af4fafc548ece016fa62555693ae2c679d854","after":"edadb02af12f9c7300e12637e70a8473c96110be","ref":"refs/heads/testme","pushedAt":"2024-08-01T18:35:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: provide warnings about filterability on subpar filesystems\n\nIf the user has a repo which has refs which differ in case only, then\nthey will be unable to do filtering on a case insensitive filesystem;\nthey will get the common\n fatal: cannot lock ref\nmessage when fast-import attempts to lock both refs. Similarly, if\nthe user has a repo which has refs which differ in normalization only,\nthen they will be unable to do filtering on a normalizing filesystem\nand will get the same error.\n\nAdd a sanity check for both cases when config notifies that we're on\none of the relevant filesystems, and which tells the user which refs\nare the problematic ones.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: provide warnings about filterability on subpar filesystems"}},{"before":"c254044d4f922d9eff4a22df659099c412a69975","after":"fa3af4fafc548ece016fa62555693ae2c679d854","ref":"refs/heads/testme","pushedAt":"2024-08-01T18:33:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: avoid calling `git config` multiple times\n\nCall `git config --list` once early on and then just consult all the\nparsed values when needed rather than running `git config` more than\nonce. This will become particularly important as we start paying\nattention to more config settings.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: avoid calling git config multiple times"}},{"before":"5cfd52f02514ce967bb79e15407ad7a9c598da0d","after":"c254044d4f922d9eff4a22df659099c412a69975","ref":"refs/heads/testme","pushedAt":"2024-08-01T18:29:28.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: handle origin refs without origin remote\n\ngit-svn creates references of the form refs/remotes/origin/..., even\nthough it does not actually set up an origin remote. Prior to\n a12d74249f5d (filter-repo: notify users when we remove the origin\n remote, 2024-07-30)\nthis would have resulted in a\n fatal: No such remote: 'origin'\nerror from the attempt to run `git remote rm origin`. However, the exit\nstatus of the command was ignored so filter-repo would have continued on\nand ended up getting the right result, just scaring users. Still\nsuboptimal, but at least it worked. Since the above-mentioned commit,\nthough, the code would die with a traceback stating that\nb'remote.origin.url' was not found in self._config_settings.\n\nJust return early from _migrate_origin_to_heads() when there is no\nremote configured to avoid these problems.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: handle origin refs without origin remote"}},{"before":"6b0c6200cf71ef707195a9cc95830fa074fbe0e4","after":"5cfd52f02514ce967bb79e15407ad7a9c598da0d","ref":"refs/heads/testme","pushedAt":"2024-08-01T18:13:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: rewrite the stash too\n\nWhile filter-repo by default will abort if there are any stashes in the\ngit repository (because that makes it look like not a clean clone), it\nis not uncommon for people to want to work on repositories that are not\nclean clones. In such cases, rather than simply dropping all their\nstashes, it is nicer if we can \"rewrite the stashes\" too.\n\nTo do so, we:\n * get the revision for each stash (getting the merge commit ID is\n sufficient since revision walking then includes all the parents)\n * get a copy of the contents of the .git/log/refs/stash file\n * provide the revisions for each stash to fast-export so that it\n iterates over the stashes too\n * between the reflog expiration and repacking steps, write out the\n contents of the .git/log/refs/stash file after first substituting\n for all the rewritten commits\n\nInterestingly, the issue was caused by running\n git reflog expire --expire=now --all && git gc --prune=now --aggressive\nupon completion of the filtering; it is the reflog expiration step in\nparticular that wipes out all the stashes. So, any page that recommends\nrunning both of those steps or any tool that recommends running those is\nputting their users' stashes at risk. As far as I can tell, that makes\ngit-filter-repo (after this commit) the first repository filtering tool\nto not have the stash deletion problem.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: rewrite the stash too"}},{"before":null,"after":"6b0c6200cf71ef707195a9cc95830fa074fbe0e4","ref":"refs/heads/testme","pushedAt":"2024-08-01T18:11:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: avoid calling `git config` multiple times\n\nCall `git config --list` once early on and then just consult all the\nparsed values when needed rather than running `git config` more than\nonce. This will become particularly important as we start paying\nattention to more config settings.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: avoid calling git config multiple times"}},{"before":"5cfd52f02514ce967bb79e15407ad7a9c598da0d","after":"725e478a921b207cdb8400355559a5ff98c71333","ref":"refs/heads/main","pushedAt":"2024-08-01T17:33:31.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: notice and signal when cleanup commands fail\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: notice and signal when cleanup commands fail"}},{"before":"a12d74249f5d8ad2c75bbe85185757c4035f80aa","after":"5cfd52f02514ce967bb79e15407ad7a9c598da0d","ref":"refs/heads/main","pushedAt":"2024-08-01T02:11:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: rewrite the stash too\n\nWhile filter-repo by default will abort if there are any stashes in the\ngit repository (because that makes it look like not a clean clone), it\nis not uncommon for people to want to work on repositories that are not\nclean clones. In such cases, rather than simply dropping all their\nstashes, it is nicer if we can \"rewrite the stashes\" too.\n\nTo do so, we:\n * get the revision for each stash (getting the merge commit ID is\n sufficient since revision walking then includes all the parents)\n * get a copy of the contents of the .git/log/refs/stash file\n * provide the revisions for each stash to fast-export so that it\n iterates over the stashes too\n * between the reflog expiration and repacking steps, write out the\n contents of the .git/log/refs/stash file after first substituting\n for all the rewritten commits\n\nInterestingly, the issue was caused by running\n git reflog expire --expire=now --all && git gc --prune=now --aggressive\nupon completion of the filtering; it is the reflog expiration step in\nparticular that wipes out all the stashes. So, any page that recommends\nrunning both of those steps or any tool that recommends running those is\nputting their users' stashes at risk. As far as I can tell, that makes\ngit-filter-repo (after this commit) the first repository filtering tool\nto not have the stash deletion problem.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: rewrite the stash too"}},{"before":"c67e73e593c04092fb1d14053b535c2b08ca218f","after":"a12d74249f5d8ad2c75bbe85185757c4035f80aa","ref":"refs/heads/main","pushedAt":"2024-07-31T06:26:17.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: notify users when we remove the origin remote\n\nFolks often run commands without reading the docs, but they are more\nlikely to read the output of the command. Notify users that we remove\nthe origin remote, and point to a new section in the docs that explains\nwhy we do so. That should make it easier for them to discover the\npotential pitfalls that await, as well as help them more quickly\ndiscover how to proceed.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: notify users when we remove the origin remote"}},{"before":"01ead411966a83dfcfb35f9d2e8a9f7f215eaa65","after":"71d71d4be238628bf9cb9b27be79b8bb824ed1a9","ref":"refs/heads/docs","pushedAt":"2024-07-18T04:46:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"Update docs to c67e73e593c04092fb1d14053b535c2b08ca218f","shortMessageHtmlLink":"Update docs to c67e73e"}},{"before":"1c6b5e70641a7741c2c46594f796fbfdef039f22","after":"c67e73e593c04092fb1d14053b535c2b08ca218f","ref":"refs/heads/main","pushedAt":"2024-07-18T04:46:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"Makefile: update to work with modern make versions\n\nApparently the environment variable setting from commit da2a96915718\n(Makefile: add a few new targets to streamline my release workflow,\n2019-10-21) does not work with newer make versions, which re-evaluate\nthe environment variables recursively any time someone sneezes and make\nthinks the sneeze might affect the value of the variable. Restructure\nin a way to ensure the environment variables are set only once.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"Makefile: update to work with modern make versions"}},{"before":"2779de4196e9d380008ee6c3b65b8fc000ad8b67","after":"01ead411966a83dfcfb35f9d2e8a9f7f215eaa65","ref":"refs/heads/docs","pushedAt":"2024-07-18T04:41:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"Update docs to cbc6535694380d3a3bf3e5c96410d4ce7e8de94f","shortMessageHtmlLink":"Update docs to cbc6535"}},{"before":"8c8e8910c56cba4a0345201f3795692498911206","after":null,"ref":"refs/tags/v2.45.0","pushedAt":"2024-07-18T04:41:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"}},{"before":"01ead411966a83dfcfb35f9d2e8a9f7f215eaa65","after":"2779de4196e9d380008ee6c3b65b8fc000ad8b67","ref":"refs/heads/docs","pushedAt":"2024-07-18T04:27:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"Update docs to 1c6b5e70641a7741c2c46594f796fbfdef039f22","shortMessageHtmlLink":"Update docs to 1c6b5e7"}},{"before":"0f1c9d8ddd4b11e9cf92fb5284515738ac5f113e","after":"1c6b5e70641a7741c2c46594f796fbfdef039f22","ref":"refs/heads/main","pushedAt":"2024-07-18T04:26:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"Makefile: update to work with modern make versions\n\nApparently the environment variable setting from commit da2a96915718\n(Makefile: add a few new targets to streamline my release workflow,\n2019-10-21) does not work with newer make versions, which re-evaluate\nthe environment variables recursively any time someone sneezes and make\nthinks the sneeze might affect the value of the variable. Restructure\nin a way to ensure the environment variables are set only once.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"Makefile: update to work with modern make versions"}},{"before":"d27dcdbb4baebdab3c4c6ba81638392e9a5efb24","after":"01ead411966a83dfcfb35f9d2e8a9f7f215eaa65","ref":"refs/heads/docs","pushedAt":"2024-07-18T04:25:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"Update docs to cbc6535694380d3a3bf3e5c96410d4ce7e8de94f","shortMessageHtmlLink":"Update docs to cbc6535"}},{"before":"01ead411966a83dfcfb35f9d2e8a9f7f215eaa65","after":"d27dcdbb4baebdab3c4c6ba81638392e9a5efb24","ref":"refs/heads/docs","pushedAt":"2024-07-18T04:07:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"Update docs to 0f1c9d8ddd4b11e9cf92fb5284515738ac5f113e","shortMessageHtmlLink":"Update docs to 0f1c9d8"}},{"before":"9784cbcef0a23efe7b8f42644383887584552a44","after":"0f1c9d8ddd4b11e9cf92fb5284515738ac5f113e","ref":"refs/heads/main","pushedAt":"2024-07-17T21:37:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"newren","name":"Elijah Newren","path":"/newren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5455730?s=80&v=4"},"commit":{"message":"filter-repo: change the --replace-refs default to 'update-no-add'\n\nI have been meaning to make this change for a couple years. In addition\nto the replace-refs issues I knew about when I made filter-repo start\nwriting replace refs, namely:\n\n * Many refs might slow down git operations\n * replace refs are not pushed or pulled by default, making them a bit\n harder for users to take advantage of\n * libgit2 and jgit do not support replace refs\n * the the various Code Hosting sites (Gerrit, GitHub, GitLab) do not\n support replace refs in their UI\n\nI have found that the negatives about having replace-refs turned on by\ndefault have seemed to be bigger than I realized, and the positives for\nit have turned out to be much less than I imagined. Some of the\nadditional factors are:\n\n * commit-graphs disable themselves if there are _any_ replace refs (it\n wouldn't need to for the kind we write, but there is no more\n specialized logic in place)\n * Git itself still has buggy handling of replace refs (as per\n https://lore.kernel.org/git/CABPp-BEAbN05+hCtK=xhGg5uZFqbUvH9hMcCNMcBWp5JWLqzPw@mail.gmail.com/\n )\n * users continue to assume replace refs do things they don't in new\n and interesting ways contrary to any and all documentation. I've\n been surprised a few times by new powers users can dream and assert\n they have.\n * my big monorepo rewrite at ${FORMER_EMPLOYER} shrunk the repository\n dramatically, as desired, when we finally got to approval to do it\n after years of talking about it. But despite years of pings about\n making sure we had a way to refer to new commits with old commit IDs\n as part of that conversion, and providing that way, it was used\n dramatically less than I had expected. I might have even gotten\n entirely away without providing such a mapping, though I'm happy\n that we had it and I was able to proactively provide it to the\n users and comfort their fears about the transition.\n\nNow, all this said, I still think that being able to create replace refs\nas a mechanism for users to refer to new commits using old commit IDs is\na great ability. However, I now think it should be off by default,\nwhich is achieved with the 'update-no-add' setting.\n\nIn addition to changing the default in the code, also update the\ndocumentation and the built-in help, and add a few new testcases to\nmake sure everything is well tested.\n\nSigned-off-by: Elijah Newren ","shortMessageHtmlLink":"filter-repo: change the --replace-refs default to 'update-no-add'"}},{"before":"96fb251cc67d3b9a1e50300b2ad0c978426adaf0","after":null,"ref":"refs/heads/dependabot/github_actions/actions/upload-artifact-4","pushedAt":"2024-07-07T06:47:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"550943cdf7ce619ced68ef435e84a61d19b1322b","after":null,"ref":"refs/heads/dependabot/github_actions/actions/checkout-4","pushedAt":"2024-07-07T06:47:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"4c719c44ec5ed05fbcb9310b9941f3895f754dac","after":null,"ref":"refs/heads/dependabot/github_actions/actions/setup-python-5","pushedAt":"2024-07-07T06:46:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEkHNesgA","startCursor":null,"endCursor":null}},"title":"Activity · newren/git-filter-repo"}