Comments (5)
Oh, cool, my first Windows user! I don't have Windows to test on, so this is great feedback. Was this the only change you needed?
It looks like I've got a little bit of inconsistency in how source and target directories are handled, with either potentially ending up as a cwd argument to subprocess.Popen. I suspect there are a few more that would be needed depending on the arguments you pass; I should probably go through and clean those up. But I believe I also mixed and matched regular strings and byte strings in command arguments; do those all work for you on windows despite it not liking a cwd that was a bytestring? E.g. does
subprocess.check_output(["git", b"--version"])
work?
from git-filter-repo.
No sorry I created this a bit too fast.
Each time you call check_output I replaced the argument by
repo_working_dir.decode('utf-8') if isinstance(repo_working_dir, bytes) else repo_working_dir
from git-filter-repo.
I created a branch called 'windows-workarounds' to address this issue, but I suspect it might just be the first issue that needs to be fixed on Windows and that there will be others you'll run into. Any chance you could try that branch and report what the next error you hit is?
from git-filter-repo.
Thank you, it's working perfectly (I tried --path and --path-rename).
The only thing is that by default the python binary is called python and not python3.
from git-filter-repo.
Wow, that's all that was necessary to get it to work on Windows? I'm a bit surprised, but I'll go ahead and merge that commit in. If you do run into further issues, go ahead and report them.
As far as "python" vs "python3" -- yeah, I kind of expect that. For years the python devs gave the advice that "python" should refer to python2, and the executable for python3 should be named differently. They are starting to relax that with the impending EOL of python2, which means we'll be stuck with some systems calling it "python" and some calling it "python3". However, it's safer for me to use "python3". If someone has "python" which is a python3 implementation, then they probably get a simple error message saying there is no "python3" executable. In contrast, if I were to use "python" assuming that meant python3, then those who have a "python3" will probably also have a "python" that refers to python2 -- and the error messages from attempting to run python3 code under python2 will be far less clear. So, because of that, it'll be a long time before I switch over the shebang.
from git-filter-repo.
Related Issues (20)
- Renaming paths into pre-existing path causes double-nested paths (sometimes)
- Keep last 3 months of package-lock.json diffs only HOT 1
- Question: prune lfs files
- remark: Pity that this tool can't run scripts/programs and it is not clearly stated HOT 1
- minor: Logic error with `_commits_referenced_but_removed` on a GitHub Gist web url in commit message 😂
- Crash when path contains emoji HOT 1
- Question: Recommended way to log the usage of git filter-repo and related changes? HOT 1
- Callback that gives both filename and blob
- Breaking change in git 2.43 or 2.44 HOT 2
- lint-history: --refs argument not working at all HOT 1
- Test suite succedes with Python 3.11 but has multiple failures with Python 3.12 HOT 7
- Turns out my assumption was wrong: `git lfs migrate export --everything --include="*"` does rewrite the whole history, across all branches, reinjecting all the large files' consecutive versions ([see here](https://github.com/git-lfs/git-lfs/issues/910#issuecomment-551566315)). Awesome! HOT 1
- Support for SHA256
- FR: Filter into new repo HOT 1
- clean-ignore of filter-repo-demos does not handle utf-8 characters HOT 1
- Trouble with Lock File HOT 1
- Really-43e2c HOT 2
- Renaming path and then renaming it back to the original name deletes path rather than renaming it HOT 1
- Case-insenstive APFS volumes causing refs lock problem? HOT 1
- [Question] Repo size not shrinking after using --invert-paths HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from git-filter-repo.