copy_gitattributes

in lib/gitlab_git/repository.rb [931:960]


      def copy_gitattributes(ref)
        begin
          commit = lookup(ref)
        rescue Rugged::ReferenceError
          raise InvalidRef.new("Ref #{ref} is invalid")
        end

        
        info_dir_path = File.join(path, 'info')
        info_attributes_path = File.join(info_dir_path, 'attributes')

        begin
          
          gitattributes_content = blob_content(commit, '.gitattributes')
        rescue InvalidBlobName
          
          File.delete(info_attributes_path) if File.exist?(info_attributes_path)
          return
        end

        
        Dir.mkdir(info_dir_path) unless File.directory?(info_dir_path)

        
        
        File.open(info_attributes_path, "wb") do |file|
          file.write(gitattributes_content)
        end
      end