Search code examples
gitsvnwhitespacetrailingdcommit

Git svn rebase: file out of date - trailing whitespace


I have an issue while using git svn. I have a repor which is used by people mostly from Windows but I use Linux.

I have performed changes on this repo but today I got this after git svn dcommit:

Could not chdir to home directory /isource/home/pmalek: No such file or directory
        M       robot_tests/XXXXX-XXXXX_tests/testcases/03.01.test.tsv
        M       robot_tests/XXXXX-XXXXX_tests/testcases/XXXXXKeywords.tsv
        M       robot_tests/common_keywords/XXXXXKeywords.tsv

ERROR from SVN:
Transaction is out of date: File '/trunk/robot_tests/XXXXX-XXXXX_tests/testcases/XXXXXKeywords.tsv' is out of date
W: 1638177d0f033905043ff0fd9507e9fc30f39db6 and refs/remotes/git-svn differ, using rebase:
:040000 040000 c6f5f770f94b1b46310a4c20f09f2da3e2d1d806 9f378428c1211f60bcabd96f2c3b0e9794dbd90a M      robot_tests
First, rewinding head to replay your work on top of it...
Applying: Test | XXXXX TA tests refactored
Using index info to reconstruct a base tree...
M       robot_tests/XXXXX-XXXXX_tests/testcases/XXXXXKeywords.tsv
<stdin>:12: trailing whitespace.
${test_Filename} XXXXX_test.xml
<stdin>:14: trailing whitespace.
${configFilename}       xxxxtest.xml
<stdin>:18: trailing whitespace.
Topology file in XXXXX bin directory    [Documentation] file in XXXXX bin directory
<stdin>:19: trailing whitespace.
        [Timeout]       30 seconds
<stdin>:23: trailing whitespace.
        SSHLibrary.File Should Exist    ${XXXXXdirectory}/bin/${test_Filename}
warning: squelched 93 whitespace errors
warning: 98 lines add whitespace errors.
Falling back to patching base and 3-way merge...
/home/XXXXX/libexec/git-core/git-am: line 179: git-merge-recursive: command not found
Failed to merge in the changes.
Patch failed at 0001 Test | XXXXX TA tests refactored
The copy of the patch that failed is found in: 
   /home/xxxxx/_svn/trunk/.git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

rebase refs/remotes/git-svn: command returned error: 1

I have a clean commit in my local repo but cannot do the git svn dcommit. File to commit has trailing whitespaces but it's ok.

What should I do ?

I have tried many things in .gitconfig but none worked. Current .gitconfig

[core]
   autocrlf = true
   whitespace = cr-at-eol

Solution

  • git svn dcommit only works if your git branch is a superset (i.e., more current than) the newest SVN revision). If this is not the case, you have to import the new SVN commits first. This is done via git svn rebase.