rust-lang / cargo

The Rust package manager
https://doc.rust-lang.org/cargo
Apache License 2.0
12.64k stars 2.4k forks source link

cargo new --svn flag #9729

Open dertuxmalwieder opened 3 years ago

dertuxmalwieder commented 3 years ago

Cargo has support for (e.g.) Pijul and Fossil, and (although I do use Fossil as my main VCS), as those are not really widely used, I wonder if it makes sense to have Subversion support as well.

Given your consent, I'd try to implement that myself, as a warm-up for more meaningful contributions, if I'll find the time soon.

Eh2406 commented 3 years ago

I think svn support would be good, if someone wants to impl it.

dertuxmalwieder commented 3 years ago

Draft: https://github.com/dertuxmalwieder/cargo/commit/c60392941c9cf045a27204e140e3e4d70543ec90

A problem which I did not consider when starting this: SVN is strictly client-server; my current code basically creates a "server" repository and a checkout in the same directory.

Should there be a unique folder structure for that?

Eh2406 commented 3 years ago

I have never used SVN, so I don't know the idiomatic solution here.

dertuxmalwieder commented 3 years ago

My question targets best practices for cargo new, not necessarily for SVN. :-)

gilescope commented 3 years ago

Is there need for built-in svn support? I think the majority of the world has moved on to better version control systems. (I don't think there's need for CVS either despite me having had to use it as a version control system in the last year.)

dertuxmalwieder commented 3 years ago

I don’t think Git was better than SVN, yet Cargo supports it.

gilescope commented 3 years ago

Both git and mercurial are a lot better at merging than svn ever was. I had some large svn projects with 50-100 devs committing and it was not pretty at all.

dertuxmalwieder commented 3 years ago

See, that's why there are many different version control systems; I, for one, never used branches for any of my personal projects.

t-rapp commented 1 year ago

It doesn't help much to try finding the "best" version control system(s) and only include support for them in Cargo. The question should be which VCSs are typically used for Rust projects.

That said I wonder what actions Cargo should perform to initialize a new folder for Subversion. The svn:ignore property can only be set after a folder has been imported and checked out.

weihanglo commented 1 year ago

Thanks for being interested in this. Please read this comment for the team's thought on adding new VCS support. In short,