Environment:

Desktop: Windows 7 Enterprise 64-bit
svn client (if applicable): 1.8.8 from Apache
git (https://git-for-windows.github.io/): git version 2.10.1.windows.1
GitTfs (https://github.com/git-tfs/git-tfs): git-tfs version 0.27.0.0 (TFS 
client library 14.0.0.0 (MS)) (32-bit)
Team Foundation Server: 2010
Visual Studio installation: 2010 and 2015

All processing is being done on my desktop described above. My goal is to 
migrate Team Foundation Server source into git and then from git into a local 
SVN repository. The specific source from Team Foundation Server has only 2 
changesets made against it and neither have a commit message associated with 
them.

Steps I'm taking:

1. Open a Windows (cmd.exe) command shell and put git-tfs into Path:
Set Path=C:\Users\brbennett\Downloads\GitTfs-0.27.0;%Path%

2. Create empty folder C:\TEMP\gitclone\Project_Elevation_Request and make this 
the working folder.

3. git-tfs clone -d "http://tfs:8080/tfs/collection"; 
$/Folder1/Production/Elevation_Request
I can see the only 2 TFS changesets being cloned into the local git repository.
C423 = 6dfefb6160b53da7f580f24f2ce41af04f508b8a
C424 = e8d6573b5a6e29db78fd420f843ca7ad7480eda2

4. Move working folder to 
C:\TEMP\gitclone\Project_Elevation_Request\Elevation_Request

5. Create empty folder C:\TEMP\SVN\repos and create empty SVN repository:
svnadmin --compatible-version 1.8 create C:\TEMP\SVN\repos\Elevation_Request

6. Start up local SVN server in a different shell:
svnserve -d -r C:\TEMP\SVN\repos

7. Create trunk in local 
svn mkdir --parents svn:///C:/TEMP/SVN/repos/Elevation_Request/trunk -m 
"Importing git repo"
Committed revision 1.

8. git svn init svn:///C:/TEMP/SVN/repos/%PROJNAME% -s

9. git svn fetch
R1 for the trunk created earlier is retrieved
r1 = 5efc0da5f5af4cd62fde660a4402e3a751c2b003 (refs/remotes/origin/trunk)

10. git rebase origin/trunk
First, rewinding head to replay your work on top of it...
Applying:
Applying:

11. git svn dcommit
Committing to svn:///C:/TEMP/SVN/repos/Source_elevation_tool/trunk ...
        A       Source_elevation_tool.sln
        A       Source_elevation_tool/Form1.Designer.cs
        A       Source_elevation_tool/Form1.cs
        A       Source_elevation_tool/Form1.resx

ERROR from SVN:
Wrong or unexpected property value: Cannot accept non-LF line endings in 
'svn:log' property
W: 40ff09d157bcbbf1e6deefd2222e38ed499ec8ac and refs/remotes/origin/trunk 
differ, using rebase -v:
:100644 000000 8222efb4e5a055b3b0b41ab91972f07dd71e4b10 
0000000000000000000000000000000000000000 D      Source_elevation_tool.sln
:100644 000000 794f014c920a6aee2f21ee348e30f38a458e9c7d 
0000000000000000000000000000000000000000 D      Source_elevation_tool.vssscc
:040000 000000 0acaa94fa910fe974019ae4c2dcbf9a620437758 
0000000000000000000000000000000000000000 D      Source_elevation_tool
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.

I've researched enough to believe that the commit message being used by git svn 
contains a carriage return character (x'0D') and that has not been allowed in 
Subversion since version 1.6 (I can replicate this specific error message using 
an SVN dump file that contains x'0D' characters in the log messages.). However, 
I cannot find where I have any control over the log message that git svn is 
trying to use nor can I observe it. Note that I've also used the '-v' switch 
with the 'git svn dcommit', but do not receive anything other than what I am 
showing above.

Brian Bennett | Supv System Admin & Support, TA TECH Change Mgmt/Production 
Support
o: 319-355-7602 | c: 319-533-1094
e: brian.benn...@transamerica.com | w: www.transamerica.com

Transamerica
6400 C St. SW, Cedar Rapids, IA 52404 MS-2410
Facebook | LinkedIn


Reply via email to