-
Notifications
You must be signed in to change notification settings - Fork 757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
convert-svnexternals
script does not handle svn:externals
with date-time revisions
#459
Comments
This is not an issue of the To make the resulting deficit an issue of this script, the title has to be something like: And that's what I have to support for my use cases because we have several projects using So I plan to add some kind of revision guessing feature that could help you as well. |
I don't need it anymore. I decided to completely move to the git and use fork of the vcstool with the sparse checkout feature. The
Just move to the git and use vcstool with the sparse checkout. This is enough and much more powerful. Yes, there is no date-time revisions, but it does not need much and you still can point a branch HEAD as just like in the SVN. |
That was fully scriptable using
Not for us, we want to preserve the history.
How should sparse checkout help in organisation of libraries shared across different projects? We'll definitely not switch to a monorepo.
We want to have reproducible states and builds. Pointing to some latest HEAD revision is a nightmare. |
That's semi scriptable, you still can not automate creation of external git repositories. You have at least use, for example, GitHub CLI to start automate of creation repositories at GitHub, but it still pain in arse.
This is main mistake. You must leave it as is and start in the GIT from the last SVN changeset. This is the best choice. To ease the movement, you can start to use vcstool directly in the SVN replacing all
The vcstool is not a suggestion to use a monorepo repository. The sparse checkout works in the git just like Take a look on other implementations which use the submodules as a base: These are use the submodules, but customizes them for its own needs.
You just allocate a git repository for each library and use the vcstool yaml file to enlist and checkout external repositories by the list. Or use already allocated somethere on the internet or in the local in one of these stores:
The git submodules does this from the box as a core functionality. |
Yes, we didn't automate creation of the Git repositories, but I only referred to generation of the SVN-Git-mapping.
The main mistake is to think that others have the same requirements as you.
No, it doesn't seem they use submodules under the hood. I had a look into alternatives before the decision for submodules, and for our use case nothing of what I found was it worth going further than reading the README. And so it seems to be with these examples. It may work for people, it simply depends on your demands.
We don't have the need to convert all external repositories at the same time with synced Git-SVN mirror. We can use these libs in both SVN and Git superprojects during migration phase.
I know that, we use submodules, and I'm glad it isn't allowed to point to the latest HEAD with Git submodules as it was possible with svn:externals. |
But this is extremely not enough. No point to map SVN to GIT without automation of git repositories creation and complete movement to the GIT after all. You will suffer from supporting of this mapping garbage when it start to desync. Mirroring from SVN to GIT always been a pain. Better to dump it off.
The requirements are made by the people, so you can always change it.
As I said, these does not use the submodules in a usual way. But instead does replace
This is what I meant, the vcstool does support both vcs for migration purposes. And you actually is detached from vcs internals to use vcs builtin externals (submodules in the git and
I see nothing wrong with point to the HEAD. It is a kind of vcs side automation for a user. If a user want to always use the HEAD, why not? In the git it was not possible some time ago. PS: You can extract the issue into the discussion. |
Our setup works pretty well and we use SVN-Git mirroring since a few years without problems. And it's "Git", not "GIT". |
The convert-svnexternals script relies on subgit.com import, which skips
svn:externals
records with the date-time syntax as described in the issue of another tool: dirk-thomas/vcstool#243So the resulted
.gitsvnextmodules
file would not hasrevision = XXX
fields at all.The text was updated successfully, but these errors were encountered: