tags:

views:

143

answers:

2

I'm reporting a series of commits from git to cvs with cvsexportcommit. I've found that it's impossible to add the VERSION file in the following context

|
\_version/
| |
| \_version.txt (to be removed)
|
\_VERSION (to be added)

The output I get is the following:

Applying to CVS commit f6ce403e6e1d57b61661527969ac97c52bcbe41f from parent 076d1fb72d8498670582561b7318939bf209c1f4
Checking if patch will apply
cvs status: Examining prometeo/VERSION
Applying
fatal: unable to write file prometeo/VERSION mode 100644
Patch applied successfully. Adding new files and directories to CVS
cvs [add aborted]: there is a version in prometeo/VERSION already
Failed to cvs add prometeo/VERSION -- you may need to do it manually at /usr/local/git/libexec/git-core/git-cvsexportcommit line 314.
cvs remove: scheduling `prometeo/version/version.txt' for removal
cvs remove: use 'cvs commit' to remove this file permanently
Commit to CVS
Patch title (first comment line): Moved tmtc-prometeo version number to prometeo/VERSION
NOTE: One or more hunks failed to apply cleanly.
You'll need to apply the patch in .cvsexportcommit.diff manually
using a patch program. After applying the patch and resolving the
problems you may commit using:
    cd "/Users/elia/Code/linux-tmtc/"
    cvs -d :ext:eschito@********:/cvshome/ground commit -F .msg 'prometeo/VERSION' 'prometeo/tool/bin/tmtc_info' 'prometeo/version/version.txt'

If I try to add manually the "VERSION" file to cvs I get:

> cvs add prometeo/VERSION
cvs [add aborted]: there is a version in prometeo/VERSION already

Any ideas?

+1  A: 

What platform is your CVS server running on? AFAIK, some versions of CVS (at least on Windows NT) have case-insensitive filename handling in some places, hence will not accept two files whose names only differ by case.

At any rate, I would very strongly advise against using filenames that differ only in case. It can be a nightmare if you ever want to check out onto a filesystem that's not fully case-insensitive (some versions of MS Windows, some versions of MacOS...), and it's also confusing ("you need to edit the file foo in blah, no not that foo, the one with a capital F" ...).

So:

  1. Don't do it
  2. If you feel you have to, host on Linux :-)
sleske
It's already hosted on linux and it's a linux project (i.e. no win checkouts) and, sorry, but I won't do the wrong thing.
Elia Schito
A: 

Didn't find the cause, but a solution is to do two different commits: one for the folder deletion and one for the added file.

By the way now cvs complains about not finding the (old) folder every time I checkout or update...

Elia Schito