Comments (5)
Thanks for the hint, I will definitely take a look soonish!
If I understood git
correctly, it really tries hard not to touch HEAD
, and maybe the current gitoxide
implementation is too broad to completely prohibit it. This might be a bug and I will see if that can just be enabled (except for setting HEAD
), or if that should be configurable instead.
from gitoxide.
Yup I think those two constraints make total sense as they (probably) won't affect the use case of updating a bare repository since those tend to be managed via code rather than manually by a user, so this change would effectively give the same benefits as fetch + checkout but for bare repositories.
from gitoxide.
This will be fixed with the next release, I will post here when that happens. Figuring this out was quite some work, but as always, that is rewarded. Now I think the logic is finally sound and more tested, too, which should allow gix
to mirror repos pretty nicely.
I added a third rule to the above, repeated here for completeness:
The new logic will happily update any refs, symbolic or not, if…
- fast-forward rules aren't violated
- the target ref is not currently checked out
- existing refs would not become 'unborn', i.e. point to a reference that doesn't exist and won't be created due to ref-specs
from gitoxide.
This issue should be resolved with the latest release, but please let me know if anything is missing. Thanks you.
from gitoxide.
This will be improved with the next release, I will post here when that happens and it should be today or tomorrow - I am working on it.
It turns out that I definitely took a shortcut by simply not handling symbolic refs, which do complicate things quite a bit, but since some time passed I will it's a good time to tackle.
When using gix fetch
I also noticed that it would refuse to do anything with origin/HEAD
and thought that was unnecessary.
The new logic will happily update any refs, symbolic or not, if…
- fast-forward rules aren't violated
- if the target ref is not currently checked out
That should really be all that matters.
from gitoxide.
Related Issues (20)
- Prebuilt binaries obtained on ARM64 macOS are x86-64 HOT 5
- OSS-Fuzz issue 70841 HOT 1
- OSS-Fuzz issue 70863 HOT 1
- Release workflow relies on deprecated `set-output` feature
- OSS-Fuzz issue 70876 HOT 1
- `from_path_no_follow` test runs `touch` with nonportable date format HOT 3
- Panic when parsing `HEAD:README` in a repo with invalid HEAD. HOT 2
- gitx-credentials fails to build HOT 4
- copy detection differs from git weirdly HOT 12
- progress.rs misleadingly claims "we target 32bit systems only" HOT 6
- CVE-2024-43785: gitoxide-core does not neutralize special characters for terminals HOT 10
- gix-object v0.44.0 fail to compile HOT 2
- gitoxide is still less lenient than git when parsing signatures, in particular in tags
- gix clone fails on https://git.zx2c4.com/sha256-oid-test HOT 1
- Oxidize `git-cliff` HOT 2
- Unable to fetch with only extra_refspecs HOT 1
- Add a `tokio` feature HOT 2
- None of the commands work HOT 6
- An old value of `MSYS` with unpaired surrogates is silently replaced for fixtures
- `jj_realistic_needs_to_be_more_clever` failure is not limited to CI HOT 2
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 gitoxide.