Как автоматически пропдель SVN: исполняемый файл? - PullRequest
3 голосов
/ 23 марта 2011

Subversion имеет функцию для установки свойства svn:executable на вновь добавленные файлы, которые имеют разрешение exec. Есть ли какая-то конфигурация, которая контролирует это поведение?

Я знаю, как установить свойство для определенных файлов с помощью config [autoprop], но не вижу способа его сбросить.

Особенно раздражает, когда svn-клиент на Cygwin считает, что все файлы windows являются исполняемыми, и заполняет хранилище исполняемыми текстами и файлами C.

Есть ли какой-нибудь трюк, чтобы запретить это, кроме того, чтобы быть осторожным и chmod файлы перед добавлением их в SVN?

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

В основном для запуска chmod -x: svn propdel svn:executable file

svn propset svn:executable src/*.C 
svn propset svn:executable src/*.txt
1 голос
/ 20 февраля 2013

Исходя из идеи Виктора Пармара, я написал следующий скрипт-обертку svn-add, который пытается обнаружить реальные исполняемые файлы и удаляет свойство svn:executable для остальных при добавлении файлов.

#!/bin/bash

svn add "$@" || exit $?

if [ "$(uname -o 2>/dev/null)" = "Cygwin" ]; then
    for filespec
    do
        if [ -f "$filespec" ]; then
            extension=${filespec##*.}
            if [[ ";${PATHEXT^^};" = *";.${extension^^};"* ]]; then
                echo "$filespec is executable"
            else
                # According to Windows, the file is not executable, but Cygwin
                # treats all files on the Windows file systems as executable
                # (unless explicitly modified via chmod), and Subversion's
                # Automatic Property Setting feature adds svn:executable
                # properties. Strip them off for this file.
                svn propdel svn:executable "$filespec"
            fi
        fi
    done
fi
...