Re: Cygwin git and windows network shares
On Fri, Jun 16, 2006 at 06:10:14PM -0400, Christopher Faylor wrote:
Show 18 quoted lines
>On Fri, Jun 16, 2006 at 04:24:30PM +0200, Juergen Ruehle wrote:
>>Niklas Frykholm writes:
>> > I'm trying to use cygwin git (compiled from the 1.4.0 tarball) to create
>> > repository on a windows network share, but I get an error message.
>> >
>> > $ cd //computer/git/project
>> > $ git init-db
>> > defaulting to local storage area
>> > Could not rename the lock file?
>>
>>cygwin's rename seems to be capable of overwriting an existing target
>>only on NTFS. The following hack is a workaround, but is probably not
>>safe.
>
>Actually, Cygwin's rename has a specific check to make sure that the
>file is deleted. It tries very hard to do things the right way but if
>your samba server doesn't return the correct error code then it is
>possible that it could be confused.
Show 12 quoted lines
>diff --git a/lockfile.c b/lockfile.c
>index 2346e0e..5e78211 100644
>--- a/lockfile.c
>+++ b/lockfile.c
>@@ -48,6 +48,7 @@ int commit_lock_file(struct lock_file *l
> strcpy(result_file, lk->filename);
> i = strlen(result_file) - 5; /* .lock */
> result_file[i] = 0;
>+ unlink(result_file);
> i = rename(lk->filename, result_file);
> lk->filename[0] = 0;
> return i;
I also meant to ask if there was an i is nonzero after the call to the rename() above? If so, what was the errno? If not, it is a huge problem if rename is reporting that it is able to rename a file but is not actually doing it.
cgf (cygwin maintainer)