nabijaczleweli / cargo-update

A cargo subcommand for checking and applying updates to installed executables
MIT License
1.22k stars 42 forks source link

Add or respect git path with `-i`. #103

Closed daxpedda closed 5 years ago

daxpedda commented 5 years ago

When using --install-no-update with an already installed package from a git repository, it's being overwritten from the crate.io one.

Would like passing -g to say that it should respect already installed crates git paths and add a --git-overwrite or something to pass a new git path into -i.

Willing to make a PR if I get the blessing for it :smile:.

nabijaczleweli commented 5 years ago

Just so I'm getting this right, given this .crates.toml:

[v1]
"alacritty 0.1.0 (git+https://github.com/jwilm/alacritty#eb231b3e70b87875df4bdd1974d5e94704024d70)" = ["alacritty.exe"]

Running cargo install-update -i alacritty would install the crates.io version of alacritty?:

[v1]
"alacritty 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = ["alacritty.exe"]

That would most definitely constitute a bug.

daxpedda commented 5 years ago

Sorry for the rather big delay. Yes, I can confirm that behaviour, just tried it out. On a sidenote for people who want to try that too: --install-no-update is now called --allow-no-update, short form -i stayed the same.

nabijaczleweli commented 5 years ago

The -i/--allow-no-update pair was canonical since 25.03.2017, ain't nothing changed there :Р

If you still wanna make a PR, go for it. If not, I'll happily make a fix myself.

daxpedda commented 5 years ago

The -i/--allow-no-update pair was canonical since 25.03.2017, ain't nothing changed there :Р

Oh, not sure what happened there :open_mouth:.

If you still wanna make a PR, go for it. If not, I'll happily make a fix myself.

Go ahead please :smile:.

add a --git-overwrite or something to pass a new git path into -i.

What about that? Maybe I should make a seperate feature request for that? Just to explain, as far as I know there is no way to use -i together with a git path, which would be the feature requested.

nabijaczleweli commented 5 years ago

no way to use -i together with a git path

And that is for good reason: git packages have multiple config options when installing which I definitely don't want to even try supporting.

As for the issue at hand: kindly check if the issue persists on current master?

nabijaczleweli commented 5 years ago

Released in v1.8.0, but I'd still love to know if't works as you'd expect!

daxpedda commented 5 years ago

Just tried the example you provided above with the same results as before:

[v1]
"alacritty 0.1.0 (git+https://github.com/jwilm/alacritty#eb231b3e70b87875df4bdd1974d5e94704024d70)" = ["alacritty.exe"]

Running cargo install-update -i alacritty would install the crates.io version of alacritty?:

[v1]
"alacritty 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = ["alacritty.exe"]

I also tried with other crates, it still keeps overwriting git paths with crates.io ones when I use -i.

nabijaczleweli commented 5 years ago

oof, good catch! The aforementioned test works with commit above, but I'd lofta see if your real-world example passes, too, so I can release it!

daxpedda commented 5 years ago

Just tried with master (72eb72039b0beb20687146e539bf5505a52eda46), works now (ergo doesn't overwrite).

Thanks!

nabijaczleweli commented 5 years ago

Released in v1.8.2, and thank you for the report and testing!