|
Project
|
SubGit
|
|
Priority
|
Show-stopper |
|
Type
|
Bug |
|
State
|
Fixed |
|
Assignee
|
Dmitry Pavlenko |
|
Subsystem
|
Translator Core |
|
Affected versions
|
Miai EAP5 (build 1096) |
|
Fix versions
|
1.0.0 (build 1696), Miai EAP6 (build 1381) |
|
Fixed in build
|
No Fixed in build
|
Thank you for reporting this issue.
Apparently, SubGit tries to find the object which is missing in the local Git repository. We have already fixed this problem and will prepare an interim build with the fix soon.
Note that in this build we don't ignore .gitmodules file added by `git submodule add $URL foo` command. When you add this file into Git repository, it appears in SVN repository as well. Most probably we will fix that, so SubGit'd ignore such files.
Regarding .gitmodules file — there is a chance that svn user modifies this file, then on git side a lot of problem appear, since properly registered submodule gets deleted. In that case git exits with error, something like "No submodule mapping found in .gitmodules for path 'path/to/submodule'"
Another point is that in SubGit 2.0 we're going to introduce externals support, and we mostly figured out how to convert git submodules into svn:externals and vice versa. Keeping .gitmodules file in svn may cause certain problems with the mechanism we're going to support.
Thank you for the great feedback.
In what version did you plan to have the .gitmodules file ignored by SVN?
And just out of curiosity, how were you planning to implement the externals <-> submodule conversion anyway? Because it might not be possible to convert the e extern svn repository by subgit, and visa versa...
Regarding .gitmodules <=> svn:externals conversion — extremely rough overview:
Assuming repositories A & B,
A:
/trunk/
/trunk/a/file.txt
/branches/
/tags
B:
/trunk/
/trunk/b/file.txt
/branches/
/tags
There is a case when SubGit will automatically convert svn:externals into git submodules and vice versa:
svn propset svn:externals "b -rN $B/trunk" on some directory at A will result into addition of git submodule corresponding to commit mapped as "rN $B/trunk" at B.
When SubGit is not installed into B or externals refer to some file or subdirectory of any branch in A, e.g.:
svn propset svn:externals "b -rN $B/trunk/b"
svn propset svn:externals "b/file.txt -rN $B/trunk/b/file.txt"
SubGit will generate a special file '.gitsvnextmodules' with all the information necessary to get corresponding files from svn, most probably these files will be ignored after the conversion.
The only client nowadays which supports this .gitsvnextmodules file is SmartGit, made by Syntevo company. So, if one clones a repository with such file using SmartGit, it will automatically clone Git repository from remote Subversion server.
Note that it's a very early draft of what we're going to implement, resp. some parts may change later.