Author: stsp
Date: Tue Sep 11 11:06:47 2012
New Revision: 1383353

URL: http://svn.apache.org/viewvc?rev=1383353&view=rev
Log:
* subversion/svn/file-merge.c
  (svn_cl__merge_file): Preserve executable bit of the merged file.

Modified:
    subversion/trunk/subversion/svn/file-merge.c

Modified: subversion/trunk/subversion/svn/file-merge.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/file-merge.c?rev=1383353&r1=1383352&r2=1383353&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/file-merge.c (original)
+++ subversion/trunk/subversion/svn/file-merge.c Tue Sep 11 11:06:47 2012
@@ -851,6 +851,7 @@ svn_cl__merge_file(const char *base_path
   apr_file_t *merged_file;
   const char *merged_file_name;
   struct file_merge_baton fmb;
+  svn_boolean_t executable;
 
 
   SVN_ERR(svn_cmdline_printf(
@@ -912,7 +913,9 @@ svn_cl__merge_file(const char *base_path
       return SVN_NO_ERROR;
     }
 
-  SVN_ERR_W(svn_io_file_move(merged_file_name, merged_path, scratch_pool),
+  SVN_ERR(svn_io_is_file_executable(&executable, merged_path, scratch_pool));
+  SVN_ERR_W(svn_io_copy_file(merged_file_name, merged_path, FALSE,
+                             scratch_pool),
             apr_psprintf(scratch_pool,
                          _("Could not write merged result to '%s', saved "
                            "instead at '%s'.\n'%s' remains in conflict.\n"),
@@ -924,6 +927,9 @@ svn_cl__merge_file(const char *base_path
                          svn_dirent_local_style(
                            svn_dirent_skip_ancestor(path_prefix, wc_path),
                            scratch_pool)));
+  SVN_ERR(svn_io_set_file_executable(merged_path, executable, FALSE,
+                                     scratch_pool));
+  SVN_ERR(svn_io_remove_file2(merged_file_name, TRUE, scratch_pool));
 
   /* The merge was not aborted and we could install the merged result. The
    * file remains in conflict unless all conflicting sections were resolved. */


Reply via email to