René's URL Explorer Experiment


Title: Fix bugs affecting exception wrapping in rmtree callback by EliahKagan · Pull Request #1700 · gitpython-developers/GitPython · GitHub

Open Graph Title: Fix bugs affecting exception wrapping in rmtree callback by EliahKagan · Pull Request #1700 · gitpython-developers/GitPython

X Title: Fix bugs affecting exception wrapping in rmtree callback by EliahKagan · Pull Request #1700 · gitpython-developers/GitPython

Description: Fixes #1698 Fixes #1699 May close #1571 This takes the approaches I suggested in #1698 and #1699 for those two issues. It also adds tests for both the already-working behavior and the new behavior. For the tests of new behavior, I have manually verified they failed in the expected way, and now pass, on native Windows. (Other results can be seen on CI.) For interpreting the HIDE_WINDOWS_KNOWN_ERRORS and HIDE_WINDOWS_FREEZE_ERRORS environment variables: I have kept True as the default (though we may be able to change that in the near future, even before fully addressing #790). 0, false, and no, as well as the empty string, are treated as False. This is case-insensitive and ignoring leading and trailing whitespace. While other values are currently treated as True, values other than possibly padded and possibly case-varying 1, yes, or true show a warning about being unrecognized. This warning is in addition to, not instead of, the warning that is shown from the environment variable being present at all. The attributes from those variables are always bool, now, too. They are never strings. When limiting the exceptions the rmtree callback catches and reraises as unittest.SkipTest to PermissionError, I made a couple other changes as well: I eliminated the duplicated logic, which technically is an additional behavioral change, because in some cases a PermissionError was wrapped in a SkipTest that was itself wrapped in another SkipTest. But I don't think this will cause any problems because even if someone relied on that, the only thing they would likely do would have been to follow the chain to the first non-SkipTest. As noted in #1571, passing a callback as the onerror parameter to shutil.rmtree is deprecated starting in Python 3.12, and the documentation indicates that it is planned for removal in 3.14. So I have used the new onexc parameter on 3.12 (and later). Because this is not available on 3.11 and earlier, it continues to use onerror in those versions. This was easy to implement, because in this case the same callback function naturally works for both, as it does not inspect the error information it receives. #1571 may or may not be resolved by this, which I think is to a large extent subjective. That issue does two things. It documents a problem from 3.12.0.alpha7, which I believe was fixed, as I commented there. It also notes the deprecated status of shutil.rmtree's onerror argument and advocates that onexc be used instead. This was originally with the idea that using onerror caused or contributed to the observed test failures, but even though that was probably not the case, the issue might have been taken to stand for that as well. I also fixed the type hints on the callback, renamed the callback itself as handler so it is no longer named after one of those two keyword arguments but not the other (which I think could cause confusing), and renamed its parameters to more closely match the documentation. As it is a local function that is not returned, this does not raise any compatibility issues. In a similar vein, I've included a number of low-stakes refactorings, mostly just to imports, in modules I was already modifying heavily, mainly in test_util. This also adds a missing xfail and updates commented references to the callback-based skipping logic that already existed. Most tests that get skipped in this way, of which there are about eight, do not have comments like this, and I have not added them. The tests that did are those that had previously been marked with @skipIf decorators. Finally, I've updated the git.util.rmtree docstring, which will affect generated documentation. This relates to, but only somewhat mitigates and definitely does not solve, #790.

Open Graph Description: Fixes #1698 Fixes #1699 May close #1571 This takes the approaches I suggested in #1698 and #1699 for those two issues. It also adds tests for both the already-working behavior and the new behavior....

X Description: Fixes #1698 Fixes #1699 May close #1571 This takes the approaches I suggested in #1698 and #1699 for those two issues. It also adds tests for both the already-working behavior and the new behavior....

