René's URL Explorer Experiment


Title: Checkout typechange-only deltas by ethomson · Pull Request #4369 · libgit2/libgit2 · GitHub

Open Graph Title: Checkout typechange-only deltas by ethomson · Pull Request #4369 · libgit2/libgit2

X Title: Checkout typechange-only deltas by ethomson · Pull Request #4369 · libgit2/libgit2

Description: When performing a forced checkout, treat files as modified when the workdir or the index is identical except for the mode. This ensures that force checkout will update the mode to the target. Without this change, we examine the contents of the file on-disk and determine that it's identical to the tree we're checking out, and continue without making any changes. By including the filemode in the difference check, checkout will now make a file executable (or remove the executable bit) as appropriate to match the checkout target. We apply this check for regular files only: in the case where one of the items was a file and the other item was not, then this would be a typechange (not a file mode change) and would be handled by other codepaths.

Open Graph Description: When performing a forced checkout, treat files as modified when the workdir or the index is identical except for the mode. This ensures that force checkout will update the mode to the target. With...

X Description: When performing a forced checkout, treat files as modified when the workdir or the index is identical except for the mode. This ensures that force checkout will update the mode to the target. With...

Opengraph URL: https://github.com/libgit2/libgit2/pull/4369

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:bcaa6be1-62f5-6ffd-bee5-70fc3c37bbbc
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idAAEC:25D321:20A38A4:2C26ED6:6A65586B
html-safe-nonce95e76df1f38c1fa6a28d71bdfd610123a3a5920225b6e9943ff6f39add94edc1
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQUVDOjI1RDMyMToyMEEzOEE0OjJDMjZFRDY6NkE2NTU4NkIiLCJ2aXNpdG9yX2lkIjoiODE1MjczODM1NzkxNzg2NjA5MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacba23590ac5dcd3c5493149bad8d51b439e0245b66a082db5b6ed49d71485dd40
hovercard-subject-tagpull_request:145261950
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
twitter:imagehttps://avatars.githubusercontent.com/u/1130014?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1130014?s=400&v=4
og:image:altWhen performing a forced checkout, treat files as modified when the workdir or the index is identical except for the mode. This ensures that force checkout will update the mode to the target. With...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None52c76df668885aaff23b50bdca1fa1ea44ac9c1553e888ebc70ff1e4daa4625b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/libgit2/libgit2 git https://github.com/libgit2/libgit2.git
octolytics-dimension-user_id394745
octolytics-dimension-user_loginlibgit2
octolytics-dimension-repository_id901662
octolytics-dimension-repository_nwolibgit2/libgit2
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id901662
octolytics-dimension-repository_network_root_nwolibgit2/libgit2
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release309153364422b3c499922d1a2a6404910a58ed8e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Flibgit2%2Flibgit2%2Fpull%2F4369%2Fcommits%2F19e8faba79b300a5ee355e606af5d1f62b4ac930
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Flibgit2%2Flibgit2%2Fpull%2F4369%2Fcommits%2F19e8faba79b300a5ee355e606af5d1f62b4ac930
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Fcommits&source=header-repo&source_repo=libgit2%2Flibgit2
Reloadhttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Reloadhttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Reloadhttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Please reload this pagehttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
libgit2 https://github.com/libgit2
libgit2https://github.com/libgit2/libgit2
Notifications https://github.com/login?return_to=%2Flibgit2%2Flibgit2
Fork 2.6k https://github.com/login?return_to=%2Flibgit2%2Flibgit2
Star 10.5k https://github.com/login?return_to=%2Flibgit2%2Flibgit2
Code https://github.com/libgit2/libgit2
Issues 422 https://github.com/libgit2/libgit2/issues
Pull requests 108 https://github.com/libgit2/libgit2/pulls
Discussions https://github.com/libgit2/libgit2/discussions
Actions https://github.com/libgit2/libgit2/actions
Projects https://github.com/libgit2/libgit2/projects
Security and quality 9 https://github.com/libgit2/libgit2/security
Insights https://github.com/libgit2/libgit2/pulse
Code https://github.com/libgit2/libgit2
Issues https://github.com/libgit2/libgit2/issues
Pull requests https://github.com/libgit2/libgit2/pulls
Discussions https://github.com/libgit2/libgit2/discussions
Actions https://github.com/libgit2/libgit2/actions
Projects https://github.com/libgit2/libgit2/projects
Security and quality https://github.com/libgit2/libgit2/security
Insights https://github.com/libgit2/libgit2/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Flibgit2%2Flibgit2%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Flibgit2%2Flibgit2%2Fissues%2Fnew%2Fchoose
pks-thttps://github.com/pks-t
masterhttps://github.com/libgit2/libgit2/tree/master
ethomson/checkout_typechangehttps://github.com/libgit2/libgit2/tree/ethomson/checkout_typechange
Conversation 2 https://github.com/libgit2/libgit2/pull/4369
Commits 3 https://github.com/libgit2/libgit2/pull/4369/commits
Checks 0 https://github.com/libgit2/libgit2/pull/4369/checks
Files changed https://github.com/libgit2/libgit2/pull/4369/files
Please reload this pagehttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Checkout typechange-only deltas https://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930#top
Show all changes 3 commits https://github.com/libgit2/libgit2/pull/4369/files
752b7c7 checkout: treat files as modified if mode differs Jun 15, 2016 https://github.com/libgit2/libgit2/pull/4369/commits/752b7c792d7e2aad7be43a88114552233c230780
128c5ca checkout: do not test file mode on Windows ethomson Oct 7, 2017 https://github.com/libgit2/libgit2/pull/4369/commits/128c5ca930fb30fff36e1eb5ff95c61ecd074edf
19e8fab checkout: test force checkout when mode changes Jun 15, 2016 https://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Clear filters https://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Please reload this pagehttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Please reload this pagehttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
Prev https://github.com/libgit2/libgit2/pull/4369/commits/128c5ca930fb30fff36e1eb5ff95c61ecd074edf
Please reload this pagehttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930
https://github.com/ethomson
ethomsonhttps://github.com/libgit2/libgit2/commits?author=ethomson
tests/checkout/tree.chttps://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930#diff-e3866d0cd7fb38e09faf8fd6295a693a5cb23a7dcbcf85250c89bff51713a7be
View file https://github.com/libgit2/libgit2/blob/19e8faba79b300a5ee355e606af5d1f62b4ac930/tests/checkout/tree.c
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/libgit2/libgit2/pull/4369/commits/{{ revealButtonHref }}
https://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930#diff-e3866d0cd7fb38e09faf8fd6295a693a5cb23a7dcbcf85250c89bff51713a7be
https://github.com/libgit2/libgit2/pull/4369/commits/19e8faba79b300a5ee355e606af5d1f62b4ac930#diff-e3866d0cd7fb38e09faf8fd6295a693a5cb23a7dcbcf85250c89bff51713a7be
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.