Hi,

I've been using subversion with a working copy crossing mount point without problem until 1.7.x, (this was perfect to manage unix configuration files instead of using RCS)

Would it be possible to go back to the same behavior as the previous versions, where performing a commit (I'm using svn:keywords) doesn't generate a cross device link error.


By performing for example a copy/remove if the rename fails with an EXDEV error.

Something in svn_io_file_rename like that

  status = apr_file_rename(from_path_apr, to_path_apr, pool);
  if (APR_STATUS_IS_EXDEV(status)) {
      (status = apr_file_copy(from_path_apr, to_path_apr,
                              APR_FILE_SOURCE_PERMS, pool)) &&
      (status = apr_file_remove(from_path_apr, pool));
  }


This was a dirty hack to fix my problem, but i'm sure special cases must be added to take care of atomicity and to handle directory.


Perhaps a better way to handle this is to create the temporary file in the same directory as the file that it must replace.

Sincerely

Reply via email to