Opengraph URL: https://github.com/gitpython-developers/GitPython/pull/1700

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:b2a21f6c-7398-83d0-90ec-9518c64ed076
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD5C8:6FE17:4A77BB:69236A:6968F558
html-safe-noncea2812d87fda6d22fc42bb579c0c810f7a66c4b7a2a988a6bc166783013a10260
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENUM4OjZGRTE3OjRBNzdCQjo2OTIzNkE6Njk2OEY1NTgiLCJ2aXNpdG9yX2lkIjoiMzc2MzYzMDYxODYzMzEwNjc3NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac357e4c39857c3ac4d47c67148c543f4b8c156551e5efa8f6963cc721b99879b4
hovercard-subject-tagpull_request:1547659758
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/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/gitpython-developers/GitPython/pull/1700/files
twitter:imagehttps://avatars.githubusercontent.com/u/1771172?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1771172?s=400&v=4
og:image:altFixes #1698 Fixes #1699 May close #1571 This takes the approaches I suggested in #1698 and #1699 for those two issues. It also adds tests for both the already-working behavior and the new behavior....
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb229519d8adb10c7bce106d807003c585a919bd07491d720d8aada92dc43746b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/gitpython-developers/GitPython git https://github.com/gitpython-developers/GitPython.git
octolytics-dimension-user_id503709
octolytics-dimension-user_logingitpython-developers
octolytics-dimension-repository_id1126087
octolytics-dimension-repository_nwogitpython-developers/GitPython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1126087
octolytics-dimension-repository_network_root_nwogitpython-developers/GitPython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release176ddd19d172d50da7e20b971f928ffe57138b35
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/gitpython-developers/GitPython/pull/1700/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgitpython-developers%2FGitPython%2Fpull%2F1700%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
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
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
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
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/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%2Fgitpython-developers%2FGitPython%2Fpull%2F1700%2Ffiles
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%2Ffiles&source=header-repo&source_repo=gitpython-developers%2FGitPython
Reloadhttps://github.com/gitpython-developers/GitPython/pull/1700/files
Reloadhttps://github.com/gitpython-developers/GitPython/pull/1700/files
Reloadhttps://github.com/gitpython-developers/GitPython/pull/1700/files
gitpython-developers https://github.com/gitpython-developers
GitPythonhttps://github.com/gitpython-developers/GitPython
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
Notifications https://github.com/login?return_to=%2Fgitpython-developers%2FGitPython
Fork 964 https://github.com/login?return_to=%2Fgitpython-developers%2FGitPython
Star 5k https://github.com/login?return_to=%2Fgitpython-developers%2FGitPython
Code https://github.com/gitpython-developers/GitPython
Issues 169 https://github.com/gitpython-developers/GitPython/issues
Pull requests 8 https://github.com/gitpython-developers/GitPython/pulls
Discussions https://github.com/gitpython-developers/GitPython/discussions
Actions https://github.com/gitpython-developers/GitPython/actions
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/gitpython-developers/GitPython/security
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
Insights https://github.com/gitpython-developers/GitPython/pulse
Code https://github.com/gitpython-developers/GitPython
Issues https://github.com/gitpython-developers/GitPython/issues
Pull requests https://github.com/gitpython-developers/GitPython/pulls
Discussions https://github.com/gitpython-developers/GitPython/discussions
Actions https://github.com/gitpython-developers/GitPython/actions
Security https://github.com/gitpython-developers/GitPython/security
Insights https://github.com/gitpython-developers/GitPython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fgitpython-developers%2FGitPython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fgitpython-developers%2FGitPython%2Fissues%2Fnew%2Fchoose
Byronhttps://github.com/Byron
gitpython-developers:mainhttps://github.com/gitpython-developers/GitPython/tree/main
EliahKagan:untangle-skipshttps://github.com/EliahKagan/GitPython/tree/untangle-skips
Conversation 11 https://github.com/gitpython-developers/GitPython/pull/1700
Commits 19 https://github.com/gitpython-developers/GitPython/pull/1700/commits
Checks 0 https://github.com/gitpython-developers/GitPython/pull/1700/checks
Files changed https://github.com/gitpython-developers/GitPython/pull/1700/files
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
Fix bugs affecting exception wrapping in rmtree callback https://github.com/gitpython-developers/GitPython/pull/1700/files#top
Show all changes 19 commits https://github.com/gitpython-developers/GitPython/pull/1700/files
2814263 Add a missing PermissionError xfail on Windows EliahKagan Oct 8, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/28142630f6c3bfd83dcd654c102235c5c00075e5
fba59aa Update "ACTUALLY skipped by" comments EliahKagan Oct 8, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/fba59aa32119e22b1b300fea8959c0abd3c9f863
5039df3 Eliminate duplicate rmtree try-except logic EliahKagan Oct 8, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/5039df3560d321af1746bbecbeb1b2838daf7f91
683a3ee Clean up git.objects.submodule.base imports EliahKagan Oct 8, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/683a3eeba838bb786bb1f334c963deb8e13eed0f
2fe7f3c Test current expected behavior of git.util.rmtree EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/2fe7f3c4a6f9870bb332761740c883a2c2ff2487
d42cd72 Test situations git.util.rmtree shouldn't wrap EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/d42cd721112d748c35d0abd11ba8dfc71052e864
2a32e25 Fix test bug that assumed staticmethod callability EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/2a32e25bbd1cb42878928ef57a57100a17366202
b8e009e In rmtree, have onerror catch only PermissionError EliahKagan Oct 8, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/b8e009e8d31e32a2c0e247e0a7dc41ccdd3556e7
ccbb273 Fix onerror callback type hinting, improve style EliahKagan Oct 8, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/ccbb2732efcfa265568f1a535a8b746ed07ed82a
0b88012 Use onexc callback where supported EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/0b88012471d8021fffe61beb9d058840c0235f5d
7dd5904 Revise and update rmtree docstrings and comments EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/7dd59043b44d0f2169304f90da74b1b2f7f2b02e
196cfbe Clean up test_util, reorganizing for readability EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/196cfbeefb5ab0844d37da0b1e010b6ee7cf9041
100ab98 Add initial test_env_vars_for_windows_tests EliahKagan Oct 7, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/100ab989fcba0b1d1bd89b5b4b41ea5014da3d82
7604da1 Warn if HIDE_WINDOWS_*_ERRORS set in environment EliahKagan Oct 7, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/7604da185ce12b9ef540aff3255580db02c88268
eb51277 Make HIDE_* attributes always bool EliahKagan Oct 7, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/eb51277e73ca274e3948a3f009168d210dd587ca
333896b Treat false-seeming HIDE_* env var values as false EliahKagan Oct 7, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/333896b4447c56093fa4ae402a3d22491928ce29
c11b366 Simplify HIDE_* env var test; add missing cases EliahKagan Oct 7, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/c11b36660382c713709b36bbca1da8a1acb3a4ec
f0e15e8 Further cleanup in test_util (on new tests) EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/f0e15e8935580a4e4dc4ed6490c9e1b229493e19
a9b05ec Clarify a test helper docstring EliahKagan Oct 9, 2023 https://github.com/gitpython-developers/GitPython/pull/1700/commits/a9b05ece674578d3417f8969ade17b06ab287ffe
Clear filters https://github.com/gitpython-developers/GitPython/pull/1700/files
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
base.py https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
util.py https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
test-requirements.txt https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-fac4c6890301d4de5c3f4266837803d5240c84a3d8b6c735bbc6a64c39d2f94e
test_docs.py https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-e8640c3e0d2b1139c3e2ac635af5416e976b99fb1e2c5b4745830991dc492723
test_submodule.py https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-78179a32c1d54a6b78b018ee57328d6ea9424fbfbdbb36caf15e290331621024
test_util.py https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-62b93f19eeb2c5ff6e26eaccf3f63ee6641e87f3a6ccfc2ffb0dec86925ae245
git/objects/submodule/base.pyhttps://github.com/gitpython-developers/GitPython/pull/1700/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
View file https://github.com/EliahKagan/GitPython/blob/a9b05ece674578d3417f8969ade17b06ab287ffe/git/objects/submodule/base.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1700/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
git/util.pyhttps://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
View file https://github.com/EliahKagan/GitPython/blob/a9b05ece674578d3417f8969ade17b06ab287ffe/git/util.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1700/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
test-requirements.txthttps://github.com/gitpython-developers/GitPython/pull/1700/files#diff-fac4c6890301d4de5c3f4266837803d5240c84a3d8b6c735bbc6a64c39d2f94e
View file https://github.com/EliahKagan/GitPython/blob/a9b05ece674578d3417f8969ade17b06ab287ffe/test-requirements.txt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1700/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-fac4c6890301d4de5c3f4266837803d5240c84a3d8b6c735bbc6a64c39d2f94e
EliahKaganhttps://github.com/EliahKagan
Oct 9, 2023https://github.com/gitpython-developers/GitPython/pull/1700/files#r1350193686
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
Byronhttps://github.com/Byron
Oct 10, 2023https://github.com/gitpython-developers/GitPython/pull/1700/files#r1351727358
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
EliahKaganhttps://github.com/EliahKagan
Oct 10, 2023https://github.com/gitpython-developers/GitPython/pull/1700/files#r1353654395
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
#914https://github.com/gitpython-developers/GitPython/issues/914
#1693 (review)https://github.com/gitpython-developers/GitPython/pull/1693#pullrequestreview-1658090018
pytest-checkhttps://github.com/okken/pytest-check
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
test/test_docs.pyhttps://github.com/gitpython-developers/GitPython/pull/1700/files#diff-e8640c3e0d2b1139c3e2ac635af5416e976b99fb1e2c5b4745830991dc492723
View file https://github.com/EliahKagan/GitPython/blob/a9b05ece674578d3417f8969ade17b06ab287ffe/test/test_docs.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1700/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-e8640c3e0d2b1139c3e2ac635af5416e976b99fb1e2c5b4745830991dc492723
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-e8640c3e0d2b1139c3e2ac635af5416e976b99fb1e2c5b4745830991dc492723
test/test_submodule.pyhttps://github.com/gitpython-developers/GitPython/pull/1700/files#diff-78179a32c1d54a6b78b018ee57328d6ea9424fbfbdbb36caf15e290331621024
View file https://github.com/EliahKagan/GitPython/blob/a9b05ece674578d3417f8969ade17b06ab287ffe/test/test_submodule.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1700/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-78179a32c1d54a6b78b018ee57328d6ea9424fbfbdbb36caf15e290331621024
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-78179a32c1d54a6b78b018ee57328d6ea9424fbfbdbb36caf15e290331621024
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-78179a32c1d54a6b78b018ee57328d6ea9424fbfbdbb36caf15e290331621024
https://github.com/gitpython-developers/GitPython/pull/1700/files#diff-78179a32c1d54a6b78b018ee57328d6ea9424fbfbdbb36caf15e290331621024
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1700/files
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.